Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03409.jsonl.gz/595

Die Schnittstelle zu Arts7.2 erlaubt den Zugriff auf einige Funktionen des Laufzeitsystems.
Das Modul Arts hat das Erscheinungsbild eines normalen Bibliotheksmoduls, bestehend aus einer Symbol- und einer Objektdatei. Die Aufgaben von Arts sind jedoch weitaus vielfältiger und spezieller. Arts ist das sogenannte Laufzeitsystem, das die Basis jedes Modula-2 Programms bildet. Es wird von jedem Modul implizit importiert; die Symboldatei muss daher für jedem Compilationsvorgang zugreifbar sein.
Die Variable oldCurrentDir enthält das aktuelle Verzeichnis des Prozesses
beim Programmstart (
thisTask^.currentDir). Bei Beendigung des Programmes
wird dieser Wert wieder als aktuelles Verzeichnis angemeldet. Falls
ein Programm das aktuelle Verzeichnis permanent wechseln möchte,
wie beispielsweise das CLI-Kommando ,,CD``, muss das neue Verzeichnis in dieser
Variablen vermerkt werden. Beim Start von der Workbench steht hier
immer der Wert NIL -- was man auch nicht ändern darf --,
die Prozedur
Startup wechselt in diesem Fall jedoch in das Verzeichnis,
in dem sich das Programm befindet.
Für den Anwender sind nur die letzten sechs Prozeduren allgemein verwendbar.
Die Prozedur Assert überprüft, ob eine Bedingung erfüllt ist, die für den korrekten Weiterlauf des Programmes unbedingt erforderlich ist. Ist diese Bedingung nicht erfüllt, erscheint ein Requester mit der angegebenen Meldung, und nach Beantwortung durch den Anwender wird das Programm abgebrochen.
BreakPoint erzeugt einen Requester und lässt dem Anwender die Wahl zwischen dem Abbruch oder der Fortführung des Programms. In erster Linie findet sie ihre Anwendung im Zusammenhang mit dem Post-Mortem-Debugger, wo sich dessen Aufrufmöglichkeit erzwingen lässt.
Error zeigt in einem Requester die beiden Texte header und body an und erzwingt einen Programm-Abbruch. Enthält der Parameter body den Wert NIL, wird nur eine Zeile Text angezeigt.
Die Darstellung eines Requesters kann mittels der Prozedur Requester mit den angegebenen Texten header und body erreicht werden. Die Felder pos und neg zeigen auf die Texte, die in die Gadgets geschrieben werden. Der Parameter pos kann auch NIL sein; dann enthält der Requester nur ein Gadget. Der Rückgabewert von Requester gibt an, welches Gadget gewählt wurde. Wurde das Gadget mit dem Text von pos ausgewählt, ist der Resultatswert TRUE, anderenfalls FALSE.
Die Prozedur Terminate beendet einfach das Programm. Der in diesem Moment in der Variablen returnVal enthaltene Wert dient als Rückgabewert an das Betriebssystem. Ähnlich arbeitet Exit. Hier kann allerdings der Rückgabewert explizit angegeben werden.