v0.1.22
Toolchain release for the 0.1.x series.
Codegen
[T; N]lowers to a named C array typedef (arr_int_2) so nested arrays andBox/Vecof arrays are valid C. Functions still cannot return a C array type (pointer decay unchanged). This impacts nested[int; N]locals, fields, parameters, and returns, plusBox<[T; N]>andVec<[T; N]>.- Generic instantiations are collected from enum variant payloads and closed under generic struct/enum templates;
Option_intis emitted before non-generic enums that embed it. This impactsenum Hold { H(Option<int>) }withHold::H(Option::None)andHold::H(Option::Some(n)), andstruct S<T> { x: Option<T> }withS { x: Option::None }. Unannotatedlet empty = Option::Nonestill requires an annotation.
Tests
test_nested_array.ion,test_nested_array_field_param_return.ion,test_nested_array_3d.ion,test_box_array.ion,test_vec_array.ion,test_enum_option_payload_none.ion,test_enum_option_payload_some.ion,test_generic_struct_option_none.ion.
Docs
- ION_SPEC §4.1.1, ABI arrays, bug hotspots, verified patterns.
Prebuilt archives (Linux, macOS, Windows):
- ion-compiler, ion-build, and ion-lsp
- C runtime, stdlib, examples, and docs (verified by release CI)
Source at this tag includes the integration test harness and ion-vscode/ extension sources.
Language reference: https://github.com/Cod-e-Codes/ion-lang/blob/v0.1.22/ION_SPEC.md
Compatibility: https://github.com/Cod-e-Codes/ion-lang/blob/v0.1.22/docs/BETA.md
Changelog: https://github.com/Cod-e-Codes/ion-lang/blob/v0.1.22/CHANGELOG.md
Full diff from 0.1.21: v0.1.21...v0.1.22