What's Changed
- feat(lang): bitwise operators and shifts (& | ^ ~ << >>) and modulo (issue #270) by @w4ffl35 in #273
- feat(lang): assignment statements for mutable state and loop-carried mutation (#268) by @w4ffl35 in #272
- feat(lang): x86 port I/O (outb/inb/outw/inw/outl/inl) for freestanding drivers (issue #269) by @w4ffl35 in #271
- feat(lang): implicit U8/U16/U32→Int widening, comparisons & bitwise on unsigned reads (issue #274) by @w4ffl35 in #275
- feat(lang): construct U64 from Int/literal via widening and literal adaptation (issue #277) by @w4ffl35 in #280
- feat(lang): runtime-computed port I/O for virtio_net.c PCI BAR ports (issue #276) by @w4ffl35 in #281
- fix(verification): keep Int literals in [2^63, 2^64-1] positive in Z3 (issue #276, review round 1) by @w4ffl35 in #282
- feat(lang): fixed-size mutable arrays ([T; N] + indexed access) for ring buffers / driver state (issue #278) by @w4ffl35 in #283
- feat(lang): runtime-address physical memory reads for mb2.c's multiboot2 tag walk (issue #279) by @w4ffl35 in #284
- feat(lang): module-level mutable state — 'static name: Type = expr;' persists across calls (issue #287) by @w4ffl35 in #289
- feat(lang): runtime-address physical memory writes — phys_write_u8/u16/u32/u64 (issue #285) by @w4ffl35 in #290
- feat(lang): address-of a Curlee-owned array — addr_of(arr) for DMA descriptor filling (issue #286) by @w4ffl35 in #293
- feat(build): bundle 32-bit libgcc32 helpers into the i386 freestanding link (issue #288) by @w4ffl35 in #295
- feat(lang): externally-linkable module state — 'extern static name: Type = expr;' (issue #297) by @w4ffl35 in #298
- feat(lang): per-build-target static array sizing via '--define' build constants (issue #296) by @w4ffl35 in #299
- feat(lang): support fixed-size arrays in the VM (curlee run) — issue #300 by @w4ffl35 in #301
Full Changelog: v1.2.0...v1.3.0