M2 Modula-2 Toolchain - Compiler-Werkstatt
Weitere Downloads — Modula-2 Subset-Compiler

M2 Modula-2 Toolchain 1.1.1 ABGESCHLOSSEN

Das M2 Modula-2 Toolchain ist ein eigenständiger ISO-Modula-2-Subset-Compiler, der native i386-PE32-Windows-Programme erzeugt. Die komplette Pipeline — Lexer, Parser, semantische Analyse, i386-Codegenerator, i386-Assembler, COFF-Object-Writer und PE32-Linker — steckt in einem einzigen Executable. Es gibt keinen externen Assembler, keinen externen Linker, keine externe Runtime und keinen sonstigen Compiler. Das Projekt ist abgeschlossen und wird von uns nicht weiterentwickelt — es steht inklusive komplettem Quellcode zum Mitnehmen bereit.

29 Checks grün i386 PE32 nativ 7-Stufen-Pipeline in einem Exe 12 Builtins / 3 Standardmodule Deterministische Builds CC0 Public Domain Authenticode-signiert Kein Support, keine Weiterentwicklung

Entstehung: ein PlanJinn-Testlauf mit Bruch

Dieses Toolchain war nie als Produkt geplant. Es entstand als Testartefakt des PlanJinn-Projekts — und genau so, mit allen Umbrüchen, geben wir es weiter.

1
Testlauf "ISO_Modula2_X86_Toolchain_A2Z" gestartet

Ziel des Experiments: PlanJinn, das autonome Expert-Board-Workflow-System, sollte eine komplette Modula-2-Toolchain von A bis Z erstellen — von der Spezifikation über die Implementierung bis zur Abnahmetest-Suite. Projektseite: PlanJinn in der KI-Werkstatt.

2
Rund 70 % autonom mit AgnesAI erarbeitet

PlanJinn steuerte den Provider AgnesAI durch Definition, Struktur, Implementierung und Zwischenprüfungen. Bis zu diesem Punkt entstand das Toolchain zu etwa siebzig Prozent vollständig autonom — ohne manuelle Codeeingriffe.

3
PC-Crash stoppte den Lauf

Ein Hardware-Crash des Arbeitsrechners unterbrach den Test mitten in der Arbeit. Der autonome Lauf endete an dieser Stelle — das Projekt blieb als unvollständiger Zwischenstand zurück.

4
Fertigstellung mit GLM 5.3

Die verbleibenden dreißig Prozent — Vervollständigung der Pipeline, Härtung, Akzeptanzsuite und Release-Paket — wurden anschließend mit GLM 5.3 als Provider zu Ende geführt, wieder über den PlanJinn-Workflow.

5
Freigabe als eigenständiges Resultat

Das Ergebnis ist ein funktionierender, getesteter Compiler — und zugleich der Beweis, was ein KI-getriebener Workflow leistet und wo er abbricht. Wir geben es inklusive Quellcode ab und entwickeln es nicht weiter.

Download

M2 Toolchain 1.1.1 (ZIP) ZIP, ca. 154 KB — Binary, kompletter Quellcode, Beispiele, Tests und Build-Skript
Bisherige Downloads: --

Auf einen Blick

29Checks in der Akzeptanzsuite, alle grün
7Pipeline-Stufen in einem Executable
12Builtins aus SYSTEM, TEXTIO, WHOLEIO
54 KBgrößtes getestetes Programm (Stresstest)
Fähigkeiten

Was die Toolchain kann

Alles in einem Executable

Lexer, Parser, semantische Analyse, i386-Codegenerator, i386-Assembler, COFF-Object-Writer und PE32-Linker sind integriert. Kein externes Werkzeug wird benötigt — weder zum Übersetzen noch zum Ausführen.

Echte PE32-Programme

Erzeugte Programme sind echte i386-Konsolen-Executables, die nativ unter Windows laufen und ihr Ergebnis als Prozess-Exit-Code zurückgeben. Der integrierte Linker baut eine echte PE-Importtabelle (kernel32: ExitProcess, GetStdHandle, WriteFile).

Standardmodule eingebaut

12 Builtins aus drei Standardmodulen (SYSTEM, TEXTIO, WHOLEIO) werden zur Compilezeit aufgelöst. Jedes Builtin ist eine echte i386-Routine, die in jedes Programm eingebettet wird — echte Konsolenausgabe ohne Runtime-Paket.

Deterministisch

Zwei saubere Übersetzungen desselben Quelltexts erzeugen byte-identische .s-, .obj- und .exe-Dateien. Keine Zeitstempel, keine Zufälligkeit — reproduzierbare Builds inklusive.

Fail-closed

Ungültige Programme werden mit klaren datei(zeile): error:-Diagnosen abgelehnt und hinterlassen kein Artefakt. Fehler werden nicht wegkompiliert, sondern sichtbar abgelehnt.

Icons eingebettet

Der integrierte Linker bettet ein Modula-2-Programm-Icon in die .rsrc-Sektion jedes erzeugten Programms ein; die Toolchain selbst erhält ihr eigenes Icon über windres. Beide Icons werden deterministisch per Skript generiert.

Aufruf

Modula2Toolchain <quelle.m2> [-o <ausgabe.exe>] [--keep-temps] Modula2Toolchain --version | --help Exit-Codes: 0 Erfolg | 1 Compile-Fehler | 2 Aufruffehler | 3 Assembler-Fehler | 4 Linker-Fehler Bei jedem Fehler werden alle Artefakte des Laufs entfernt (fail-closed).

Standardmodul-Builtins

SYSTEM.HALT(int)
SYSTEM.ASSERT(bool)
TEXTIO.WRITE(s,len)
TEXTIO.WRITELN(s,len)
WHOLEIO.WRITEINT(n,w)
WHOLEIO.WRITELNINT(n,w)
WHOLEIO.WRITECARD(n,w)
WHOLEIO.WRITELNCARD(n,w)
WHOLEIO.WRITEBOOL(b)
WHOLEIO.WRITELNBOOL(b)
WHOLEIO.WRITECHAR(c)
WHOLEIO.WRITELNCHAR(c)
Sprachumfang

Unterstütztes Subset von ISO Modula-2

KategorieUnterstützung
ModuleMODULE name; ... BEGIN ... END name. (eine Übersetzungseinheit)
ImportsIMPORT TEXTIO, WHOLEIO, SYSTEM; — geparst und gegen das Builtin-Register geprüft
TypenINTEGER, CARDINAL, BOOLEAN (SHORTINT/LONGINT alias INTEGER); INTEGER/CARDINAL mischbar, BOOLEAN streng
DeklarationenCONST (zur Compilezeit gefaltet), Modul-VAR (statischer Speicher), flache PROCEDUREs mit Wert- und VAR-Parametern, Funktionsprozeduren mit RETURN
AnweisungenZuweisung, Aufrufe (auch parameterlos), IF/ELSIF/ELSE, WHILE, REPEAT/UNTIL, FOR/TO/BY (konstante Schrittweite, beide Vorzeichen), EXIT, RETURN
AusdrückeVolle Präzedenz: Relationen (= # < <= > >=), additive (+ - OR), multiplikative (* DIV MOD AND), unäre - NOT, Klammern, Integer-Literale, TRUE/FALSE, Funktionsaufrufe; geschachtelte (* Kommentare *)
ProzedurenMutuelle Rekursion ohne FORWARD (Prozeduren auf Modulebene sind vordeklariert)
StringsLiteral "text" als erstes Argument von TEXTIO.WRITE/WRITELN (read-only in .text, Länge als versteckter Parameter)

Dokumentierte Abweichungen von ISO/IEC 10514-1

DIV/MOD nutzen truncierende (C-artige) statt floored-Semantik · BY-Schrittweiten müssen Compilezeit-Konstanten sein · Funktionsprozeduren benötigen mindestens ein RETURN (keine exhaustive Pfadanalyse) · alles außerhalb des Subsets — Arrays, Records, Mengen, Pointer, REAL, CASE, LOOP, WITH, opaque Typen, Coroutinen, Exceptions, verschachtelte Prozeduren, 45 weitere Standardmodule — wird mit klarer Diagnose abgelehnt statt falsch übersetzt.

Tests

Wie das Toolchain geprüft wurde

29Checks gesamt
16positive Tests (Exit-Codes)
10negative Tests (Ablehnung)
1Determinismus-Prüfung
2Stressprogramme
powershell -ExecutionPolicy Bypass -File tests\run_all.ps1 <alle 29 Checks gruen>
Selbst bauen

Die Toolchain aus dem Quellcode bauen

Das ZIP enthält den kompletten, baubaren Quellcode. Sie müssen dem mitgelieferten Binary nicht vertrauen — bauen Sie es selbst, in unter einer Minute.

WerkzeugBenötigt fürHerkunft
MinGW-w64 GCC (beliebiges C99)Übersetzen der Toolchain selbstWinLibs, MSYS2 oder winget install BrechtSanders.WinLibs.POSIX.UCRT
windres (binutils)Einbetten des Toolchain-Iconsin jedem MinGW-w64 enthalten
Python 3 + Pillownur zum Regenerieren der Icons (optional)pip install pillow
cd Modula2Toolchain_1.1.1 build\build_toolchain.cmd <BUILD OK: build\Modula2Toolchain.exe>

Das Skript kompiliert zunächst das Icon per windres (optional — fehlt windres, entsteht ein Exe ohne Icon, nur mit Warnung) und dann gcc -std=c99 -O2 über alle Quellcodes. SOURCE_DATE_EPOCH=1700000000 pinnt den PE-Zeitstempel: zwei Neubauten desselben Baums sind byte-identisch. Fehlt gcc, bricht das Skript kontrolliert ab — MinGWs bin\ auf PATH setzen oder die GCC=-Zeile oben im Skript anpassen.

Eigenen Build verifizieren

copy /y build\Modula2Toolchain.exe bin\ powershell -ExecutionPolicy Bypass -File tests\run_all.ps1 <alle 29 Checks muessen gruen sein>

Die Suite nutzt bevorzugt bin\ — wer sein frisches Binary nach bin\ kopiert, stellt sicher, dass wirklich der eigene Build geprüft wird. Die Modula-2-Pipeline braucht zur Laufzeit keine externen Werkzeuge; gcc und windres werden nur einmalig zum Bau der Toolchain selbst gebraucht.

Lieferumfang des ZIP

Modula2Toolchain_1.1.1/ bin/Modula2Toolchain.exe Toolchain (Icon eingebettet) src/ kompletter, baubarer Quellcode (C99) assets/ Programm- und Toolchain-Icons tools/gen_icons.py regeneriert Icons + eingebettete Payload build/build_toolchain.cmd Build-Skript (C99 + windres) examples/ lauffähige Beispielprogramme tests/ komplette 29-Check-Akzeptanzsuite README.md, version.txt, SHA256SUMS.txt
Status

Status und Lizenz

Wird nicht weiterentwickelt

Das Projekt ist für uns abgeschlossen. Wir entwickeln es nicht weiter und bieten dafür keinen Support. Wer es erweitern möchte: Der komplette Quellcode liegt bei — die Akzeptanzsuite zeigt, woran man sich orientieren kann.

CC0 Public Domain

Die Software ist gemeinfrei gewidmet (CC0 1.0): nutzen, kopieren, ändern, veröffentlichen und verteilen — für jeden Zweck, ohne Erlaubnis und ohne Bedingungen. Ohne jede Gewährleistung, bereitgestellt "wie besehen".

Herausgeber: Theo Gottwald, Herrenstr. 11, 76706 Dettenheim, Deutschland · theo.gottwald@it-berater.org · Entstanden als Testartefakt des PlanJinn-Projekts (autonomer Expert-Board-Workflow).

Download-Entwicklung

Tägliche Abrufe aller angebotenen Downloads der letzten 28 Tage (rollierend). Jede Download-Datei ist dauerhaft durch eine eigene Farbe gekennzeichnet.