Da die man files immer noch nicht fertig sind, lasse ich mal diese Datei von Holger, mit geringen Žnderungen beiliegen. Kurzbeschreibung des SOZOBON-Paketes Bei SOZOBON-C handelt es sich um ein vollst„ndiges C-System be- stehend aus Compiler (hcc), Optimizer (top), Assembler (jas), Linker (ld) und compiler driver (cc). Zus„tzlich befinden sich make und folegende Programme im Lieferumfang, um die Entwicklung so einfach wie m”glich zu gestalten. Als Hilfsprogramme werden mitgeliefert: * ipc Hierbei handelt es sich um einen Precompiler fr Include- files, zu dem eine ausfhrliche Dokumentation beiliegt; * tagfile Tagfile erstellt eine Tabelle mit allen zu einem Projekt ge- h”rigen Funktionen inklusive Prototyp. Auch hierzu liegt eine Dokumentation bei; * debug Dieses Programm versucht, die Funktion in einem abgestrzten Programm ausfindig zu machen, in der der Fehler auftrat; Dokumentation liegt bei; * clint Bie clint handelt es sich um ein Programm zum Auffinden von logischen Fehlern in C-Quelltexten. Es k”nnen aužerdem diverse Statistiken, Funktionen- und Variablenlisten etc. erstellt werden. Eine ausfhrliche Dokumentation liegt bei. SOZOBON-C Compiler ------------------ Der hcc ist eigentlich ein traditioneller K&R Compiler, jedoch wurden mittlerweile einige ANSI- und C++ Features implementiert, so daž der hcc in der Lage ist, die meisten "modernen" Quelltexte zu bersetzen, ohne das hierfr grože Žnderungen am Text vorge- nommen werden mžten. Folgende Optionen beeinflussen sein Verhalten: -V: Info zeigen Der Compiler gibt Information ber Version und Autoren aus, bevor er mit seiner Arbeit beginnt; -v verbose mode (zeigt z.B. welches Includefile gerade gelesen wird) -S: String merging aus Defaultm„žig fažt der Compiler mehrere identische String- konstanten automatisch zu einer zusammen; falls dies aus irgendwelchen Grnden nicht erwnscht sein sollte, so kann es durch Angabe von -S unterbunden werden; -N: geschachtelte Kommentare ein Sollten geschachtelte Kommentare ben”tigt werden, so k”nnen sie mit dieser Option erm”glicht werden; da diese Form von Kommentaren fehlertr„chtig und im K&R Standard nicht vorgesehen ist, wird sie ohne diese Option vom Compiler mit einer Fehlermeldung bedacht; -P: Profiling ein Mit dieser Option kann eine Statistik ber die Aus- fhrungszeiten aller Funktionen eines Programmes erstellt werden; Siehe dazu hcc.chg -Dsymbol: wie '#define' Mit dieser Option k”nnen Symbole definiert werden, als ob sie in der ersten bersetzten Zeile des Quelltextes stehen wrden; -Usymbol: wie '#undef' Mit dieser Option k”nnen vordefinierte Symbole (siehe hcc.chg und sozobon.doc) gel”scht werden; -T: keine 'trap' Generierung Normalerweise generiert der Compiler 'trap' Befehle aus im Quelltext gefundenen GEMDOS, BIOS und XBIOS Aufrufen; falls die von SOZOBON ursprnglich verwendete Vorgehens- weise eines Funktionsaufrufes bevorzugt wird, so kann dies mit der Option -T eingestellt werden, die erzeugten Programme werden dann jedoch l„nger und langsamer... Siehe auch hcc.chg -Q: schnell vor kurz Weist den Compiler an, l„ngeren Code zu erzeugen, wenn das erzeugte Programm dadurch schneller wird; Siehe auch hcc.chg -Mn: n = max. Anzahl Meldungen Hiermit kann die maximale Anzahl von Fehlermeldungen und Warnungen festgelegt werden, die der Compiler ausgibt, bevor er den šbersetzungsvorgang abbricht und terminert; Siehe auch hcc.chg -Iincpath: Include-Ordner angeben Mit dieser Option l„žt sich angeben, in welchen Ordnern der Compiler nach Includedateien suchen soll; Siehe auch sozobon.doc -L: int hat 32 Bits Normalerweise verwendet der Compiler 16 Bit lange Werte fr den Datentyp int; durch diese Option ist es jedoch auch m”glich, 32 Bit int's zu verwenden, z.B. um Quell- texte zu portieren, welche von UNIX- oder AMIGA-Systemen kommen; solange es fr SOZOBON jedoch keine Bibliotheken fr lange int't gibt, raten die Autoren von der Verwen- dung dieser Option ab; Siehe auch hcc.chg -Xnxxx: Code fr Online-Debugger erzeugen; Fr Einzelheiten siehe Datei hcc.chg SOZOBON-C Optimizer ------------------- Da der Compiler einen relativ einfachen Codeerzeuger beinhaltet, welcher dafr sehr sicher und schnell l„uft, wurde ein Assembler- Quelltext-Optimizer erforderlich, damit die erzeugten Programme kurz werden und extrem schnell arbeiten. Der Optimizer liest dazu die vom Compiler erzeugte Assemblerdatei ein und versucht die darin enthaltenen Instruktionen so umzuwandeln, daž die Semantik erhalten bleibt, der Code jedoch schneller abl„uft und krzer ist. Mit folgenden Optionen kann das Verhalten des Optimizers beein- flusst werden: -V: Der Optimizer zeigt Information ber Version und Autoren, -v: es wird jeweils der Name der Funktion ausgegeben, welche gerade optimiert wird; -q: Der Optimizer erzeugt im Zweifelsfall schnelleren Code, auch wenn das erzeugte Programm dadurch l„nger wird; -j: BlockOpt. aus -r: Registerizing aus -p: PeepholeChanges aus -b: branch reversals aus -l: loop rotations aus -g: stack fixups aus -f: Funktionen umsortieren aus -a: PC-relative Aufrufe aus -u: keine link/unlk l”schen -c: RegisterParameter aus -m: Register-Merging aus Diese Optionen genauer zu erl„utern w„re zu technischer Natur, wichtig ist eigentlich nur zu wissen, daž normaler- weise keiner dieser Schalter ben”tigt wird, denn sie sind prim„r fr Debugzwecke gedacht. Fr weitere Einzelheiten siehe Datei top.chg SOZOBON-C Assembler ------------------- Der Assembler hat prim„r die Aufgabe, aus einer vom Compiler oder vom Optimizer erzeugten Datei einen Objektcode zu erzeugen, welcher vom Linker zu einem Lauff„higen Programm verarbeitet werden kann. Natrlich kann er auch selbstgeschriebene Assembler- texte bersetzen, wofr er jedoch eigentlich ncht konstruiert ist, weshalb er solche Dinge wie Macros etc. nicht bietet. Das Verhalten des Assemblers kann mit folgenden Optionen modifi- ziert werden: -V: Info zeigen jas zeigt Information zu Version und Autoren, bevor er mit seiner Arbeit beginnt; -L: auch statische Identifier in die Symboltabelle aufnehmen Siehe dazu auch jas.chg -N: keine short branches erzeugen Siehe dazu auch jas.chg -o OUTFILE : Ausgabedatei festlegen Normalerweise erzeugt der Assembler als Ausgabe eine Datei im gleichen Verzeichnis mit dem Namen der Eingabe und der Endung '.O'; soll die Datei anders heižen oder in einem anderen Ver- zeichnis (z.B. auf einer Ramdisk) abgelegt werden, so kann dies durch -O angegeben werden; -e ERRFILE: Fehlermeldungen --> Screen & ERRFILE Normalerweise werden alle Fehlermeldungen des Assemblers auf dem Bildschirm ausgegeben; (wenn die Eingabedatei vom Compiler oder Optimizer erzeugt wurde, enth„lt sie natrlich keine Fehler); durch die Option -E k”nnen alle Meldungen zu- s„tzlich in eine Datei geschrieben werden; Fr weitere Einzelheiten siehe Datei jas.chg SOZOBON-C Linker ---------------- Der Linker hat die Aufgabe, aus Objektdateien und Bibliotheken ein Lauff„higes Programm zu generieren. Mit folgenden Optionen kann sein Verhalten variiert werden: -V: Info zeigen ld zeigt Information zu Version und Autoren; -v: gelinkte Objekte zeigen ld zeigt die Namen aller Objekte, die zum Programm dazuge- linkt werden; -p: Lib's mehrfach durchsuchen ld liest jede Bibliothek solange immer wieder von vorne ein, bis keine Objekte mehr aus ihr dazugelinkt werden mssen; diese Option ist fr alle beiliegenden Bibliotheken nicht notwendig, da diese so sortiert sind, daž alle n”tigen Objekte beim ersten Einlesen gefunden werden; -m: Load map anzeigen Bl”dsinn, war bereits im Original enthalten; -f LINKFILE: Linkfile festlegen Falls die Anzahl der Objekte zu grož wird, um alle in der Kommandozeile unterbringen zu k”nnen, besteht die M”glich- keit, alle ben”tigten Dateinamen in eine Datei (ein sog. Linkfile) zu schreiben, woraus der ld sie dann wieder ein- liest; aufgrund der in der Praxis v”llig unzureichenden Maxi- mall„nge von 124 Zeichen in einer Kommandozeile ist diese Option sehr wichtig; -t: Symboltab. erzeugen der ld h„ngt eine Tabelle mit Namen und Information ber alle im benutzen Funktionen und globalen Variablen an das erzeugte Programm an; diese Symboltabellen werden von Debuggern benutzt; -b: wenig Hauptspeicher benutzen der ld beh„lt nur wenige Daten im Hauptspeicher und liest den Rest erst bei Bedarf noch einmal ein; -o OUTFILE: Ausgabedatei festlegen -u SYMBOL: Linken von erzwingen ("__printf" fr 'printf(FLOAT)') ("__scanf" fr 'scanf(FLOAT)') Fr mehr Information siehe Datei ld.chg. *eof*