Aether 0.679.0
What's new in 0.679.0
Fixed
-
ae build --emit=lib --target=x86_64-freebsd(any*-freebsd) failed to
link withld.lld: error: undefined symbol: main. The FreeBSD cross-link
branch (tools/ae_cross.c) was written for the executable path and never
passed-shared -fPICfor--emit=lib— the Tier-A (linux/macos/windows)
branch computed those, but FreeBSD, which shipped no library artifact until it
was tried downstream, fell through without them. Missing-shared, the link
pulledcrt1.oand demanded amaina library has not got, so no shared
object was produced (every other target linked--emit=libwith nomainand
succeeded). The FreeBSD branch now applies the same ELF-shared -fPIC(and
--sizestrip flags) as the Linux path. Verified end to end against a real
FreeBSD 15 base sysroot: a shared object with the exportedaether_*catalog
symbols and nomain. (Reported by selaenium's FreeBSD release leg.) -
A cross build (
ae build --target=<triple> …) of a program importing a
bare-name module reachable only through a--libsearch dir printed a
spuriouserror: unresolved import '<mod>'. The cross path's
feature-availability prepass (cross_uses_unsupported_module, which runs
aetherc --emit=inspectto warn about library-backed stdlib modules a
sysroot-less cross link stubs out) invoked aetherc WITHOUT the caller's
--libdirs, so a--lib-backed import came back unresolved and printed to
stderr — even though the real compile, which does pass--lib, resolved it
and the build succeeded. The prepass now forwards the same--libsearch
path as the real compile (tools/ae.c), so the diagnostic matches the build.
A side effect fixed too: the cross feature-availabilityNoteunder-reported,
because it could not see stdlib modules imported transitively through a
--lib-backed module. (Reported by selaenium as--libbeing dropped for
*-freebsd; in fact this spurious line prints for every cross target while the
build still succeeds — the real FreeBSD blocker was the--emit=liblink, fixed
above.)
Downloads
| Platform | Architecture | File | Notes |
|---|---|---|---|
| Linux | x86_64 | aether-0.679.0-linux-x86_64.tar.gz |
|
| macOS | x86_64 | aether-0.679.0-macos-x86_64.tar.gz |
|
| macOS | arm64 | aether-0.679.0-macos-arm64.tar.gz |
|
| Windows | x86_64 | aether-0.679.0-windows-x86_64.zip |
|
| FreeBSD | x86_64 | aether-0.679.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.679.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-dev/aether#readme