Skip to content

MiniLang Compiler 1.2.14

Latest

Choose a tag to compare

@n1k0m0 n1k0m0 released this 30 Sep 21:14

MiniLang Compiler 1.2.14

This patch release improves generated integer code in both compiler
implementations. Both CLI version flags and compile-time MINILANG_VERSION
report 1.2.14. No language, standard-library or native media ABI change.

Improvements

  • Replace proven integer floor division by positive non-power-of-two constants
    with exact reciprocal multiplication and correction. Existing power-of-two
    shifts remain; negative, zero, dynamic and wrapped divisors retain checked
    fallbacks. Ordinary / division is unchanged.
  • Replace division by ten in native integer decimal formatting with exact
    reciprocal multiplication.
  • Reuse identical bounded pure local integer expression trees. Calls, heap
    reads, globals, captures and potentially failing operations are excluded.
  • Remove redundant right-operand stack stores/loads and keep literal-right
    operands in registers, preserving evaluation order and GC roots.
  • Make Windows bootstrap memory diagnostics explicitly opt-in with
    -BootstrapProbe; -NoBootstrapProbe remains supported and takes precedence.

These are local instruction-selection and temporary-storage improvements,
not a function-wide register allocator or general dead-store elimination.

Evaluation

Eleven alternating pre-release A/B microbenchmark samples per case on Windows
and Linux/WSL measured 41–54% less time for constant integer division,
66–68% less time for repeated local arithmetic and 53–54% less time for
large integer formatting
. The benchmark Windows image is 2.7% smaller.
A separate compiler fixture took 3.4% less compile time and 1.2% less peak
working set.

Managed allocation counts are unchanged. String controls have small mixed
changes, including slower cases; these are not whole-application speedup
claims. See the report and raw samples.
The report preserves pre-version-stamp hashes; release artifact hashes follow.

Validation

  • Release-stamped Python tests: 155 passed, zero failed/skipped.
  • Release-stamped ML: 136 core tests and the complete outer suite passed.
  • Windows Python bootstrap and native selfbuild are byte-identical.
  • Python and Windows-hosted ML produce byte-identical Linux compiler images.
  • The release Linux compiler runs under WSL. Version and runtime fixtures
    pass six-way output parity per target: Python, Windows ML and Linux ML,
    each using monolithic and object pipelines.
  • Both -version and --version and the compile-time version assertion pass.
  • Compiler MiniDoc regenerated: 37 files, 3,283 symbols, zero warnings.
  • Standard libraries remain identical: 53 files.
Compiler image Bytes SHA-256
Windows x64 64,587,264 058924B6ABFF723908CF89F5659898D37E3C1A880E68623A6412B27727757158
Linux x64 64,589,648 28236D138EEAA9BA79BE3B1C9593CA939927189582DC96201B71EEA19F4E77D1

The full Linux-native compiler selfbuild passed before the version-only stamp
and matched both cross-host builds. It was not repeated after the stamp;
release Linux-hosted compilation and execution were tested separately.
That full build took 1,354 seconds including a deliberate measurement pause;
without a matched baseline this is not evidence of a regression or speedup.

Parity is scoped to tested sources and matching per-target options. The
previously documented native cstr return-lowering exception remains.

Downloads

Ready-to-run Windows x64 ZIP and Linux x64 tar.gz packages include the compiler,
matching standard library, native media runtime, license, quick-start example,
release notes, BUILD_INFO.json and SHA-256 sidecars. Extract the whole archive;
Python is not required. Generated binaries remain outside Git.