C++ ist mittlerweile zum Standard auf allen gängigen Rechnerplattformen geworden. Pure-C ist sicherlich sehr gut, aber leider kein C++.
In dieser Situation bleibt nichts anderes übrig, als sich mit GNU-C++ zu befassen. Um insbesondere meine MIDI-Notationssoftware MusicEdit auf dem aktuellen Stand der Software-Entwicklung zu halten, habe ich sie an GNU-C++ angepasst. Die damit gewonnen Erfahrungen möchte ich gerne weitergeben, um den Ein- oder Umstieg zu erleichtern.
Offensichtlich ist die aktuelle Version 2.7.2 von GNU-C++ nicht mehr so gut an das TOS-Betriebssystem der ATARIs und dazu kompatiblen Computer angepaßt worden wie frühere Versionen. Man merkt die UNIX-Herkunft deutlich. So sollte laut Begleittext eigentlich das MINIX-Dateisystem installiert werden. Nun ist es mir aber gelungen, eine Installation ohne MINIX-Dateisystem, ausschließlich mit dem Original-TOS, zumindest des Falcon, zu realisieren.
Wegen der erheblich von TOS verschiedenen Dateibehandlung von UNIX und der dort möglichen Verwendung von Alias-Verweisen ist es erforderlich, unter TOS entsprechend benannte Kopien zu verwenden.
Änderungen für C:
Datei GNU.OLB in LIBGNU.OLB und LIBC.A kopieren.
Datei GNU16.OLB in LIBGNU16.OLB kopieren.
Datei GEM.OLB in LIBGEM.OLB kopieren.
Datei GEM16.OLB in LIBGEM16.OLB kopieren.
Datei PML.OLB in LIBPML.OLB kopieren.
Datei PML16.OLB in LIBPML16.OLB kopieren.
Änderungen für C++:
Ordnerinhalt INC++ in Ordner INCLUDE kopieren.
Datei G++.OLB in LIBG++.OLB kopieren.
Aus Platzgründen können die Originale gelöscht werden. Wenn möglich, sollten sie jedoch erhalten bleiben, um den Zusammenhang besser zu erkennen. Fehlende GEM-Bibliotheken, C++lnclude-Dateien und C++Bibliotheken sind von einer früheren Version zu ergänzen. Die gegenwärtig von Software-ServiceSeidel erhältliche CD enthält sie leider nicht, obwohl genug Platz darauf vorhanden wäre. In Kürze soll jedoch eine diesbezüglich vervollständigte Version verfügbar sein.
Um komfortabel arbeiten zu können, benötigt man eine GEM-konforme Shell. Hier empfehle ich die GNUShell von Roland Schäuble. Ihm verdanke ich übrigens den Hinweis, der mich in die Lage versetzte, die von GNU-C gelieferten Fehlermeldungen zu verstehen und daraus obige, rein auf TOS basierende Installation zu erarbeiten. Seine GNUShell, die ich schon seit Jahren erfolgreich verwende, ermöglicht es, alle Pfade zu den einzelnen GNU-Komponenten leicht und übersichtlich in einem Dialog einzugeben und anschließend zu sichern, so dass die Shell auf Dauer richtig eingestellt ist. Ferner beinhaltet GNUShell eine Projektverwaltung, die sich stark an jener von Pure-C orientiert, wodurch der Umstieg für Entwickler, die Pure-C schon kennen, sehr erleichtert wird.
Auch ein guter GEM-konformer Editor ist vonnöten. Hier gibt es allerdings viele gut geeignete. Wichtig ist vor allem, dass er von der Shell aus aufge- rufen werden kann und ihm dabei gleich die zu bearbeitenden Dateien übergeben werden können. Wichtig ist ferner, dass Dateien mit der Endung *.LOG automatisch mitgeladen werden. Sie werden vom GNUCompiler zu jeder fehlerhaften C/C++Datei angelegt mit Informationen zu deren Fehlern.
Mit den 4 MB RAM, die ein Falcon meist standardmäßig besitzt, kann man z. B. problemlos alle Beispiele meiner C++Vorlesung an der FHMünchen compilieren, die übrigens alle auch auf PC und Mac laufen. Selbst mein GEMTool mit ca. 150 KB Quellcode geht so noch durch. Darüber wird es allerdings eng. Bei meinem MusicEdit mit seinen 710 KB steigt der GNU- Compiler bereits aus. Mit einer Magnum-Fast-RAM-Karte mit zusätzlichen 4 MB geht es dann immerhin, wenn auch ohne Optimierung.- Nach Aufrüstung auf 8 MB FastRAM und Verkleinerung einiger kritischer Quelltextdateien geht es dann selbst in der höchsten Optimierungsstufe. Kleine Quelltextmodule sind übrigens mit Rücksicht auf die erforderliche Rechenleistung von GNU-C++ sehr zu empfehlen.
Meine Vorlesungsbeispiele, die natürlich bewußt kurz gehalten sind, um nur einen bestimmten Sachver halt möglichst deutlich werden zu lassen, erfordern meist Compilationszeiten von unter einer Minute. Kaum jemand wird zu deren Verringerung bereit sein, mehrere tausend Mark für einen neuen Rechner auszugeben. Bei großen Programmen jedoch, wie etwa meinem Musicedit mit seinen 710 KB Quelicode, dauert eine vollständige Compilation 45 min. Da denkt man natürlich an die hohe Rechenleistung eines HADES.
Laut Auskunft einer der Vertriebsfirmen soll GNU-C++ laufen. Hier wäre meines Erachtens ein ausgiebiger Testbericht angezeigt, um hier Klarheit in allen Details zu schaffen. Daran sollten die beteiligten Firmen ein exi- stenzielles Interesse haben, denn auf einem neuen Computer ist ein C++Compiler heutzutage ein absolutes Muß.
Die Version 2.5.8 von GNU-C++ läuft tadellos damit, leider aber nicht die aktuelle Version 2.7.2. Der GNU-Compiler bricht sofort mit einer Fehlermeldung ab. Wenigstens laufen die mit GNU-C++ compilierten Programme unter MagiC auch im Multitasking zusammen mit anderen. Aber es ist gewiß kein guter Zustand, dass man zum Compilieren MagiC weglassen muß. Ich wünsche mir sehr, dass die Herstellerfirma von MagiC sich der Problematik annimmt. Denn MagiC ist so gut, dass es neben dem bewährten Pure-C noch ein mehr zukunftsorientiertes GNU-C++ wirklich verdient hätte.
In der Hoffnung, dass mit dem neuen Multitasking-Betriebssystem N.AES alles besser funktioniert, habe ich es installiert. Es zeigt eine hübsche graphische Oberfläche bei akzeptabler Geschwindigkeit. Aber nach Anmeldung des dringend erforderlichen FastRAMs lässt sich der Desktop THING leider nicht mehr laden. Also auch hier mußte unverrichteter Dinge abgebrochen werden.
Immerhin läuft GNU-C++ entweder mit der von mir erarbeiteten, ausschließlich auf TOS basierenden Installation oder jener, auf der GNU-CD beschriebenen, mit MINIX-Dateisystem. Also fürs erste ist alles in bester Ordnung. Darüber hinaus hoffe ich, dass die angesprochenen Punkte aufgegriffen werden und dadurch die Verbreitung von GNU-C++ auf ATARI-Computern und dazu kompatiblen weiter gefördert wird. Es lohnt sich bestimmt. Denn GNU-C++ ist nicht nur ein preisgünstiges Public-DomainC++, das an Hochschulen und Universitäten der ganzen Welt kostenlos weiterentwickelt wird. Sondern es ist eben deshalb ein wirklicher Weltstandard von exzellenter Qualität, der auf allen erdenklichen Computer- Plattformen verfügbar ist.
Sollten Sie ebenfalls interessante Erfahrungen mit der Verwendung von GNU C++ gemacht haben, dann setzen Sie sich doch mit uns in Verbindung. Die Redaktion hat großes Interesse daran, die letzte, gepflegte C- Programmiersprache so gut wie möglich zu unterstützen.