Skip to content

NLang 0.6.2

Choose a tag to compare

@dliting dliting released this 15 Sep 02:43
· 538 commits to master since this release

Added

  • Generic type arguments may be array types (List<int[]>, Dict<int[], int>):
    instantiation keys carry per-argument array-ness, array-typed elements flow as
    raw GC-traced handles instead of boxed primitives, and Func signature matching
    and Dict.keys() preserve array-ness across the erasure boundary.
  • foreach and for loop variables may be array-typed
    (foreach (int[] row in grid)); the loop-variable type must match the element
    type exactly — same field and same arrayness, no numeric widening.
  • Array element opcodes (OP_LoadElement, OP_StoreElement, OP_ArrayLength)
    validate the base slot kind at run time and fail with a named diagnostic
    instead of reading a dangling handle.

Changed

  • .nmod format floor raised to v1.10 → v1.11: a semantic change in generic
    container element storage (raw traced handles, no primitive boxing); older
    modules are rejected as outdated and must be recompiled.

Full changelog: v0.6.1...v0.6.2