4.3 KiB
Context
ExportRequest enthält heute ProjectStamp, Artefaktart, System, Architektur, Zielpfad und Überschreibentscheidung. Der Dialog speichert einen geprüften Auftrag, setzt dann aber UNAVAILABLE. export_result kontrolliert Auftrag und Revision, bevor es Status übernimmt. Tatsächliche Dateierzeugung und deren Nebenwirkungen sind noch nicht angebunden. VM-/Formwerte verwenden Rc und gehören dem besitzenden Thread.
Goals / Non-Goals
Goals: Reale Erzeugung über die bestehende UI mit konsistentem Stand, sicherem Abbruch und nachprüfbarer Dateiwirkung.
Non-Goals: Neue Exportdialoge neben den bestehenden, zweiter Compiler, Verschieben lebender VM-/Rc-Werte in Worker, stilles Speichern der Quellen.
Decisions
-
Den vorhandenen Projekt-Quelllader samt ungespeicherten Overlays und bereits etablierten Compiler verwenden. Auftrag und Snapshot erhalten eine eindeutige Generation neben dem Revisionsstempel. TBL-Dateien als unveränderliche Byte-Snapshots mit Inhaltsidentität aufnehmen und diese vor Veröffentlichung erneut gegen den aktuellen Stand prüfen. Übergabe an den gemeinsamen Dienst aus 02/03 über serialisierte Kompilat-/Modulproduktbytes und schlichte Ziel-/Auftragsdaten; keine Abhängigkeit des Diensts von der IDE.
-
Langlaufende Paket-/Toolschritte außerhalb des UI-Ereignisloops ausführen, Ergebnisse über einen kleinen vorhandenen beziehungsweise Standardkanal zurückführen. Der Worker erzeugt zunächst nur eine temporäre fertige Ausgabe. Die UI prüft Generation, Projektstempel, Dialog-/Abbruchzustand vor der finalen Veröffentlichung; erst danach Erfolg melden. Ein bloßer später Check in export_result genügt nicht, wenn der Worker das Ziel bereits überschrieben hätte.
-
Esc/Abbruch stoppt oder verwirft den Auftrag, bereinigt Staging und lässt das alte Ziel stehen. Kontrollierte Tools werden bei Abbruch beendet; unerwartet spät eintreffende Resultate dürfen keine Datei freigeben. Für bereits abgeschlossene Veröffentlichung zeigt die UI den wirklichen Abschluss, keinen rückwirkend erfundenen Abbruch.
-
Für Make EXE Zielauswahl vom gemeinsamen Katalog ableiten: Windows x86_64, macOS aarch64, Linux beide. Fehlende tbrt-Vorlagen/Finalisierung konkret melden. Make Library schlägt
.tblvor und zeigt seine Plattformunabhängigkeit; native Ziel-/Architekturfelder entfallen in diesem Modus und sind keine Verfügbarkeitsvoraussetzung. Der bisherige generische Phase-6-Sperrtext wird durch tatsächliche Verfügbarkeit ersetzt. -
Bisherige Phase-5-Tests bleiben als absichtlich backendloser Testfall erhalten. Neue Fälle verwenden denselben realen Backendpfad wie CLI; kontrollierte Rückmeldungen testen zusätzlich Fehler-/Abbruch-/Veraltungsrennen. Beide existierenden Specrequirements werden vollständig einschließlich aller alten Szenarien übernommen und auf fehlende Backendverfügbarkeit konditioniert.
-
Add File/Remove File und MAK-Speicherung um Bibliotheksmitglieder erweitern; TBL als Binärabhängigkeit mit Herkunft anzeigen, weder als Text editieren noch als Startdatei anbieten. Save-As erhält die relative Referenz; Remove löscht keine Library. Start/Check/Debugger verwenden denselben Dienst wie
tbc link, damit der IDE-Lauf dem Export entspricht. Im Debugger vorhandene Quellorte bewahren; fehlt Bibliotheksquelltext, dies anzeigen und vorhandene Fortsetzen-/Prozedurschrittwege anbieten, ohne einen erfundenen editierbaren Quellstand zu öffnen. Bibliotheksänderungen invalidieren Übersetzungs-/Linkcaches.
Risks / Trade-offs
- Alte Ergebnisse überschreiben neues Ziel → Veröffentlichung erst nach Generation-/Revisionstest im kontrollierenden Thread.
- Editorinhalt und Export divergieren → eingefrorener Overlay-Snapshot; gespeicherte Dateibytes und Dirty-Markierungen in Tests vergleichen.
- Hintergrundwerkzeug bleibt nach Esc aktiv → Prozess-/Staging-Lebensdauer an Auftrag binden und späte Rückmeldung negativ testen.
Migration Plan
Vorhandene Dialoge und Tastenzuordnungen erhalten. Backendlose Starts bleiben nachvollziehbar bedienbar. Neue native Tests aus 02/03 sowie bestehende App-Abnahmetests parallel erhalten; Die additive TBL-Mitgliedsart aus 03 muss beim Öffnen/Speichern verlustfrei erhalten bleiben. Die alten Anforderungen werden für EXE-Zielwahl und portable Library-Ausgabe präzisiert; reine BAS-/FRM-Projekte bleiben unverändert.