Alles hat seine Grenzen, so auch der APL2 Object Editor.
Denn sehr große Funktionen können schon mal Probleme beim Editieren bereiten. Ich meine damit nicht, dass man sich schlecht in ihnen orientieren kann, lange nach zu ändernden Stellen suchen und sehr viel vor und zurück blättern muss. Die Probleme können rein technischer Art sein:
Es fängt schon damit an, dass Doppelklick auf den Namen der Funktion diese nicht in den APL2 Object Editor lädt. Immerhin verrät der Session Manager in der Statusleiste, was ihn stört: "System Limit - Interface Capacitiy". Alles klar?
Es kann auch passieren, dass, nachdem die Funktion klaglos in der Object Editor geladen wurde, vorgenommene Änderungen an der Funktion nicht gespeichert werden können. Auch der Editor versucht uns in der Statusleiste zu erklären, was ihm fehlt: "System Error - Shared Memory Shortage". Kling gefährlich, ist es aber nicht.
Bevor es allzu abstrakt wird, hier ein Beispiel aus meinem wirklichen Leben:
Christiane bekam vor nun mehr als zwei Jahren eine richtig große Funktion zur Bearbeitung: mehr als 1.900 Zeilen und über 6000 Zeichen breit, viele Kommentarzeilen, bis auf die Kopfzeile kurze Zeilen und gut gegliedert. Trotz der Länge der Funktion war sie leicht zu lesen und gut zu verstehen. Auch die Namensgebung der Variablen war sprechend gewählt. Da natürlich alle Variablen lokalisiert waren, erklärt sich auch die Breite dieser Funktion.
Alles in allem war die Character Representation fast 13 MB groß, obwohl die Funktion weniger als 100.000 relevante Zeichen enthielt.
Eben diese Funktion zickte wie oben beschrieben rum.
Genau genommen geschah folgendes: Die Funktion konnte in den Editor geladen werden, einige Zeilen und Lokalisierungen wurden hinzugefügt, und danach konnte sie nicht mehr gespeichert werden. Ärgerlich, alle Änderungen für die Katz.
Aber immerhin half die Fehlermeldung "Shared Memory Shortage" bei der Diagnose: Die Werte für das "Shared Memory" sind zu klein. Hier nur zur Erinnerung: Der Defaultwert für "Maximum amount of shared memory for any one shared variable" steht auf 12 MB. Da wir bis dahin keine Änderungen an diesen Einstellungen vorgenommen hatten, war dieser Default aktiv.
Aber kann man die Größe des APL2 Shared Memory beeinflussen, und wenn ja,an welcher Stelle?
Soweit ich mich erinnere war das wieder so ein Fall, bei dem ich nicht den User's Guide sondern David und Nancy konsultierte. Anstatt mir ein RYFM entgegen zuwerfen gaben sie uns die Stelle: Die SVP Parameterdatei aplsvp.prm. Wildes Hochsetzen der Werte für MAXSM und MAXSV brachte den ersehnten Erfolg: Die übergroße Funktion konnte samt Änderungen gespeichert werden.
Der APL2 Object Editor ist ein eigenständiges Programm und kommuniziert mit dem Session Manager über das Shared Variable Interface. Doppelklick auf einen Funktionsnamen bedeutet, dass die Funktion über eine Shared Variable (AP120_EDIT) an den Editor ge
Aufgenommen: Jun 07, 00:16