Phase 6: IDE-Exportanbindung abschließen und Change archivieren

This commit is contained in:
2026-09-07 17:00:29 +02:00
parent 25176947ba
commit 69f2002481
31 changed files with 1310 additions and 136 deletions

View File

@@ -101,31 +101,42 @@ Externe Änderungen der Optionsdatei werden vor dem Ersetzen erkannt.
## Native Exporte: UI in Phase 5, Erzeugung in Phase 6
Run → Make EXE File… (Alt+R, E) und Make Library… (Alt+R, L) öffnen
vollständig bedienbare Dialoge. Artefaktart ist das native eigenständige
Executable bzw. die native Systembibliothek. Zielsystem (Linux/macOS/Windows)
und Architektur (x86_64/aarch64) sind auswählbar; Vorgabe ist das laufende
Zielsystem. Ausgabepfad und Überschreibentscheidung werden je Auftrag
erfasst. Die Auswahl ist noch keine Zusage einer vom Backend unterstützten
Kombination; die Phase-6-Plattformmatrix bestätigt die tatsächlichen Ziele.
Run → Make EXE File… (Alt+R, E) erzeugt ein eigenständiges natives
Executable. Unterstützt werden Windows x86_64, macOS aarch64 und Linux
x86_64/aarch64. Die passende `tbrt`-Vorlage samt `.meta` muss neben dem
IDE-Executable unter `runtimes/<target-triple>/` liegen. Fehlende Vorlagen
und Finalisierungsvoraussetzungen werden konkret gemeldet; macOS-Exporte
benötigen macOS mit `/usr/bin/codesign`.
Prüfen/Enter validiert die Angaben und schützt Projektdatei, geöffnete
Dokumente und binäre FRM-Originale. Leere/ungültige Pfade, fehlende
Zielverzeichnisse, bestehende Ziele ohne Zustimmung und `.tbc` als natives
Ziel ergeben eine Diagnose; die anderen Angaben bleiben erhalten.
Make Library… (Alt+R, L) erzeugt eine portable `.tbl`. Hier gibt es keine
System-/Architekturwahl und keine erforderliche Runtime-Vorlage. Add File
nimmt TBL als Binärabhängigkeit auf, Remove File entfernt nur den Verweis.
MAK-Speicherung und Save As erhalten die Reihenfolge und relativen Verweise.
Bibliotheken sind weder editierbare Quelltexte noch zulässige Startdateien.
Start, Check, Debugger und Export verwenden denselben Linker wie `tbc link`.
Fehlende Bibliotheksquellen werden im Debugger benannt; Fortsetzen und
Prozedurschritte bleiben möglich.
Nur **Erzeugen** ist bis Phase 6 gesperrt, mit dem Hinweis „Native
Erzeugung folgt in Phase 6“. Ein Produktionsaufruf schreibt keine Datei
und meldet keinen erfundenen Erfolg. Der vorbereitete Auftrag trägt
Projektidentität und Revisionsstand, Artefakt, Zielsystem, Architektur,
Pfad und Überschreibentscheidung. Die UI kann zu diesem Auftrag Laufend,
Erfolg, Fehler und Abbruch darstellen. Oberflächentests speisen diese
Ergebnisse kontrolliert ein; sie belegen keine native Erzeugung.
Erzeugen/Enter beziehungsweise der gleichnamige Mausknopf validiert den
Ausgabepfad und die Überschreibentscheidung. Projektdateien, Quelltexte,
Includes, binäre FRM-Originale und Bibliotheken sind geschützt. Leere oder
ungültige Pfade, fehlende Zielverzeichnisse, unzulässige EXE-Ziele und `.tbc`
als natives Exportziel liefern eine Diagnose und erhalten die Angaben.
Die tatsächliche Erzeugung und reale Backend-Anbindung, native Formate,
Library-Symbole/Aufrufvertrag und der native Verbraucher-Nachweis stehen
explizit in [PLAN.md, Phase 6](../PLAN.md). Ein umbenanntes TBC erfüllt
keines der beiden Exportziele.
Der Export verwendet den aktuellen Modul-/Form-/Include-Pufferstand ohne
implizites Speichern. Bibliotheksbytes gehören zum Auftragsstand. Während
der Hintergrundarbeit bleibt der Dialog bedienbar; Esc verwirft den Auftrag
und seine temporäre Ausgabe. Erfolg erscheint erst nach Veröffentlichung.
Projektänderungen, ausgetauschte Libraries, neuere Aufträge und extern
geänderte Ziele verhindern die Veröffentlichung eines alten Ergebnisses.
Das Schließen eines bereits erfolgreichen Dialogs macht den Erfolg nicht
rückwirkend zu einem Abbruch.
Absichtlich backendlose Oberflächentests zeigen weiterhin die
Phase-6-Abhängigkeit und erzeugen keine Dateien. Die echte Integration wird
zusätzlich mit nativer Ausführung und einem quellfreien TBL-Verbraucher
geprüft. Format und CLI-Beispiele: [P-Code-Bibliotheken](pcode-bibliotheken.md).
Die vollständige Zielsystem-/Terminalmatrix folgt gemäß [PLAN.md](../PLAN.md).
## Befehlsabdeckung nach Change 07
@@ -141,7 +152,7 @@ Output-Fokus unterbricht Ctrl+C sofort die Sitzung, ohne eine BASIC-Taste einzur
| Edit | Undo, Cut/Copy/Paste/Clear, New Sub/Function, Event Procedures | — |
| View | Code/Form-Auswahl, Prozedurauswahl, Included File/Lines, Diagnostics, Designer Menu Bar/Value-Fokus, Grid Lines, Output Screen, Next Statement | — |
| Search | Find, Selected Text, Repeat Last Find, Change | — |
| Run | Start/Restart/Continue/Pause, COMMAND$, wirksame Startdatei und beide Make-Dialoge | Native Erzeugung: Phase 6 |
| Run | Start/Restart/Continue/Pause, COMMAND$, wirksame Startdatei und beide Make-Dialoge | Echte EXE-/TBL-Erzeugung; Vierzielabnahme in Phase 6 |
| Debug | Breakpoints, Schritte, Calls, Watches/Watchpoints, Direktfenster, Trace/History, Break on Errors und Set Next Statement | — |
| Options | Display, Set Paths, Right Mouse, Save, Syntax Checking einschließlich Zeilenprüfung | — |
| Window | New Window, Arrange All, Calls/Debug/Help/Immediate/Output/Project, aktive Codeliste, alle Fensterkürzel | — |

View File

@@ -98,7 +98,10 @@ protected }, cancelled)` erhält den fertig verknüpften Projektstand, keine
IDE-Dokumenttypen. `protected` enthält insbesondere das Eingabemanifest;
Quell-/Include-Pfade aus dem Kompilat sowie Vorlage/Metadaten ergänzt der
Export selbst. Die IDE kann ihren bestehenden Abbruch-/Revisionszustand
über den Callback prüfen. `publish` stellt denselben Schutz für TBL/Link
vor der Veröffentlichung prüfen: `prepare_export` beziehungsweise
`prepare_publication` liefern ein fertiges `PreparedPublication`. Der
UI-Thread prüft Auftrag und Eingaben, bevor er dessen `publish` aufruft;
Drop verwirft das Staging. `publish` stellt denselben Schutz für TBL/Link
bereit: temporäre Geschwisterdatei, vollständige Finalisierung, sync,
Abbruch- und Zielkonfliktprüfung, danach Veröffentlichung. Ein neues Ziel
wird mit atomarem No-clobber angelegt. Ein vorhandenes Ziel wird nur nach

View File

@@ -148,10 +148,10 @@ Dateieffekt und Neustart durch `RUN` werden geprüft. Die JSON-Ausgabe nennt
Host-Target, Prüfsumme und Ergebnis. Ein Cross-Compile ersetzt diesen Lauf
nicht. Die vier JSON-Nachweise gehören in die Plattform-/Gitea-Abnahme.
IDE-Change 04 kann `ProjectSources::compile_library`, `compile` und
`protected_inputs` sowie `ProjectCompiler::link_library` nutzen. Er ergänzt
das IDE-Dokumentmodell für nicht editierbare TBL-Mitglieder und verbindet
Make Library/Make EXE mit derselben Veröffentlichung; die UI ist Teil von 04.
Die IDE nutzt denselben Compiler-/Linkdienst für Start, Check, Debugger,
Make Library und Make EXE. TBL-Mitglieder sind nicht editierbar. Die Make-
Dialoge verwenden ungespeicherte Puffer und veröffentlichen nur weiterhin
gültige Aufträge; [Bedienung und Voraussetzungen](ide-bedienung.md#native-exporte-ui-in-phase-5-erzeugung-in-phase-6).
Change 05 führt den identischen Verbrauchercheck auf allen vier echten
Zielsystemen aus. Change 06 baut die vier nativen Compiler-/Runtime-Pakete
zentral auf dem Linux-arm64-Gitea-Runner per Cross-Kompilierung und bindet

View File

@@ -54,10 +54,12 @@ erklärt Fehlerhalte, Watchpoints und die Grenzen von Set Next Statement.
## Speichern und nächste Schritte
File → Save Project hält den Stand fest. Make EXE File und Make Library
bieten bereits die Zielauswahl; die tatsächliche Erzeugung eines nativen
Standalone-Programms beziehungsweise einer nativen Library folgt in Phase 6.
Siehe [Exportgrenze](ide-bedienung.md#native-exporte-ui-in-phase-5-erzeugung-in-phase-6).
File → Save Project hält den Stand fest. Make EXE File erzeugt mit der
passenden Runtime-Vorlage ein natives Standalone-Programm. Make Library
erzeugt ohne native Zielwahl eine portable `.tbl` zur Wiederverwendung über
`tbc link` oder Add File in einem anderen Projekt. Beide Exporte übernehmen
auch ungespeicherte Bearbeitungen; Esc bricht die Erzeugung ab.
Siehe [Export und Voraussetzungen](ide-bedienung.md#native-exporte-ui-in-phase-5-erzeugung-in-phase-6).
Weiter: [Tastatur](tastatur.md), [Hilfe benutzen](hilfe.md),
[Sprachreferenz](sprachreferenz.md), [Bibliothek](bibliothek.md).