v0.2.1
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
[v0.2.1] - 2026-06-01
Added
lintsubcommand replacing--checkflag —m4 lint <file.m4>parses and type-checks without execution (M1)m4 <command> help [--zon|--json|--yaml]pattern for command-specific help on all subcommands (lint, build, explain, version)
Changed
- O(1) variable resolution in compiler via
Localswrapper (ArrayList + StringHashMap), replacing O(n) linear scans in ident and assign-target lookups - QBE emitter
fmt()now writes directly to output buffer instead of allocating and freeing an intermediate string per line - QBE string collection uses
getOrPut()single hash lookup instead ofcontains()+put()double lookup
Fixed
m4 build --targetcross-compilation now correctly passes target architecture to assembler (-arch) and compiler/linker (-targettriple). arm64_apple ↔ amd64_apple cross-compilation verified.- Native compilation on non-macOS platforms restored — assembler step falls back to plain
aswithout-archfor native non-Apple targets buildSubcommandHelpInforeturns empty subcommands list for unrecognized names instead of silently returning full help
Removed
--checkglobal flag — replaced bylintsubcommand
Generated by Relote
Full Changelog: v0.1.2...v0.2.1