Eta Jupyter Kernel (eta_jupyter)

This page documents the current local kernel workflow and the notebook-facing runtime behavior.

Build

Jupyter is part of the required dependency stack. Configure and build eta_jupyter (or eta_all):

cmake -S . -B out/msvc-release
cmake --build out/msvc-release --target eta_jupyter -j 14

Install kernelspec

eta_jupyter now supports runtime installation:

eta_jupyter --install --user
eta_jupyter --install --sys-prefix
eta_jupyter --install --prefix C:\eta\install

Supported flags:

Rich display

Execution now publishes MIME bundles (with text/plain fallback) for:

Notebook helpers are available from std.jupyter:

(import std.jupyter)
(jupyter:html "<b>Hello</b>")
(jupyter:tensor (torch/zeros '(3 3)))
(jupyter:table some-fact-table)
(jupyter:plot 'line '(1 2 3) '(2 4 8))

Notebook screenshots

Generic notebook flow

Basic Eta notebook execution and cell output:

Eta notebook generic example

Rich rendering

Example of notebook-side rich rendering output:

Eta notebook rendering example

Error reporting

Example of runtime error reporting in a notebook cell:

Eta notebook error reporting example

Comm widgets

std.jupyter now includes comm-backed helpers for live debug widgets:

When the labextension is not installed, these helpers still render an HTML fallback snapshot.

Magics

The kernel supports line and cell magics in execute_request_impl:

Profiling cell magic

%%prof profiles exactly one cell and emits both:

Examples:

%%prof
(+ 1 2)
%%prof trace
(fib 12)
%%prof --mode=sample --hz=4000
(workload)

For format and workflow details, see Profiling.

Interrupts and actor output routing

Kernel state model

The kernel uses one shared Driver per process. Cell re-execution and redefinitions follow standard Jupyter semantics.

Optional startup configuration is loaded from kernel.toml:

Example:

[autoimport]
modules = ["std.io", "std.logic", "std.stats"]

[display]
table_max_rows = 1000
tensor_preview = 8
plot_theme = "light"

[interrupt]
hard_kill_after_seconds = 30

std.io is always auto-imported.