Skip to content

v0.1.22

Choose a tag to compare

@github-actions github-actions released this 14 Aug 16:50
· 42 commits to main since this release
5c451cf

Toolchain release for the 0.1.x series.

Codegen

  • [T; N] lowers to a named C array typedef (arr_int_2) so nested arrays and Box/Vec of 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, plus Box<[T; N]> and Vec<[T; N]>.
  • Generic instantiations are collected from enum variant payloads and closed under generic struct/enum templates; Option_int is emitted before non-generic enums that embed it. This impacts enum Hold { H(Option<int>) } with Hold::H(Option::None) and Hold::H(Option::Some(n)), and struct S<T> { x: Option<T> } with S { x: Option::None }. Unannotated let empty = Option::None still 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