Skip to content

Aether 0.869.0

Choose a tag to compare

@github-actions github-actions released this 31 Oct 14:46
· 93 commits to main since this release
Immutable release. Only release title and notes can be modified.

What's new in 0.869.0

Added

  • contrib.host.python gains the #904 bidirectional tier. A persistent VM
    the host owns (python.vm_new), Aether @c_callback functions the script
    calls (python.vm_register; "app.math.add" makes the modules app and
    app.math), injected globals, and typed values both ways (vm_result_*,
    arg_*, push_*, raise_error), as Lua, Duktape, QuickJS and Tcl have.
    Python adds two tags: PY_TBYTES, which crosses as a std.bytes handle with
    embedded zeros intact and is never read as text, and PY_TFLOAT. True tags
    PY_TBOOL, not an int; an int past 64 bits tags PY_TOTHER and reads 0,
    never a wrapped value. vm_eval compiles an expression, or failing that
    statements, and runs the code once. A callback can evaluate on its own VM.
    vm_set_instruction_limit is a PyEval_SetTrace hook on the outermost eval,
    re-raised at every later event so a script cannot catch it and carry on; it
    does not bound a loop inside C. Every VM shares the one interpreter (and
    sys.modules), and every call takes the GIL, so any thread can use a VM. A
    host function that outlives its VM raises rather than reaching freed memory.
    python.finalize now restores the main thread state before Py_Finalize,
    never finalizes an interpreter it did not start, and a later init registers
    the shared-map helpers afresh.

Downloads

Platform Architecture File Notes
Linux x86_64 aether-0.869.0-linux-x86_64.tar.gz
macOS x86_64 aether-0.869.0-macos-x86_64.tar.gz
macOS arm64 aether-0.869.0-macos-arm64.tar.gz
Windows x86_64 aether-0.869.0-windows-x86_64.zip
FreeBSD x86_64 aether-0.869.0-freebsd-x86_64.tar.gz cross-built, not tested on FreeBSD

Quick install

Linux / macOS

# Download the archive for your platform, then:
tar -xzf aether-0.869.0-<platform>.tar.gz
export PATH="$PWD/bin:$PATH"
ae version

Windows

Extract the .zip archive, then run bin\ae.exe version from the extracted folder.


Documentation: https://github.com/aether-lang-dev/aether#readme