Nox

Reference

Glossary

ARC — automatic reference counting. Layer 2 of the memory model: a value carries a count of its owners and is freed when the count reaches zero.

ASAP destructor — "as soon as possible": cleanup code inserted at the point after a value's last use, with no reference count. Layer 1 of the memory model.

Backend — the part of the compiler that turns typed IR into machine code: LLVM (default) or QBE.

Capability — a named kind of authority (filesystem, network, threads, …) a standard-library module or a plugin needs; the freestanding profile permits only capability-free modules, and the Plugin API uses capabilities for consent.

Closure — a function value together with the variables it captured from its enclosing function.

Cycle collector — the component that frees groups of objects that reference each other, which reference counting alone cannot.

Dunder (special) method — a method such as __add__ or __str__ whose name gives an operator or protocol meaning for a class.

extern def — a declaration of a function implemented in native code, callable from Nox.

Fiber — a lightweight stack-switching unit of execution; a task runs on one.

Fixed-width integer — u8, i32, u64, … : integers of a given size that trap on overflow and never convert implicitly.

Freestanding — a build with no operating system: a kernel-provided allocator and only capability-free modules.

Golden test — a test whose expected output (or generated IR) is stored in a file and compared byte for byte.

Handle — an opaque identifier that stands for a resource without exposing its address; NNI, the HPy bridge and the WASM bridge use handles at their boundaries.

HPy — a handle-based API for Python C extensions; Nox implements a compatible layer.

LLVM / QBE — the two compilation back ends. LLVM generates faster code and runs tasks in parallel; QBE is small and supports cross-compilation and debug info.

lowlevel — a block that allocates from an arena and permits raw pointers; typing stays mandatory.

M:N scheduler — many tasks (M) multiplexed over a pool of operating-system threads (N), with work stealing.

Monomorphisation — compiling a separate specialised copy of generic code for each concrete type it is used with.

NAPI — the Nox API: the source-level contract for libraries and frameworks.

NNI — the Nox Native Interface: the stable C ABI for native extensions.

noxpkg — the central package index and its web service.

Plugin API — manifests, versioning and capability consent layered on NNI.

Prelude — the names available without an import (print, len, Exception, …).

Protocol — a structural interface: any class with the required methods satisfies it, with no declaration.

Task — a unit of concurrent work started with spawn; Task[T] yields a T when awaited.

Trampoline — a generated function at a foreign boundary that converts values and translates errors.

Trust boundary — the line at which Nox's type and memory guarantees stop (extern def, lowlevel, plugins, dependencies with native code).