Files
TerminalBasic/openspec/changes/ereigniszustellung-und-hostgrenzen/specs/vm-ausfuehrung/spec.md

1.4 KiB

MODIFIED Requirements

Requirement: Ereigniszustellung an Anweisungsgrenzen

Die VM SHALL an Anweisungsgrenzen prüfen, ob ein Ereignis zuzustellen ist, und in diesem Fall das GOSUB-Ziel des zugehörigen Traps ausführen. Der unterbrochene Zustand — Aufrufkette, Schleifen, Locals, GOSUB-Stapel und Fehlerzustand — MUST dabei erhalten bleiben; mit RETURN SHALL die Ausführung an der unterbrochenen Stelle fortfahren. Die Prüfung MUST NOT pro Opcode erfolgen; solange kein Trap definiert ist, MUST sie auf einen einzelnen Test hinauslaufen und MUST NOT die Uhr lesen.

Ohne klassische Traps, aktive Forms-Timer oder zeitabhängige Mausauswertung SHALL auch die Forms-Integration keine Hostzeit abfragen.

Scenario: Trap aus einer Prozedur heraus

  • WHEN ein Ereignis zugestellt wird, während eine SUB läuft, und das Trap-Ziel im Modulrumpf liegt
  • THEN läuft der Handler und nach RETURN setzt die SUB an der unterbrochenen Anweisung fort

Scenario: Ohne aktiven Trap wird die Uhr nicht gelesen

  • WHEN ein Programm ohne jede ON …-Trap-Definition ausgeführt wird
  • THEN fragt die Ausführung an keiner Anweisungsgrenze die Zeit ab, und der Durchsatz bleibt im Rahmen der Messgenauigkeit unverändert

Scenario: Einfaches Programm liest keine Ereigniszeit

  • WHEN ein Programm nur Zuweisungen und END ausführt und ein Testhost Zeitabfragen zählt
  • THEN ist der Zähler am Ende 0