Phase 5: Ausführung und Output implementieren und archivieren
This commit is contained in:
@@ -31,7 +31,7 @@ Besondere Risiken sind unverändert ausgeführte alte Kompilate nach einer Text
|
||||
| 01 | [Projekt- und Dokumentmodell](proposal.md) | keine | Gemeinsame Lade-/Speicheraktionen, bearbeitete Quellen, MAK und Startup-Metadaten |
|
||||
| 02 | [IDE-Rahmen](../2026-09-06-phase-5-02-ide-rahmen/proposal.md) | 01 | Terminalbesitz, Menüs, Fenster, Dialoge, Optionen und Eingabetestpfad |
|
||||
| 03 | [Editor und inkrementelle Übersetzung](../2026-09-06-phase-5-03-editor-und-inkrementelle-uebersetzung/proposal.md) | 01, 02 | Vollständige Codebearbeitung, Diagnose und schneller aktueller Compile |
|
||||
| 04 | [Ausführung und Output](../../phase-5-04-ausfuehrung-und-output/proposal.md) | 01, 02, 03 | Fortsetzbare VM-Sitzung, Reset, Ausgabe, Shell und Textdruck |
|
||||
| 04 | [Ausführung und Output](../2026-09-06-phase-5-04-ausfuehrung-und-output/proposal.md) | 01, 02, 03 | Fortsetzbare VM-Sitzung, Reset, Ausgabe, Shell und Textdruck |
|
||||
| 05 | [Formular-Designer](../../phase-5-05-formular-designer/proposal.md) | 01, 02, 03 | Visuelles Gestalten und konsistenter Ereigniscode |
|
||||
| 06 | [Debugger und Direktfenster](../../phase-5-06-debugger-und-direktfenster/proposal.md) | 03, 04 | Quellgenaues Debuggen, Watches, Immediate, History und Fehlerhalte |
|
||||
| 07 | [Hilfesystem](../../phase-5-07-hilfesystem/proposal.md) | 02, 03 | Offline-Markdown-Hilfe und Kontextnavigation |
|
||||
|
||||
@@ -23,6 +23,6 @@ Keine bestehenden Anforderungen werden ersetzt; die neue IDE-Fähigkeit ergänzt
|
||||
|
||||
tb-ide-Sitzung, tb-vm/interp.rs, CLI-run_chain, tb-runtime/host.rs und builtins.rs sowie tb-ui/host.rs und screen.rs. Vorhandene Ereignisse, TextScreen und CLI-Ausführung bleiben die Grundlage.
|
||||
|
||||
**Abhängigkeiten:** [phase-5-01-projekt-und-dokumentmodell](../archive/2026-09-06-phase-5-01-projekt-und-dokumentmodell/proposal.md), [phase-5-02-ide-rahmen](../archive/2026-09-06-phase-5-02-ide-rahmen/proposal.md), [phase-5-03-editor-und-inkrementelle-uebersetzung](../archive/2026-09-06-phase-5-03-editor-und-inkrementelle-uebersetzung/proposal.md).
|
||||
**Abhängigkeiten:** [phase-5-01-projekt-und-dokumentmodell](../2026-09-06-phase-5-01-projekt-und-dokumentmodell/proposal.md), [phase-5-02-ide-rahmen](../2026-09-06-phase-5-02-ide-rahmen/proposal.md), [phase-5-03-editor-und-inkrementelle-uebersetzung](../2026-09-06-phase-5-03-editor-und-inkrementelle-uebersetzung/proposal.md).
|
||||
|
||||
**Gesamtplanung:** [Phase-5-Übersicht](../archive/2026-09-06-phase-5-01-projekt-und-dokumentmodell/phase-5-uebersicht.md). Die Nummern geben eine gültige Umsetzungsreihenfolge an; OpenSpec erzwingt Change-Abhängigkeiten nicht automatisch.
|
||||
**Gesamtplanung:** [Phase-5-Übersicht](../2026-09-06-phase-5-01-projekt-und-dokumentmodell/phase-5-uebersicht.md). Die Nummern geben eine gültige Umsetzungsreihenfolge an; OpenSpec erzwingt Change-Abhängigkeiten nicht automatisch.
|
||||
@@ -1,27 +1,27 @@
|
||||
## 1. Fortsetzbare Ausführung
|
||||
|
||||
- [ ] 1.1 Einen begrenzten VM-Pollpfad mit eigenem Yield-Zustand ergänzen und run darüber treiben; Tests belegen Unterbrechbarkeit leerer Schleifen, unveränderte RunEvents und keine zusätzlichen Clock-Abfragen im trapfreien Standardlauf.
|
||||
- [ ] 1.2 INPUT/LINE INPUT einschließlich teilweise gelesener Eingabe als fortsetzbare Operation modellieren; Pause/Resume-Tests belegen einmaligen Prompt, erhaltenen Stack und keine doppelten Zuweisungen.
|
||||
- [ ] 1.3 INPUT$ und SLEEP an fortsetzbare Eingabe-/Deadline-Zustände anbinden; Tests belegen Zeichenreste, Timeout und Pause ohne wiederholte Nebenwirkungen.
|
||||
- [ ] 1.4 MSGBOX, INPUTBOX, modales SHOW und die sichtbare Forms-Schleife kooperativ treiben; Tests belegen Unterbrechen/Fortsetzen einschließlich Timer-, Fokus- und Handlerzustand.
|
||||
- [ ] 1.5 Alle weiteren Host-Warteaufrufer gegen den Pollpfad abgleichen und eine konkrete Liste in verification.md führen; jede wartende Operation besitzt einen Fortsetzungsnachweis oder eine dokumentierte synchrone Betriebssystemgrenze.
|
||||
- [x] 1.1 Einen begrenzten VM-Pollpfad mit eigenem Yield-Zustand ergänzen und run darüber treiben; Tests belegen Unterbrechbarkeit leerer Schleifen, unveränderte RunEvents und keine zusätzlichen Clock-Abfragen im trapfreien Standardlauf.
|
||||
- [x] 1.2 INPUT/LINE INPUT einschließlich teilweise gelesener Eingabe als fortsetzbare Operation modellieren; Pause/Resume-Tests belegen einmaligen Prompt, erhaltenen Stack und keine doppelten Zuweisungen.
|
||||
- [x] 1.3 INPUT$ und SLEEP an fortsetzbare Eingabe-/Deadline-Zustände anbinden; Tests belegen Zeichenreste, Timeout und Pause ohne wiederholte Nebenwirkungen.
|
||||
- [x] 1.4 MSGBOX, INPUTBOX, modales SHOW und die sichtbare Forms-Schleife kooperativ treiben; Tests belegen Unterbrechen/Fortsetzen einschließlich Timer-, Fokus- und Handlerzustand.
|
||||
- [x] 1.5 Alle weiteren Host-Warteaufrufer gegen den Pollpfad abgleichen und eine konkrete Liste in verification.md führen; jede wartende Operation besitzt einen Fortsetzungsnachweis oder eine dokumentierte synchrone Betriebssystemgrenze.
|
||||
|
||||
## 2. IDE-Sitzung und gemeinsamer Reset
|
||||
|
||||
- [ ] 2.1 Die Sitzungszustände und aktuellen Kompilatrevisionen an Start/Continue/Unterbrechen anbinden; App-Eventtests prüfen F5/Shift+F5/Ctrl+Break und die explizite Wahl bei Quelländerung im Break-Modus.
|
||||
- [ ] 2.2 STOP, END, SYSTEM und Fehler auf IDE-Zustände abbilden; Tests bestätigen Pause bei STOP, offene IDE nach Ende und unveränderte CLI-Exit-Codes.
|
||||
- [ ] 2.3 Explizite Startup-Auswahl aus 01 im gemeinsamen Compiler umsetzen; IDE-/CLI-/TBC-Tests belegen BAS ohne implizites Startformular, ausgewähltes FRM und unverändertes Verhalten alter MAK-Dateien.
|
||||
- [ ] 2.4 run_target/run_chain-Reset wiederverwenden und IDE-Restart/BASIC-RUN anschließen; Tests belegen neue VM/Runtime, relative Fremdziele, Startzeile und Erhalt des bearbeiteten Projekts bei fehlendem Ziel.
|
||||
- [ ] 2.5 COMMAND$-Dialog und kontrolliertes Sitzungsende implementieren; wiederholte Starts/Resets prüfen Argumente sowie fehlende alte Timer, Handles und ausstehende Aktionen.
|
||||
- [x] 2.1 Die Sitzungszustände und aktuellen Kompilatrevisionen an Start/Continue/Unterbrechen anbinden; App-Eventtests prüfen F5/Shift+F5/Ctrl+Break und die explizite Wahl bei Quelländerung im Break-Modus.
|
||||
- [x] 2.2 STOP, END, SYSTEM und Fehler auf IDE-Zustände abbilden; Tests bestätigen Pause bei STOP, offene IDE nach Ende und unveränderte CLI-Exit-Codes.
|
||||
- [x] 2.3 Explizite Startup-Auswahl aus 01 im gemeinsamen Compiler umsetzen; IDE-/CLI-/TBC-Tests belegen BAS ohne implizites Startformular, ausgewähltes FRM und unverändertes Verhalten alter MAK-Dateien.
|
||||
- [x] 2.4 run_target/run_chain-Reset wiederverwenden und IDE-Restart/BASIC-RUN anschließen; Tests belegen neue VM/Runtime, relative Fremdziele, Startzeile und Erhalt des bearbeiteten Projekts bei fehlendem Ziel.
|
||||
- [x] 2.5 COMMAND$-Dialog und kontrolliertes Sitzungsende implementieren; wiederholte Starts/Resets prüfen Argumente sowie fehlende alte Timer, Handles und ausstehende Aktionen.
|
||||
|
||||
## 3. Terminal und Ausgabe
|
||||
|
||||
- [ ] 3.1 IDE-/Programmeingaben über den Dispatcher aus 02 exklusiv zustellen; Eventtests prüfen Copy bei Editorfokus, Break bei Outputfokus und normale BASIC-Tasten genau einmal.
|
||||
- [ ] 3.2 Output-Fenster und F4-Vollbild auf demselben TextScreen darstellen und die physische Mindestgrößenprüfung vom Viewport lösen; Snapshots prüfen kleine Output-Fenster, echtes Resize und erhaltene Endausgabe.
|
||||
- [ ] 3.3 Terminalübergabe für File→Shell und BASIC-SHELL über einen gemeinsamen Hostpfad implementieren; kontrollierte Kindprozess-Tests prüfen Erfolg, Exit-Code, Benutzerabbruch und Terminalwiederherstellung.
|
||||
- [ ] 3.4 File→Print mit Auswahl/Gesamttext und UTF-8-Zieldatei an die geschützte Dateiausgabe aus 01 binden; Tests belegen Inhalt, Überschreibentscheidung und Schreibfehler ohne Datenverlust.
|
||||
- [x] 3.1 IDE-/Programmeingaben über den Dispatcher aus 02 exklusiv zustellen; Eventtests prüfen Copy bei Editorfokus, Break bei Outputfokus und normale BASIC-Tasten genau einmal.
|
||||
- [x] 3.2 Output-Fenster und F4-Vollbild auf demselben TextScreen darstellen und die physische Mindestgrößenprüfung vom Viewport lösen; Snapshots prüfen kleine Output-Fenster, echtes Resize und erhaltene Endausgabe.
|
||||
- [x] 3.3 Terminalübergabe für File→Shell und BASIC-SHELL über einen gemeinsamen Hostpfad implementieren; kontrollierte Kindprozess-Tests prüfen Erfolg, Exit-Code, Benutzerabbruch und Terminalwiederherstellung.
|
||||
- [x] 3.4 File→Print mit Auswahl/Gesamttext und UTF-8-Zieldatei an die geschützte Dateiausgabe aus 01 binden; Tests belegen Inhalt, Überschreibentscheidung und Schreibfehler ohne Datenverlust.
|
||||
|
||||
## 4. Gemeinsame Regression und Dokumentation
|
||||
|
||||
- [ ] 4.1 IDE- und CLI-Läufe mit identischem Input-/Zeit-/Forms-Skript vergleichen; vorhandene VM-, Fehlerhandler-, Runtime-, Forms- und CLI-Regressionen müssen nach dem Poll-Umbau bestehen.
|
||||
- [ ] 4.2 Sitzungsübergänge, Startup-Metadatenwirkung, Shell-/Druckanpassung und Unterbrechungsgrenzen dokumentieren; verification.md ordnet alle Spec-Szenarien den ausgeführten Nachweisen zu und Format-/Clippy-Prüfung besteht.
|
||||
- [x] 4.1 IDE- und CLI-Läufe mit identischem Input-/Zeit-/Forms-Skript vergleichen; vorhandene VM-, Fehlerhandler-, Runtime-, Forms- und CLI-Regressionen müssen nach dem Poll-Umbau bestehen.
|
||||
- [x] 4.2 Sitzungsübergänge, Startup-Metadatenwirkung, Shell-/Druckanpassung und Unterbrechungsgrenzen dokumentieren; verification.md ordnet alle Spec-Szenarien den ausgeführten Nachweisen zu und Format-/Clippy-Prüfung besteht.
|
||||
@@ -0,0 +1,79 @@
|
||||
# Verifizierung: Phase 5 / 04 – Ausführung und Output
|
||||
|
||||
Stand: 2026-09-06. Geprüft gegen proposal.md, design.md, alle 16 Aufgaben und
|
||||
alle sechs Requirements mit neun Szenarien in specs/ide-ausfuehrung/spec.md.
|
||||
|
||||
## Ergebnis
|
||||
|
||||
Vollständig umgesetzt. Keine offenen Befunde in Vollständigkeit, Korrektheit
|
||||
oder Kohärenz. Am 2026-09-06 wurde die Hauptspezifikation `ide-ausfuehrung`
|
||||
synchronisiert, mit 19 Hauptspezifikationen erfolgreich validiert und der
|
||||
Change unter `archive/2026-09-06-phase-5-04-ausfuehrung-und-output` archiviert.
|
||||
|
||||
Die VM läuft auf dem IDE-Thread in begrenzten Intervallen. Yield und Waiting
|
||||
sind von RunEvent und Debugger-Ereignissen getrennt. Der CLI-Wrapper treibt
|
||||
dieselben Operationen bis zum nächsten RunEvent. Bestehende Capture-/Forms-
|
||||
und Fehlerhandler-Regressionen bleiben grün. Es gibt keine neuen Abhängigkeiten.
|
||||
|
||||
## Szenarien und Nachweise
|
||||
|
||||
| Spec-Szenario | Umsetzung | Ausgeführter Nachweis |
|
||||
| --- | --- | --- |
|
||||
| Startauswahl in IDE und CLI | `ProjectSources::compile`, nach Startdatei geordnete SourceUnits, explizites BAS ohne Startformular, FRM-Auswahl im TBC | IDE `startup_selection_matches_shared_cli_pipeline_and_legacy_mak`; CLI `explicit_startup_order_and_form_selection_survive_tbc`: Reihenfolge B/A, ausgewähltes zweites FRM, Legacy-Standard, COMMAND$, TBC-Rundlauf |
|
||||
| Änderung während einer Pause | Sitzung bindet Bytecode und vollständige Quellrevision; Entscheidung Neustart/ausdrücklich altes Kompilat, sichtbare Kennzeichnung | IDE `changed_paused_source_requires_explicit_old_revision_or_restart`, `comment_only_source_change_also_requires_revision_choice`; ungültiger neuer Stand startet keine VM |
|
||||
| Abbruch während INPUT | Frame besitzt Teiltext, Restlänge und Stack-Argumente; Pause nennt Quelldatei/Zeile | IDE `f5_input_pause_copy_and_single_delivery_keep_the_same_vm`; VM `partial_console_operations_keep_prompt_arguments_and_assignment`: INPUT, LINE INPUT, INPUT$, RANDOMIZE, Prompt und Zuweisung genau einmal |
|
||||
| Enge Schleife und Formular | Feste Instruktionsbudgets, fortsetzbares SHOW und Forms-Pump, Pause/F5/F4 | VM `finite_slices_preserve_events_without_clock_queries`, `modal_and_modeless_forms_resume_handlers_across_tiny_budgets`; IDE `explicit_end_and_system_end_visible_forms_but_natural_end_keeps_them_live`, einschließlich Ctrl+Break unterhalb der Terminal-Mindestgröße |
|
||||
| Wiederholter Neustart | `new_execution` als gemeinsamer Reset; altes VM-/Runtime-Objekt wird verworfen; separates Ausführungsziel | IDE `restart_drops_files_data_traps_and_queued_actions`, `restart_command_run_targets_and_missing_target_preserve_documents`, `named_run_of_current_target_uses_edited_sources`: offene Datei, DATA, Timer-Trap, Variablen, COMMAND$, ausstehende Shell/Eingaben, RUN-Startzeile, relative/fehlende Ziele und erhaltene Dokumente |
|
||||
| Kleines Ausgabefenster | ScreenWidget als abgeschnittene Ansicht des einzigen Programmpuffers; physische Mindestgröße beim Terminalbesitzer | IDE `output_viewports_resize_and_end_preserve_buffer_and_basic_colors`: 30×8-Fenster, F4, BASIC-Farben, 120×40-Resize, erhaltene Endausgabe; VM `pending_dialog_keeps_physical_resize_and_modeless_handler_finishes_after_hide` |
|
||||
| Copy und Programmeingabe | App-Dispatcher entscheidet vor Runtime-Zustellung; lokale Mauskoordinaten im Output-Viewport | IDE `f5_input_pause_copy_and_single_delivery_keep_the_same_vm`, bestehender `mouse_focus_is_modal_and_program_abort_is_not_editor_copy`: Ctrl+C im Editor kopiert, im Output pausiert es; Zeichen kommen einmal an |
|
||||
| Shell kehrt zurück | Gemeinsamer Host-Shell-Einstieg und gemeinsamer TerminalGuard; IDE plant Übergabe außerhalb des VM-Polls; Kind wird abgewartet bzw. beendet | IDE `shell_request_is_resumed_once_and_error_is_basic_error`; UI `terminal_cleanup_on_normal_error_and_partial_initialization`: Exit 0/7, kontrollierter Abbruch ohne regulären Exit-Code mit unverändertem Rückgabewert 0, Modusrestaurierung; echter PTY-Smoke für BASIC-SHELL, Ctrl+C und File→Shell mit Rückkehr, Continue und identischen Terminalattributen |
|
||||
| Druckziel nicht schreibbar | Print nutzt geschütztes `Project::save_text` und atomare Ausgabe; Auswahl/Gesamttext, Vorgabe LPT1.TXT | IDE `print_uses_utf8_protected_output_and_does_not_mutate_source`: UTF-8, Auswahl/Gesamttext, explizites Überschreiben, geschütztes Quellziel und nicht beschreibbarer Pfad unter einer regulären Datei; Quelldatei und bestehender Zielbestand bleiben unverändert |
|
||||
|
||||
Zusätzliche Nachweise: `sleep_deadline_survives_pause_and_does_not_pop_argument_twice`,
|
||||
`dialogs_keep_partial_text_focus_and_caller_arguments` und
|
||||
`common_dialog_external_call_keeps_byref_arguments_until_completion` prüfen
|
||||
Deadline, MSGBOX/INPUTBOX samt Fokus und Common-Dialog-Aufrufe mit ByRef-Argumenten.
|
||||
`ide_and_cli_run_wrapper_match_input_time_and_forms_script` vergleicht einen
|
||||
identischen Forms-Timer-/SLEEP-/Eingabe-/COMMAND$-Ablauf und die fertige Ausgabe.
|
||||
|
||||
## Aufgabenabdeckung
|
||||
|
||||
- 1.1–1.5: VM-Poll, Frame-Fortsetzungen, Dialogmodell, Forms-Pump und untenstehender Wartepfad-Audit; sieben gezielte VM-Tests plus bestehende Ereignis-/Forms-Regressionen.
|
||||
- 2.1–2.5: `execution.rs`, App-Befehle und gemeinsame Projekt-/Reset-Funktionen; zwölf IDE-Ausführungstests, CLI-Startup-/TBC- und bestehende STOP-Exitcode-Tests.
|
||||
- 3.1–3.4: Input-Dispatcher, ScreenWidget, gemeinsamer TerminalGuard, Print-Dialog; IDE-, UI- und reale PTY-Nachweise.
|
||||
- 4.1–4.2: gemeinsamer Skriptvergleich, vollständige Workspace-Regression, Bedienungsdokumentation, dieser Report und Format-/Clippy-Prüfung.
|
||||
|
||||
## Audit aller Wartepfade
|
||||
|
||||
| Pfad | Verhalten im IDE-Poll / Grenze |
|
||||
| --- | --- |
|
||||
| `Vm::konsoleneingabe` → INPUT/LINE INPUT | Teiltext im Frame; höchstens 64 gepufferte Tasten je Leseraufruf; danach Fortschritt oder Waiting, kein Host-Warten. Referenzen bleiben bis zur Zuweisung auf dem Stack. |
|
||||
| `CallBuiltin(INPUT_S, 1)` | Derselbe Leser mit erhaltener Restlänge und Tastencode-Rest; Datei-Variante mit zwei Argumenten bleibt synchrones Datei-I/O. |
|
||||
| `CallBuiltin(RANDOMIZE, 0)` | Derselbe Leser; Seed-Prompt einmal, Saatsetzung erst nach vollständiger Eingabe. Direkter Runtime-Fallback `bi_randomize`/`read_line` wird von der VM nicht verwendet. |
|
||||
| `Instr::Sleep` | Absolute Host-Deadline im Frame; Waiting nennt auch frühere Trap-/Forms-Fristen. Ereignishandler beenden SLEEP wie bisher. Der direkte Runtime-Fallback `bi_sleep` wird vom Codegenerator nicht als Wartepfad verwendet. |
|
||||
| `forms_dialog` → MSGBOX/INPUTBOX sowie ABOUT/FILEOPEN/FILESAVE/FINDTEXT/CHANGETEXT | `Dialog::poll` bewahrt Modell, Fokus, Eingabetext und Hintergrund; ein Ereignis pro Aufruf, kein blockierendes next_event. Common-Dialog-Argumente verbleiben bis Abschluss auf dem Stack. Resize erreicht auch den aufbewahrten Hintergrund. |
|
||||
| Modales SHOW / `waiting_form` | Waiting statt `warten`; Handler und wartender Aufrufer bleiben getrennte Frames. |
|
||||
| `poll_visible_forms` | Handler laufen auch über Budgetgrenzen und nach Hide vollständig zu Ende; EOF verarbeitet zuvor angenommene Ereignisse. |
|
||||
| `Vm::warten`, `run`, `run_visible_forms` | Blockierende Komfort-Wrapper für CLI/Capture; ausschließlich diese Wrapper rufen den Host-Wartepfad auf. Der explizite alte `run_visible_forms`-Einstieg bleibt für bestehende Einbetter erhalten; IDE/CLI unterscheiden natürliches Ende von END/SYSTEM. |
|
||||
| `Dialog::run`, `msgbox_dialog`, `inputbox_dialog` | Synchrone UI-Komfort-Wrapper um denselben Dialog-Poll. Die VM verwendet die fortsetzbaren Konstruktoren und `Dialog::poll`. |
|
||||
| `RtState::naechste_taste(true)`, `read_line`, direkte `bi_input_s`/`bi_sleep` | Kompatibilitäts-APIs für direkte Runtime-Nutzer; kein erreichbarer IDE-VM-Wartepfad. INKEY$ bleibt nicht blockierend. |
|
||||
| `Host::shell` | IDE: Anfrage/Ergebnis-Fortsetzung. `main` gibt das Terminal an den Vordergrundprozess ab; Erfolg, Fehler und Abbruch stellen es wieder her. CLI/sonstige synchrone Hosts dürfen den Kindprozess in diesem ausdrücklich synchronen Host-Einstieg abwarten. |
|
||||
| `TerminalHost::warten`, CLI `PipeHost::warten`/stdin | Terminal-/CLI-Ereignisschleifen, außerhalb des IDE-Hosts. `IdeHost::warten` würde im Test sofort fehlschlagen. |
|
||||
| OPEN/CLOSE, INPUT#/LINE INPUT#/INPUT$(…, Datei), GET/PUT, Verzeichnis-/Dateioperationen, ISAM, Projekt-/Include-I/O, Compiler, Print und Save | Synchrone Betriebssystem-/Rechenoperationen, keine auf Benutzertasten wartenden Schleifen. Ein laufender Systemaufruf ist nicht unterbrechbar. Die Grenze ist in design.md vorgesehen und in der Bedienungsdokumentation beschrieben. |
|
||||
|
||||
## Ausgeführte Prüfungen
|
||||
|
||||
- `cargo test --workspace`: **549 bestanden, 0 fehlgeschlagen, 2 absichtlich ignoriert**, 30 Testgruppen einschließlich Doc-Tests. Ignoriert bleiben der Golden-Ausgabe-Generator und der externe VBDOS-Formularlauf mit `TB_VBDOS_REPO`.
|
||||
- Nach letzter Korrektur der Sitzungsbereinigung: `cargo test -p tb-ide --test execution`: **12 bestanden**.
|
||||
- `cargo clippy -p tb-ide -p tb-vm -p tb-ui -p tb-cli --all-targets -- -D warnings`: bestanden.
|
||||
- `cargo fmt --all -- --check`, `git diff --check`: bestanden.
|
||||
- `cargo build -p tb-ide`; `python3 tests/support/ide-execution-pty.py`: drei PTY-Szenarien bestanden; inklusive Prüfung der Terminalattribute nach IDE-Ende.
|
||||
- `openspec validate --all --strict`: **23 bestanden**, keine Fehler.
|
||||
- `openspec instructions apply --change phase-5-04-ausfuehrung-und-output --json`: **16/16**, `all_done`.
|
||||
|
||||
Die während der Verifizierung gefundenen Differenzen wurden behoben und mit
|
||||
Regressionen abgesichert: Pipe-Ausgabe bei fehlgeschlagener Terminalinitialisierung,
|
||||
Forms-Ende/EOF und Budgetfortsetzung nach Hide, Dialog-Resize, identische RUN-Ziele
|
||||
mit anderer Schreibweise, Kommentaränderungen bei pausiertem Kompilat sowie
|
||||
veraltete Shell-Anfragen beim Reset, sofortige Eingabeumschaltung nach Ctrl+C und der unveränderte SHELLFN-Vertrag bei Signalende. Es verbleiben keine Befunde innerhalb des
|
||||
Change-Vertrags. Native EXE-/Library-Erzeugung bleibt gemäß PLAN.md in Phase 6.
|
||||
@@ -23,6 +23,6 @@ Keine bestehenden Anforderungen werden ersetzt; die neue IDE-Fähigkeit ergänzt
|
||||
|
||||
tb-vm/interp.rs, Debug-Quellorte und Frontend/Codegen für Ausdrücke und Direktfenster; tb-ide-Debugfenster. Keine zweite Auswertungsmaschine, kein Zeitreise-Debugger.
|
||||
|
||||
**Abhängigkeiten:** [phase-5-03-editor-und-inkrementelle-uebersetzung](../archive/2026-09-06-phase-5-03-editor-und-inkrementelle-uebersetzung/proposal.md), [phase-5-04-ausfuehrung-und-output](../phase-5-04-ausfuehrung-und-output/proposal.md).
|
||||
**Abhängigkeiten:** [phase-5-03-editor-und-inkrementelle-uebersetzung](../archive/2026-09-06-phase-5-03-editor-und-inkrementelle-uebersetzung/proposal.md), [phase-5-04-ausfuehrung-und-output](../archive/2026-09-06-phase-5-04-ausfuehrung-und-output/proposal.md).
|
||||
|
||||
**Gesamtplanung:** [Phase-5-Übersicht](../archive/2026-09-06-phase-5-01-projekt-und-dokumentmodell/phase-5-uebersicht.md). Die Nummern geben eine gültige Umsetzungsreihenfolge an; OpenSpec erzwingt Change-Abhängigkeiten nicht automatisch.
|
||||
|
||||
@@ -24,6 +24,6 @@ Keine bestehenden Anforderungen werden ersetzt; die neue IDE-Fähigkeit ergänzt
|
||||
|
||||
tb-ide-Integrationstests, vorhandene CLI-/VM-/Forms-Tests und Benchmarks, docs/ sowie PLAN.md. Featureimplementierung bleibt jeweils beim verantwortlichen Change; dieser Change schließt Integration und Nachweise.
|
||||
|
||||
**Abhängigkeiten:** [phase-5-01-projekt-und-dokumentmodell](../archive/2026-09-06-phase-5-01-projekt-und-dokumentmodell/proposal.md), [phase-5-02-ide-rahmen](../archive/2026-09-06-phase-5-02-ide-rahmen/proposal.md), [phase-5-03-editor-und-inkrementelle-uebersetzung](../archive/2026-09-06-phase-5-03-editor-und-inkrementelle-uebersetzung/proposal.md), [phase-5-04-ausfuehrung-und-output](../phase-5-04-ausfuehrung-und-output/proposal.md), [phase-5-05-formular-designer](../phase-5-05-formular-designer/proposal.md), [phase-5-06-debugger-und-direktfenster](../phase-5-06-debugger-und-direktfenster/proposal.md), [phase-5-07-hilfesystem](../phase-5-07-hilfesystem/proposal.md).
|
||||
**Abhängigkeiten:** [phase-5-01-projekt-und-dokumentmodell](../archive/2026-09-06-phase-5-01-projekt-und-dokumentmodell/proposal.md), [phase-5-02-ide-rahmen](../archive/2026-09-06-phase-5-02-ide-rahmen/proposal.md), [phase-5-03-editor-und-inkrementelle-uebersetzung](../archive/2026-09-06-phase-5-03-editor-und-inkrementelle-uebersetzung/proposal.md), [phase-5-04-ausfuehrung-und-output](../archive/2026-09-06-phase-5-04-ausfuehrung-und-output/proposal.md), [phase-5-05-formular-designer](../phase-5-05-formular-designer/proposal.md), [phase-5-06-debugger-und-direktfenster](../phase-5-06-debugger-und-direktfenster/proposal.md), [phase-5-07-hilfesystem](../phase-5-07-hilfesystem/proposal.md).
|
||||
|
||||
**Gesamtplanung:** [Phase-5-Übersicht](../archive/2026-09-06-phase-5-01-projekt-und-dokumentmodell/phase-5-uebersicht.md). Die Nummern geben eine gültige Umsetzungsreihenfolge an; OpenSpec erzwingt Change-Abhängigkeiten nicht automatisch.
|
||||
|
||||
Reference in New Issue
Block a user