Repository navigation
iyi 0.4.0
The language runs concurrently, and a model can read it. 0.3.0 carried
a shard across a boundary; this release gives iyi the two organs a language
needs to be used — and one it needs to be used by the tools of this
decade.
Concurrency arrived in exactly the order SPEC.md III.4.8 refused to
shortcut — a scheduler, cancellable blocking primitives, then the rest —
and every piece is asserted, not narrated:
group / spawn |
no bare spawn exists; a return out of the block still joins, and a leaked task is unrepresentable |
| cancellation | reaches a blocked task and arrives as a value: a 10 s sleep ends in tens of milliseconds when a sibling fails, and ! drains the cancelled task through its remaining waits |
Channel(T).new |
a rendezvous, as Crystal's is; .new(n) buffers; close drains, then refuses |
select |
any mix of receive and send arms, else included — one variadic def serves every arity |
group do ... end! |
III.4.1's opening example compiles and runs, literally |
Run, not just built: the 19-property gate passes on x86-64 glibc, on musl,
and on aarch64 under emulation, plain and --release, and the runtime adds
zero undefined symbols — the scheduler, the poller and the context switch
are raw syscalls and asm.
Dependencies exist — III.7 steps 1 and 2, and only those. An iyi.mod
names minimums; resolution is minimal version selection, no solver, no
lockfile to fight over; versions are git tags; iyi.sum notices when what
arrived is not what arrived last time. The whole story is gated offline,
against a mirror the gate builds and then deletes.
And the AI-first surface stopped being a plan: iyi mod context grounds an
edit in every import's exact surface (43–55% of the sources' size, no
bodies), mod dump --json serves the API as data with its interface hash,
-f json errors cite their SPEC sections as fields, iyi test runs plain
programs as tests with four verdicts told apart, doc comments ride the
artifact, and the sandbox story is measured: a theft of /etc/passwd from
wasm32 dies named and empty-handed. The claim got its gate before the
README got its sentence — eight model runs, 35–43% fewer prompt tokens on
the pack, and both refusals the gate issued on the way are written down in
AI_FIRST.md §5.
.iyimod goes from format 40 to 41 (Docs, and private methods marked). A
0.3.0 artifact is rejected and rebuilt, never migrated.
Install
tar -xzf iyi-0.4.0-linux-x86_64.tar.gz -C ~/.local
~/.local/bin/iyi run ~/.local/share/iyi/samples/hello.iyiRelocatable, and carries both libraries: iyi's own 121 KB prelude — with a
scheduler in it now — and Crystal's standard library for --crystal.
bin/iyi finds them beside itself, so there is nothing to configure.
sha256 96313e9dd6503a212e826c8f2d56e50d6c1f861413967c70503924807e80ccf0
The full list is in CHANGELOG.md.