Topic : Dokumentation zum Library-Maker Author : Karsten Lüdersen @ HH Version : MKlib.hyp 2.49 Subject : Programmieren/Basic Nodes : 162 Index Size : 5558 HCP-Version : 4 Compiled on : Atari @charset : atarist @lang : @default : @help : Hilfe @options : +g -i +y +z -t4 -d24 @width : 75 View Ref-FileNeues in Version 2.5 Library-Maker Die Version 2.5 gibt es noch gar nicht. Der Hypertext ist "auf Vorrat" geschrieben. Die aktuelle Versionsnummer ist 2.49. Neues in der Version 2.49 Weitgehend handelt es sich um Bugfixes: - eingeklappte Bereiche werden jetzt auch dann korrekt übersetzt, wenn sie einzeilige IFs oder Schleifen enthalten. Ich hatte vorher nicht berücksichtigt, daß für eingeklappte Bereiche in der BAS-Datei eine eigene Zeilennummern-Tabelle angelegt wird. - Jetzt sollten auch einzeilige Funktionen endlich wieder richtig funktionieren. - Beim Befehl MAC_OS wurde der nachfolgende Code teilweise falsch übersetzt. Ein Flüchtigkeitsfehler ... ;-) - Die Environmentvariable $HOME wird jetzt auch dann richtig ausgewertet, wenn der Variableninhalt nicht mit einem Backslash endet (KLiB). - Beim Zentrieren von Dialogen wird jetzt die Titelzeile berücksichtigt (KLiB). Dadurch ist der Einstellungsdialog in ST HOCH nicht mehr ganz so extrem unter die Menüzeile gequetscht. Eine noch kleinere Auflösung ist trotzdem nicht ratsam. - Beim Laden der INF-Datei werden die Fensterpositionen jetzt genauer daraufhin überprüft, ob von dem Fenster überhaupt was auf dem Bildschirm erscheint (z.B. nach Auflösungswechsel). - Optische Korrekturen an der Ressource-Datei. - Testweise wertet der Library-Maker jetzt die Befehle COMPILER "LIB_MAKER OFF" und COMPILER "LIB_MAKER ON" aus. ACHTUNG: Ich habe diese neue Option bisher noch nicht getestet! - Die Version 2.49 des Library-Makers wurde mit der Basic-Version 5.17 compiliert. Der in vorherigen Versionen des Basics vorhandene Fehler beim Einklinken in die XBRA-Verkettung sollte hier nicht mehr vorhanden sein. Von daher sollte es nicht mehr zu Systemabstürzen kommen, wenn zwei mit Omikron-Basic kompilierte Programme nacheinander gestartet und in der selben Reihenfolge wieder beendet werden. Falls doch: bitte den fälligen Bugreport an Uwe Berkhan (den Programmierer des Basic) schicken. - Die Dialogfenster, bei denen es keinen Unterschied zwischen "OK" und "Abbruch" gibt (die Pfadbox und der Copyright-Dialog) sind jetzt mit einem Closer ausgerüstet. - Falls ohne Multitasking der ST-Guide oder das Basic als Programm nachgestartet wird, so werden nach dem Beenden alle Fenster neu gezeichnet. - Es sind keine doppelten Fenster-Alerts mehr möglich. - Falls die Meldung AV_PATH_UPDATE nach dem Speichern einer Datei nicht erfolgreich abgesetzt werden kann erscheint keine Fehlermeldung mehr. - Korrektur des Cursorverhaltens bei leerem Editfeld (KLiB). - Hoffentlich eine Beschleunigung der Oberfläche (KLiB). Ich kann das schlecht testen, weil sie auf meinem TT ausreichend schnell ist ... Neues in Version 2.48 - Nochmalige Korrektur der Offset-Berechnung bei einzeiligen IFs; - Korrektur beim Aufruf des ST-Guide (in Version 2.47 hatte sich da ein Fehler eingeschlichen); - Korrektur der Objc_Draw-Routine in der KLiB: die 3D-Darstellung sollte jetzt auch beim Anklicken von Objekten wirklich nach 3D aussehen, (ich hatte das Clipping für das Neuzeichnen zu eng gesetzt); - Kleine interne (Geschwindigkeits-)Optimierungen, die wahrscheinlich niemand bemerken wird. Neues in Version 2.47 (nicht öffentlich) - Der Fortschrittsbalken bei der Library-Erzeugung flackert jetzt nicht mehr, weil nicht mehr das gesamte Fenster sondern nur noch die betroffenen Objekte neu gezeichnet werden. - Der Redraw-Fehler bei Veränderungen in hintenliegenden Fenstern ist entfernt (betraf nur das Pfadfenster); - Korrektur der Versionsprüfung beim Laden der INF-Datei; - Korrektur beim Setzen der Fensterpositionen nach dem Laden der INF-Datei; - Kein Absturz mehr bei "Library erzeugen" ohne ausgewählte BAS-Datei und Klicken auf Abbruch in der Dateiauswahlbox; Neues in Version 2.46 (nicht öffentlich) Die Version 2.46 soll die Bugs ausbügeln, die ich in die Version 2.45 eingebaut habe. Im Einzelnen hat sich seit der Version 2.45 folgendes getan: - Der Befehl MAC_OS wird unterstützt. Dadurch können Libraries erstellt werden, die in die Power-Mac-Native-Version des Omikron.Basic eingebunden werden und Betriebssystemaufrufe des Mac-OS enthalten. - Die Berechnung der Offsets bei einzeiligen IFs wurde vollständig überarbeitet. - Grundsätzlich werden jetzt alle Offsets bei allen IFs und bei allen Schleifen immer neu berechnet. Bisher ging der Library-Maker davon aus, daß der Offset korrekt ist, wenn er ungleich 0 ist. Das war ein Fehler, weil der Basic-Editor 5.xx die Offsets nicht automatisch korrigiert. Nicht lauffähige Libraries sollten damit der Vergangenheit angehören. Dieser Fehler war für die z.T nicht lauffähigen Libraries verantwortlich. Ich hoffe, daß ich jetzt alle Fehler korrigiert habe und der Library-Maker nur noch korrekte Libraries erzeugt. - Die Zeilennummern werden nur noch für das Display verwendet. Für die Erstellung der Libraries sind sie völlig ohne Bedeutung. Dadurch ist es nicht mehr möglich, daß der LM durch merkwürdige Zeilennummerierungen aus dem Tritt gebracht wird. In Einzelfällen konnte das zu Abstürzen führen (manche Leute haben aber auch merkwürdige Vorstellungen von Nummerierungen ;-)). - Auch einzeilige Funktionen und leere Prozeduren sollten jetzt korrekt übersetzt werden. Ich habe es zwar nicht überprüft, aber da ich an diesem Teil des Codes vorher nie etwas verändert hatte, dürften einzeilige Funktionen bisher noch nie richtig funktioniert haben. - Die Mausabfrage in den Dialogen wurde korrigiert (hoffentlich keine "tote" linke Maustaste mehr). - Button-Auswertung korrigiert. - Korrektur beim Redraw hintenliegender Fenster. - Die LIBRARY CODE-Zeile enthält jetzt immer die Versionsnummer des Library-Maker, mit dem die Library erstellt wurde (einfachere Fehlersuche). - Der Lade- und Speichervorgang der SYS- und INF-Datei wurde beschleunigt. - Korrektur beim Aufruf des ST-Guide bzw. des Basic falls kein AV-Start möglich ist. - Anpassung der RSC-Datei an Geneva (der Hauptdialog sah unter Geneva einfach grauenhaft aus). - Die Texte der Buttons, die durch die Undo- bzw. Help-Taste ausgelöst werden, können jetzt in der SYS-Datei verändert werden. Neues in Version 2.45 Nachdem die Version 2.0 im Wesentlichen von einer modernisierten Oberfläche geprägt war hat sich bei der Version 2.5 nun auch bei den Libraries bzw. bei den Anforderungen an den Basic-Code was getan. Außerdem gibt es eine Änderung, die nichts mit dem Programmcode zu tun hat: Omikron hat sich jetzt doch dazu durchringen können, den Library- Maker freizugeben. Der Library-Maker ist deshalb ab der Version 2.5 Freeware. Da ich den Support des Programms schon vorher übernommen hatte, ändert sich daran nichts. Im Einzelnen gibt es folgende Veränderungen: - Wegfall der Demoversion. ;-) - Außerhalb von Prozeduren/Funktionen dürfen jetzt neben Kommentaren auch Klammern zum Einklappen des Codes stehen ("{" und "}"). - Vor der ersten Prozedur, die der Library dem Namen gibt, dürfen jetzt auch Kommentare stehen. Die erste Prozedur darf außerdem eingerückt und/oder eingeklappt sein. - Die Fehlermeldung "Unitialisierte Offsets" gibt es nicht mehr. Der Library-Maker berechnet die Offsets jetzt selber. - Der Library-Maker unterscheidet jetzt zwischen Library-lokalen und globalen Prozeduren/Funktionen/Variablen. Die neuen Libraries sind trotzdem kompatibel zu älteren Versionen des Interpreters bzw. Compilers. - Die Alertboxen liegen jetzt (fast immer) in Fenstern. - Durch eine zusätzliche externe Datei kann für jedes einzelne Alert bestimmt werden, ob es im Programmablauf erscheinen soll oder nicht. Auch das Format des Zeitstempels kann in der Datei verändert werden. - der Library-Maker kann auf Wunsch automatisch Pfad und Namen der Library-Datei und der Protokoll-Datei aus dem Namen der Basic-Datei bilden. - Das Pfadfenster kann beim Programmstart automatisch geöffnet werden. - Alle Einstellungen können jetzt am Programmende automatisch gesichert werden. - Nach erfolgreicher Übersetzung einer Library kann wahlweise automatisch der Library-Maker beendet, das Basic gestartet oder eine Meldung an das Basic geschickt werden. - Korrektur der Iconify-Funktion und Unterstützung von mehreren Icons für die verschiedenen Dialoge. - kleine Korrekturen bei der Pfadverwaltung. - kleine Korrekturen bei der Dialogverwaltung. - interne Umgestaltung des Codes für die Library-Erzeugung zur Gewinnung von mehr Übersicht. - Der Library-Maker unterstützt jetzt auch BubbleGEM, die Sprachblasenhilfe. Neues in Version 2.0 Die Libraries, die die Version 2.0 erzeugt, unterscheiden sich nicht von denen, die die letzte von Omikron veröffentlichte Version (1.4) erzeugt hat. Jedenfalls sollten sie das nicht und sie haben es bei meinen Tests auch nicht getan. Das Neue der Version 2.0 ist vielmehr die Multitasking-Tauglichkeit des Programms und eine vollständig überarbeitete Benutzeroberfläche. Die Oberfläche wurde weitestgehend an den aktuellen Stand der Entwicklung im Bereich der TOS-kompatiblen Software angepaßt. Im Einzelnen bietet die neue Oberfläche folgendes: - alle Dialoge in Fenstern; - alle Dialoge vollständig tastaturbedienbar; - uneingeschränkt lauffähig unter MagiC 2-5, MagiC Mac und MagiC PC (hoffe ich jedenfalls ;-)); - Drag&Drop ist möglich; - der Library-Maker versteht VA_Start und wertet die Kommandozeile aus (von Shel_Write oder Pexec); - Shutdown und Iconify wird unterstützt; - Online-Hilfe kontextsensitiv mit ST-Guide; - der ST-Guide kann auch nachgeladen werden; - der Library-Maker wird nicht mehr nach einem Übersetzungsvorgang beendet; - alle Einstellungen lassen sich speichern und wieder laden; - der Library-Maker ist vollständig lauffähig im TT-RAM; - In die LIBRARY CODE-Zeile kann automatisch ein Zeitstempel eingefügt werden. In Zusammenwirken mit dem Basic-Editor ab V. 5.XX ist es somit möglich - genug RAM vorausgesetzt (was allerdings im Wesentlichen ein Problem des Basic-Editors und nicht des Library-Makers ist) - den Library- Maker parallel zum Basic-Editor laufen zu lassen. Die Library wird im Editor verändert, einmal gespeichert, mit einem Mausklick zum Library- Maker gewechselt und einmal auf RETURN gedrückt und schon wird eine neue Version der Library erstellt. Anschließend braucht nur noch zurück zum Editor gewechselt werden, um dort in einem zweiten Fenster das Library-Testprogramm mit der frischen Library zu versorgen. Theoretisch kann auch während der Erstellung einer Library in anderen Programmen weitergearbeitet werden, weil der Library-Maker jetzt auch bei der Arbeit multitasking-freundlich ist. Praktisch wird das allerdings nur bei sehr großen Libraries möglich sein, weil der Library-Maker sonst einfach zu schnell fertig ist. Weggefallen sind in der neuen Version des Library-Makers auch zwei Dinge. Zum einen gibt es keine englisch-sprachige Ressource-Datei mehr. Sollte es tatsächlich ernsthaften Bedarf dafür geben, könnte ich eine eigene englische Version erstellen. Zum anderen wird am Ende des Übersetzungsvorgangs nicht mehr angezeigt, wie lange die Übersetzung gedauert hat. Ich habe keine sinnvolle Möglichkeit gefunden, das in die neue Oberfläche einzubauen, ohne die Benutzerführung zu verschlechtern.