Phase 5: Editor und inkrementellen Compiler implementieren und archivieren
This commit is contained in:
@@ -244,7 +244,9 @@ Nutzer — verworfen: erfordert Rust-Toolchain beim Anwender.
|
||||
Definitionen. Echte lokale Duplikate werden diagnostiziert. SHARED
|
||||
bleibt modullokal. COMMON-Variablen desselben Blocks und derselben vollständigen
|
||||
Variablenidentität teilen einen Slot; Elementtyp, Rang und bekannte Grenzen
|
||||
müssen kompatibel sein. Ein inkrementeller IDE-Cache ist weiterhin geplant.
|
||||
müssen kompatibel sein. Der IDE-Cache speichert Parsing und unverknüpfte
|
||||
Modulprodukte im vorhandenen Projektcompiler; der Vollcompile nutzt dieselben
|
||||
Schritte mit einem leeren Cache. Details stehen in [ide-bedienung.md](ide-bedienung.md#übersetzung-und-revisionsbindung).
|
||||
- Keine Optimierungspasses. Erlaubt sind nur Gratis-Optimierungen im
|
||||
Codegen (Konstantenfaltung im Ausdruck, Peephole beim Emit).
|
||||
- Budget als Test verankern (Phase 2): Benchmark-Projekt (~50k Zeilen)
|
||||
@@ -628,3 +630,24 @@ die Entscheidungen sind Lückenfüller, keine Setzungen gegen das Vorbild.
|
||||
vorhandenem Array prüft es Elementtyp und die ausgewerteten Grenzen, ohne
|
||||
Werte oder Handle zu ersetzen (Konflikt: Fehler 13). Statisch erkennbare
|
||||
COMMON-Typ-/Grenzenkonflikte werden bereits beim Linken diagnostiziert.
|
||||
|
||||
### Inkrementeller Compile (Phase 5, Change 03)
|
||||
|
||||
Messung vom 2026-09-06 auf macOS/aarch64, Apple M5 Max. Aufruf:
|
||||
`cargo bench -p tb-vm --bench compile`; Release mit opt-level=3, LTO und
|
||||
codegen-units=1. Derselbe Generator erzeugt das Referenz-Einzelmodul mit
|
||||
508 Zeilen und das Projekt mit 20 Modulen / 49.760 Zeilen. Vollcompile und
|
||||
Cacheänderung schließen die Projektauflösung und den Link ein. Cacheänderungen
|
||||
ändern einen privaten Prozedurrumpf; sieben Läufe liefern den Median und prüfen
|
||||
die Zahl tatsächlich neu übersetzter Module. Die Grenzwerte werden nur im
|
||||
expliziten Release-Benchmark geprüft, nicht in normalen Debug-Tests.
|
||||
|
||||
| Referenz | Vollcompile | Cacheänderung (Median) | Neu / wiederverwendet | Budget |
|
||||
| --- | ---: | ---: | ---: | ---: |
|
||||
| Einzelmodul, 508 Zeilen | 1,21 ms | 0,74 ms | 1 / 0 | < 50 ms: erfüllt |
|
||||
| Projekt, 49.760 Zeilen | 103 ms | 22,10 ms | 1 / 19 | < 1.000 ms: erfüllt |
|
||||
|
||||
Der Vollcompile des Einzelmoduls ist wie im bestehenden Harness der beste
|
||||
von zehn Läufen; das Projekt wird einmal vollständig gemessen. Der Benchmark
|
||||
zählt 335.421 verknüpfte Instruktionen. Diese Werte sind eine lokale Messung,
|
||||
keine hardwareunabhängige Zeitgarantie.
|
||||
|
||||
Reference in New Issue
Block a user