Aether 0.467.0
Immutable
release. Only release title and notes can be modified.
What's new in 0.467.0
Fixed
- A caught panic leaked every allocation made since the
try(#1301).
longjmpskipped the deferred scope-exit frees, so guarded blocks (and
every scheduler-wrapped actor step) leaked whatever they had allocated
before panicking. A thread-local allocation journal now mirrors the armed
deferred frees one-for-one: generated code journals a tracked local when
its flag is armed, the single free choke point forgets on every normal
free, ownership handoffs (return, container/actor/message adoption)
forget at the transfer, andaether_panic()drains the innermost frame's
still-live entries before the jump, freeing exactly the frees the jump
would have skipped. Escaped values are never journaled, so the drain is a
leak-fix by construction, never a use-after-free. Nestedtrydrains
stay frame-local; a panicking actor's step-scoped allocations are
reclaimed before the actor is marked dead; the no-panic hot path shows no
measurable cost on the ping-pong benchmark. Verified 405 leaks to 0 on
the issue's alloc-then-panic matrix. Regressions:
tests/regression/test_panic_unwind_cleanup.ae,
tests/integration/panic_unwind_no_leak/(50000 caught panics, RSS
flat),tests/integration/panic_actor_step_drain/.
Added
fs.mounts()andfs.block_info(dev)(#1118). Mount enumeration
with per-entry source/point/fstype/options accessors: Linux
/proc/self/mountinfo(octal escapes decoded), macOS and the BSDs
getmntinfo(3), Windows drive letters. Block-device size/removable/
transport via the Linux sysfs backend (partitions resolve the removable
flag through their parent disk); other platforms report unsupported
through the error slot rather than fabricating an answer. Regression:
tests/regression/test_std_fs_mounts.ae.
Downloads
| Platform | Architecture | File | Notes |
|---|---|---|---|
| Linux | x86_64 | aether-0.467.0-linux-x86_64.tar.gz |
|
| macOS | x86_64 | aether-0.467.0-macos-x86_64.tar.gz |
|
| macOS | arm64 | aether-0.467.0-macos-arm64.tar.gz |
|
| Windows | x86_64 | aether-0.467.0-windows-x86_64.zip |
Quick install
Linux / macOS
# Download the archive for your platform, then:
tar -xzf aether-0.467.0-<platform>.tar.gz
export PATH="$PWD/bin:$PATH"
ae versionWindows
Extract the .zip archive, then run bin\ae.exe version from the extracted folder.
Documentation: https://github.com/aether-lang-org/aether#readme