Skip to content

Releases: MiniLangProject/MiniLangCompilerML

MiniLang Compiler 1.2.8

Choose a tag to compare

@n1k0m0 n1k0m0 released this 13 Sep 11:02

MiniLang Compiler 1.2.8

This release strengthens MiniLang's collection safety and numeric intent while
preserving cross-compiler target-output compatibility.

  • div provides explicit integer floor division, including defined behavior
    for negative operands.
  • std.math adds exact, floor, ceiling, truncating and rounding conversions to
    integers.
  • Normal arrays can store void; byte buffers remain strict. New std.array
    helpers provide Option, fallback, conditional-write and detailed-error access.
  • The compiler rejects provably invalid index types, constant out-of-bounds
    accesses and missing members on statically known structs.
  • Struct fields can declare defaults used by positional and named constructors.
  • Long statically string-starting concatenation chains compile iteratively,
    avoiding expression-temp exhaustion and repeated dynamic dispatch.

Both compiler implementations include matching language, formatter, standard
library, documentation and regression updates. Windows and Linux focused
fixtures are byte-identical between the Python and self-hosted compilers. Three
consecutive Windows compiler stages converge to one 65,274,880-byte image with
SHA-256
60DB15723F1D33AFCCBAF81657E91569811C38CF54A320117857C29027700E0B.

The Python suite passes 149/149 tests, with the new long-chain regression also
verified independently. The complete self-hosted verification passes its
136/136 embedded tests and all outer Windows, Linux, FFI, GC, threading and MLO
gates.

Both CLI version switches and MINILANG_VERSION report 1.2.8.

Binary downloads

Artifact SHA-256
Windows compiler 60DB15723F1D33AFCCBAF81657E91569811C38CF54A320117857C29027700E0B
Linux compiler 8BF4FDDDB7D68F2B5B3613D0FA715AA69A1B7FC68E7EC392F67B319141893DB8
Windows x64 ZIP 0CA1D2C37AB0D35FE123666C9A226DB3F43B4772FA913E9BDD01B84F08046E09
Linux x64 tar.gz A30F590339D977A3B1ECDDCD1BFAA17DDF326F707689541AC268ED4CAF077B66

Extract the complete package, including std/. Run mlc.exe on Windows or
./mlc on Linux. Compile with -I . from the package directory and select the
desired target explicitly when cross-compiling. Each archive has a SHA-256
sidecar and includes a quick-start guide. No installed Python is required.

This package contains the native, self-hosted MiniLang compiler.

MiniLang Compiler 1.2.7

Choose a tag to compare

@n1k0m0 n1k0m0 released this 09 Sep 13:02

MiniLang Compiler 1.2.7

This release adds cross-platform ECDSA P-256 signature verification to the
shared MiniLang standard library. std.crypto.ecdsa_p256.verify hashes the
message with SHA-256 and verifies fixed-width raw public keys and signatures
through Windows CNG or OpenSSL 3 on Linux.

Both compiler repositories contain matching standard-library implementations,
documentation and positive/negative regression fixtures. The Python compiler,
self-hosted monolithic pipeline and self-hosted object pipeline produce
byte-identical Windows PE and Linux ELF images for the ECDSA fixture. The full
Python suite passes 145/145 tests and the self-hosted ported suite passes
136/136 tests.

Both CLI version switches and MINILANG_VERSION report 1.2.7.

Binary downloads

Extract the complete package, including std/. Run mlc.exe on Windows or
./mlc on Linux. Compile with -I . from the package directory and select the
desired target explicitly when cross-compiling. Each archive has a SHA-256
sidecar and includes a quick-start guide. No installed Python is required.

This package contains the native, self-hosted MiniLang compiler.

MiniLang Compiler 1.2.6

Choose a tag to compare

@n1k0m0 n1k0m0 released this 05 Sep 10:17

MiniLang Compiler 1.2.6

This patch release supports MiniGui's new Windows/Linux backend and fixes native
C-string return conversion in the Python reference compiler. The byte-copy
helper can overwrite a volatile register holding the returned string length;
the emitter now reloads that length before terminating the MiniLang string.
This prevents crashes when GTK returns widget text.

Both compiler repositories cover Unicode, empty and null C-string returns.
The self-hosted emitter already preserves the length correctly; its version is
advanced alongside the reference compiler to retain the matching release pair.
Both CLI version switches and MINILANG_VERSION now report 1.2.6.

The release is verified with native Windows/Linux compiler builds, the Linux
FFI regression emitted by both compilers, CLI/predefined-version checks and
MiniGui's Windows/Linux control, generator and startup tests. Earlier full-suite
and fixed-point results remain identified as 1.2.5 results in COMPILER_PARITY.md.

Binary downloads

Extract the complete package, including std/. Run mlc.exe on Windows or
./mlc on Linux. Compile with -I . from the package directory; select
--target linux-x64 explicitly for Linux output. Each archive has a SHA-256
sidecar and includes a quick-start guide. No installed Python is required.
Linux binaries were built and tested on Ubuntu 24.04 x86-64 (glibc 2.39).

This package contains the native, self-hosted MiniLang compiler. Its
executable has no Python runtime dependency.

MiniLang Compiler 1.2.5

Choose a tag to compare

@n1k0m0 n1k0m0 released this 05 Sep 08:34

MiniLang Compiler 1.2.5

MiniLang 1.2.5 reduces actual generated x64 machine code in the matching Python
reference and self-hosted compilers, and fixes an existing object-pipeline
variadic-array lifetime bug. No executable packer or runtime unpacking is used.

Highlights:

  • Shorter accumulator-immediate instructions and implicit-one shifts.
  • Flag-equivalent 32-bit AND masks where the 64-bit result is unchanged.
  • Conservative fallthrough branch-pair folding with label/relocation barriers.
  • An updated canonical Linux syscall/pthread runtime blob, with a reproducible
    byte/label/relocation check against the Python implementation.
  • Retained variadic escape-analysis facts after MLO function-body release,
    preventing globally retained argument arrays from referring to caller stacks.
  • New opcode, CPU flag/result, boundary, GC lifetime and object-parity tests,
    plus paired size/runtime measurements and refreshed compiler API docs.

Same-source measurements before the release version stamp reduced executable
file sizes by 1.47–1.78%, including approximately 1.09 MB for the self-hosted
compiler. Overall measured runtime was comparable, not universally faster;
individual microbenchmarks and desktop scheduling noise still matter. See the
measurement report for raw samples,
limitations and exact before/after image identities.

Both version switches (-version and --version) report
MiniLang Compiler 1.2.5; the predefined MINILANG_VERSION is "1.2.5".
Windows x64 PE and Linux x64 ELF remain supported. Current Python and
self-hosted outputs retain the canonical byte-identity contract; see
release verification for the fixed point and test results.
The shared standard-library sources are unchanged from 1.2.4.

Release verification passes 144/144 Python tests and 136/136 internal ML tests,
plus the outer Windows/Linux runtime and object-pipeline checks. Three Windows
compiler stages are byte-identical; the native Linux bootstrap and self-build
also match exactly. Native Linux filesystem/cache regressions pass.

This remains a source-only release. Generated executables are excluded from
Git and GitHub release assets; native build verification is performed locally.
Bootstrap from the matching Python repository and rebuild the self-hosted
compiler with MiniLangCompilerML/build.ps1 (Windows) or build.sh (Linux).
Existing 1.2.4 tags and releases remain available.

MiniLang Compiler 1.2.4

Choose a tag to compare

@n1k0m0 n1k0m0 released this 04 Sep 23:48

MiniLang Compiler 1.2.4

MiniLang 1.2.4 adds statically resolved user-defined operators to the matching
Python reference and self-hosted compilers while retaining byte-identical
Windows x64 PE and Linux x64 ELF output across compiler implementations.

Highlights:

  • struct-owned overloads for arithmetic, comparison, bitwise and unary
    operators, with exact operand-type resolution, overload sets and optional
    inlining;
  • compound variable assignments and unary numeric +, with deterministic
    diagnostics for invalid, missing or ambiguous overloads;
  • an updated cross-platform formatter covering the complete modern language
    syntax;
  • the cross-platform std.test unit-test framework and self-hosted mltest
    declaration-tag discovery runner; and
  • expanded positive, negative, formatting, Windows, Linux and object-pipeline
    regression coverage plus refreshed MiniDoc references.

This remains a source-only release. Generated executables are excluded from Git
and GitHub release assets and are reproducibly built from the tagged sources.
See README.md, CHANGELOG.md and COMPILER_PARITY.md for syntax, build and
verification details.

MiniLang Compiler 1.2.3

Choose a tag to compare

@n1k0m0 n1k0m0 released this 02 Sep 21:16

MiniLang Compiler 1.2.3

MiniLang 1.2.3 is a source-only maintainability and documentation release of
the matching Python reference and self-hosted compilers. Generated executables
remain excluded from Git and from GitHub release assets; native compilers are
rebuilt and verified from the tagged sources.

Highlights:

  • focused helpers replacing the largest self-hosted statement and generic-call
    code-generation routines while preserving target-code emission order;
  • meaningful English declaration documentation throughout the compiler and
    shared cross-platform standard library;
  • deterministic, timestamp-free checked-in MiniDoc references for both the
    compiler implementation and standard library;
  • complete Python reference-compiler API documentation with a source-policy
    regression preventing new undocumented public APIs; and
  • refreshed compiler and standard-library HTML and Markdown documentation.

Python and self-hosted compilers retain compatible Windows x64 PE32+ and Linux
x64 ELF64 target output. Build the compiler from source by following the
repository README and see CHANGELOG.md for the detailed change list.

MiniLang Compiler 1.2.2

Choose a tag to compare

@n1k0m0 n1k0m0 released this 02 Sep 18:58

MiniLang Compiler 1.2.2

MiniLang 1.2.2 is a source-only performance and reliability release of the
matching Python reference and self-hosted compilers. Generated executables
remain excluded from Git and from GitHub release assets; native compilers are
rebuilt and verified from the tagged sources.

Highlights:

  • a MiniDoc-guided self-host optimization that removes redundant lexical-frame
    scans and reuses stable package-suffix resolution across binding generations;
  • approximately 43-45% lower full self-host compilation time in the recorded
    same-window profile and production comparisons, with neutral peak memory;
  • dedicated regressions for authoritative scope indexes, suffix-cache
    invalidation, ambiguous names and lexical shadowing;
  • a reproducible compiler call-profile harness and refreshed strict MiniDoc
    implementation documentation; and
  • a hardened cross-platform networking test that avoids Windows dynamic-port
    reservation ranges.

Python and self-hosted compilers retain byte-identical Windows x64 PE32+ and
Linux x64 ELF64 target output. The release acceptance record, exact compiler
hashes and test totals are documented in COMPILER_PARITY.md.

Build the compiler from source by following the repository README. See
CHANGELOG.md, COMPILER_PARITY.md and the MiniDoc profile audit under docs/
for the detailed verification record.

MiniLang Compiler 1.2.1

Choose a tag to compare

@n1k0m0 n1k0m0 released this 02 Sep 17:15

MiniLang Compiler 1.2.1

MiniLang 1.2.1 is a source-only maintenance release of the matching Python
reference and self-hosted compilers. Generated executables remain excluded from
Git and from GitHub release assets; the native compilers are rebuilt and
verified from the tagged sources.

Highlights:

  • explicit /// declaration comments in both compiler frontends, kept outside
    the runtime AST and generated program;
  • complete English declaration documentation for the shared standard library
    and the self-hosted compiler implementation;
  • strict MiniDoc configurations and committed HTML and GitHub-compatible
    Markdown API references;
  • the synchronization, native timeout, Linux FFI, socket, project-cache,
    assembler, GC and thread-lifecycle hardening accumulated since 1.2.0; and
  • unchanged Windows x64 PE32+ and Linux x64 ELF64 target compatibility between
    the Python and self-hosted compilers.

The acceptance build verifies both compiler suites, strict warning-free MiniDoc
generation, byte-identical shared standard-library sources and documentation,
Windows fixed-point self-hosting, and a native Linux MiniDoc build and test run.
Exact release hashes are recorded in
COMPILER_PARITY.md.

Build the compiler from source by following the repository README. See
CHANGELOG.md and COMPILER_PARITY.md for the detailed feature, performance
and verification record.

MiniLang Compiler 1.2.0

Choose a tag to compare

@n1k0m0 n1k0m0 released this 01 Sep 06:16

MiniLang Compiler 1.2.0

MiniLang 1.2.0 is a source-only release of the matching Python reference and self-hosted compilers. Generated executables remain excluded from Git and from GitHub release assets; both native compiler targets are rebuilt and verified from the tagged sources.

Highlights:

  • native Windows x64 PE32+ and Linux x64 ELF64 output, including native Linux self-hosting and byte-identical monolithic/MLO linking;
  • matching cross-platform standard-library support for files, sockets, TLS, cryptography, processes, consoles, durable random-access files and system services;
  • gradual runtime type contracts, optional values, expression lambdas, default/named/variadic calls, value/range match, pull iterators, yield and structural interfaces;
  • tasks, futures, cancellation, bounded channels, async/await/select, synchronized blocks and a shared thread-safe managed heap with thread-local allocation buffers;
  • typed conditional compilation for portable Windows/Linux source trees;
  • hardened GC safepoints, thread lifecycle and native-handle ownership, Linux FFI resolution and project/cache boundaries;
  • race-free Linux semaphore handoff behavior and portable signed-32-bit timeout validation across compiler builtins and the standard library;
  • bounded project traversal across directory links and reusable MLO cache hashing buffers that substantially reduce transient allocation.

Verification of this refreshed release:

  • Python compiler suite: 132/132 passed;
  • self-hosted compiler harness: 126/126 passed, plus all outer Windows/Linux, FFI, GC, SIMD, object-pipeline and byte-identity gates;
  • the 20,000-handoff Linux semaphore stress test passes without lost or spurious releases;
  • both standard-library trees are byte-identical across all 46 files;
  • Python-built, stage-2 and stage-3 self-hosted compiler images are byte-identical at 66,446,848 bytes with SHA-256 7B364F4BD511119CC5CA421449EAD9B80C9F7C647F83B7A581C208E90C8EE15A.

Build the compiler from source by following the repository README. See CHANGELOG.md and COMPILER_PARITY.md for the detailed feature, performance and verification record.

MiniLang Compiler 1.1.0

Choose a tag to compare

@n1k0m0 n1k0m0 released this 23 Aug 23:34

MiniLang Compiler 1.1.0

MiniLang 1.1.0 is a source-only release of the matching Python reference and
self-hosted compilers. No generated executable is tracked or attached.

Highlights:

  • native Windows threads, synchronization and thread-safe collections;
  • a process-wide managed heap with per-thread stacks and cooperative GC;
  • defer, expanded FFI support and incremental project builds;
  • CPU-dispatched checksums, native byte search and Windows CNG cryptography;
  • faster generated code and a bounded, substantially faster self-hosted object
    pipeline; and
  • byte-identical target output across Python, self-hosted monolithic and .mlo
    builds, backed by fixed-point, standard-library and MiniQuake acceptance tests.

Build the compiler from source by following the repository README. See
CHANGELOG.md and COMPILER_PARITY.md for the detailed feature and verification
record.