[Allegro] Design von _start.flx

Thomas Berger ThB at Gymel.com
Fre Apr 18 10:34:57 CEST 2008


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Lieber Herr Eversberg, liebe Liste,

_start.flx prosperiert und waechst.

Zunaechst enthielt er nur das Laden eines Datensatzes (weil fruehere
Versionen(?) von a99 sich etwas erratisch verhielten, wenn noch
kein einziger Satz geladen war).

Dann kamen Belegungen fuer die Flip-Buttons hinzu, die ja eher
datenbankspezifisch sind.

Dann kam ein fuer alle Datenbanken nuetzlicher Test auf die
Verfuegbarkeit der allegro-Schriften hinzu.

Neuerdings ein Test auf "Schreibrecht im Datenverzeichnis", der
allgemein interessant waere, so er denn funktionierte (es wird sehr
kompliziert mit "Trick 17" getestet, ob die Zahl hinter dem ersten -
ggfls. auskommentierten !!! - "access=" in der .ini-Datei mit der
aktuellen Setzung uebereinstimmt. Gemeint hingegen und viel einfacher
zu implementieren ist der Test, ob es einerseits a99 ist und
andererseits der tatsaechliche Access-Wert 0 ist).

Ganz neu und extrem wichtig ist der Test auf Kohaerenz der
Offline-Datei, also ob die Satznummern der dort nachgewiesenen Saetze
noch Bezug zur aktuellen Datenbank haben. Die Logik hierfuer ist
extrem komplex, sie ist ausgelagert in offcheck.flx. Am Ende von
offcheck.flx dann versteckt der Hinweis, man solle hier den
Namen des naechsten Flex einprogrammieren, wenn man in der Startsequenz
weitere Initialisierungen benoetigt, etwa a-init.

Wir haben also wieder einmal die Situation, dass komplexe Standardflexe
(nicht zuletzt deswegen "Standard", weil a) mit inst-all ausgeliefert
und b) in allegro/flex zentral abgelegt) einerseits durch
Aktualisierungen tangiert werden (muessen) und andererseits lokale
Modifikationen erfordern.

Eigentliche Ursache des Problems ist m.E., dass die Flex-Sprache nur
"exec" kennt und keinen Mechanismus, vom Aufruf einer anderen
Felxdatei zurueckzukehren. Wie dieser Tage wieder bekraeftigt worden
ist, ist es aber wohl fruchtlos, dieses essentielle Feature fuer
die Flex-Sprache einzufordern.

Eine Abhilfe koennte sein, speziell fuer _start.flx, dass nach
Abarbeitung von _start.flx (gemaess der ueblichen Reihenfolge)
automatisch das Datenverzeichnis nach Dateien _startnnnnn.flx
(nnnn beliebige Folge von Ziffern) durchsucht wird und diese dann
entsprechend der Dateinamensortierung nacheinander aufgerufen
wuerden. Ich haette dann

_start01.flx:
exec X offcheck.flx

_start02.flx:
exec (flex-Datei zum Schrifttest)

...

_start90.flx
exec X a-init.flx

Nachteil dieser Loesung (die vermutlich sehr einfach zu implementieren
waere) ist allerdings, dass gewisse dieser "_start-Plugins" so wichtig
sind, dass man sich eigentlich nicht darauf verlassen moechte, dass
ein Anwender sie in seinem Datenbankverzeichnis erwaehnt: Es sollte
also irgendwelche Standardsetzungen geben, die in gewissen Situationen
(ueberhaupt kein _start*.flx im Datenverzeichnis? Genau diese Datei
nicht im Datenverzeichnis?)  aktiv werden.

Noch nicht nachgedacht habe ich darueber, ob dieser krude
Modularisierungs-Mechanismus auch fuer andere _system-Flexe und
on-Flexe interessante Perspektiven eroeffnen koennte.

viele Gruesse
Thomas Berger

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3-nr1 (Windows XP)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iQCVAwUBSAhdMWITJZieluOzAQJKYgP/Wv8RywcCu9cInPoALFqvld4U89w83a3/
FMT3z1TpKbT03HJBLvZaFyngnaSymxUn00bG/hku50FQVD+cMPO/EIBJbysvyWtR
GmSvJlXwQ57E6z8CccDWngN/toGAqQLU04jQ6JNA5RlSKTF7E+0zUDZ3DRyEJ0ca
cUkPUeS4EAc=
=rGKg
-----END PGP SIGNATURE-----