[Allegro] Zu den C-Quellen von srch, import, index, qrix
Bernhard Eversberg
ev at biblio.tu-bs.de
Di Dez 20 12:35:41 CET 2011
Kurz vor der Freigabe hier schon mal die README-Datei:
http://www.allegro-c.de/os/README
Darin eine Übersicht der Dateien und Hinweise auf ihre Inhalte und
Funktionen. Das Repositorium und sein Inhalt lassen sich bestimmt noch
besser organisieren, damit haben wir noch zu wenig Erfahrung.
Es handelt sich um C, nicht C++. Zumindest die Quelltexte der Index-
Kernfunktionen sind aber identisch. Der Rest ist noch nicht in Klassen
organisiert, sondern in einer programmtechnisch älteren Struktur.
Wir sind nun fast am Ende der Phase 1: Schaffung einer neuen,
vereinheitlichten Codebasis für 32bit-Programme srch, import, index und
qrix, mit voller Kompatibilität zu den 16bit-Programmen.
Kompiliert und getestet unter Linux und Solaris (GNU) sind jetzt erst
mal srch und qrix, aber index und import noch nicht. Unter Windows (mit
Visual C++ 6.0) ist die Überarbeitung vollständig getestet, die
Programme liefern exakt dieselben Ergebnisse wie die alten. (Die
bisher ausgelieferten 16bit-Versionen waren noch mit dem Borland-C-
Compiler von 1988 entstanden.)
Die Überarbeitung der Dateien ist nicht ganz abgeschlossen: es muß noch
vieles zur Verbesserung der Strukturierung, Übersichtlichkeit und
Verständlichkeit geschehen. Einiges ist noch "intern verdrahtet", was
lieber flexibel, besser wartbar und einstellbar sein sollte, u.ä.m.
Zunächst einmal dürfte aber kaum mehr von Interesse sein als die recht
kleinen und genügend ausführlich kommentierten "Schnittstellenmodule",
namentlich
imports.c und srchs.c.
Darin sind auf einfache Weise Eingriffe und Erweiterungen
möglich, ohne in die anderen Module und deren Strukturen und Abläufe
hineinschauen zu müssen. Fragen, die dabei auftreten, klären wir dann
gerne ad-hoc und führen die nötigen Verbesserungen aus. Eingriffe in
diese Module kann man ohne die Sorge vornehmen, daß sie bei weiter fort-
schreitender Bearbeitung der Kernquellen nicht mehr funktionieren
könnten. So kann das Kernsystem denn doch als "gekapselt" betrachtet
werden und für den C-Anwender transparent.
Änderungsbedarf für das Kernverhalten dürfte es jedenfalls zunächst kaum
geben, ist doch dies alles seit Jahren in Betrieb und bewährt und muß
weiterhin mit a99, acon usw. kompatibel bleiben.
Anregungen für Verbesserungen werden entgegengenommen.
Noch was zum Hintergrund:
Man hätte wohl auch auf der Basis der Klassenbibliothek diese alten
Konsolprogramme nachbilden können. Z.B. ist der Inhalt von acore.c
in den Klassen KONFIG und RECORD aufgegangen, der Inhalt von exet*.c
in der Klasse EXET, und das sind die entscheidenden Bestandteile. Dazu
wäre dennoch viel mehr Zeit nötig gewesen, wie sich bei näherer
Betrachtung herausstellte. Und im selben Paket C und C++ zu verwenden
zeigte sich als zu problematisch, bes. im Hinblick auf Linux/UNIX.
Vordringlich geht es darum, die Codebasis so weit als möglich zukunfts-
sicher zu machen, im Sinne von kompilierbar für neue Umgebungen und
mit neuen Compilern.
B.Eversberg
Mehr Informationen über die Mailingliste Allegro