ci: pin aeb past the orchestrator token wall, and Aether 0.684.0 with it - #147
Conversation
The fan-out orchestrator is one generated main file, and aetherc lexes a main file into a fixed 50,000-token array. aeb v0.297's generator spent ~360 tokens per node, so this tree's 137 nodes sat at 49,412 and the 138th (#140, tests/min_size) failed the whole fan-out with "source file exceeds maximum token limit" naming no file. aeb main (9bfd8e88, aeb#15) emits the per-node bookkeeping once; the same tree is 7,227 tokens. Every aeb since v0.302 compiles its own aeb-main against bldr, which needs std.zip (0.667), std.strarr (0.675) and os.arch() (0.681), so the Aether pin moves to 0.681.0 in the same commit. Nothing in the 0.646-0.681 notes removes or changes anything this tree uses; the matrix on this commit is the verification.
…lide with std.audio Under Aether 0.681 a local function whose name matches an imported C symbol is E1001: audio_position_ms / audio_duration_ms are std.audio's own externs. Renamed; nothing outside lis_audio.ae called them.
|
Both desktop legs are red on this, and the cause is upstream, not this tree: Aether 0.667's E0200 ("block setter called as a node builder") discriminates by "the callee's module also defines a Fix is aether-lang-dev/aether#2060 — the rule also requires the callee to yield no value, which is what separates a container (returns the handle its block runs inside) from a setter. With that build, all 260 |
Under the parallel scheduler every failing node costs one 'make: *** [bldr.mk:N: label] Error 1', printed before aeb's per-node 'FAILED (see <log>)' dump. A change that broke every node (the 0.681 bump) filled the 60-line budget with make lines and the actual compiler diagnostic never reached the CI log.
0.667-0.682 reject every ui.vstack(10) { } in every app: E0200
discriminated a block setter from a container by 'the module also
defines a builder', and ui/module.ae has four builders beside ~50
_ctx-first containers. aether#2060 (in 0.683.0) also requires the
callee to yield no value. All 260 .ae sources here type-check under it.
|
aether#2060 merged and shipped in 0.683.0 (assets published). |
|
macOS leg under 0.683.0: |
Under 0.682-0.683 table_demo aborts at startup on macOS and Linux: the table cell callback returns string.from_int(p.kb) on one path and p.name on the other, was typed by its first return (ptr) and so never copied the literal out, while its -> string caller (owning since #2054) freed it. aether#2070, in 0.684.0, makes any string-typed return site classify the closure as string-returning.
|
aether#2070 shipped in 0.684.0; |
Why
#140 adds one
.build.aeand both desktop legs die in Phase 1:The orchestrator is a single generated main file and aetherc lexes a main file into a fixed 50,000-token array. Measured with the lexer over this tree's node list under aeb v0.297's generator: main = 49,412 tokens, #140 = 49,770 (plus the root node). The tree was one node from the wall, and the error names no file because the file is aeb's.
What
AEB_REF→9bfd8e88(aeb main after gen-orchestrator: emit the per-node bookkeeping once, not per node aeb#15, which emits the per-node bookkeeping once: same 138 nodes, 49,770 → 7,227 tokens). A SHA until a tag is cut;install.shtakes one.AETHER_REF→v0.681.0, forced rather than chosen: every aeb since v0.302 compiles its ownaeb-mainagainstbldr, which importsstd.zip(0.667),std.strarr(0.675) and callsos.arch()(0.681), somake installof that aeb needs it on PATH. Scanned the 0.646–0.681 notes: additive stdlib, a 4.5× faster type-check,@c_callbackemitted weak,-fPICon--emit=libobjects. No grammar or removed-API change this tree touches.The matrix on this PR is the verification. If it is red on something the bump exposes, the fallback is a backport branch of aeb v0.297 carrying only the generator fix.
Compiler side: aether-lang-dev/aether#2059 asks for the main-file cap to be heap-allocated like the module one.