(Stand 19.06.96)
Fuer Sie, als Kunde der Version 1.0 ist das Update auf die Version 1.1 selbstverstaendlich kostenlos und wird Ihnen automatisch geliefert.
Die gesamte Oberflaeche ist neu erstellt, was sich in der Geschwindigkeit und in der Groesse der einzelnen Programmteile stark bemerkbar macht. War beispielsweise die StormShell in der alten Version noch ueber 500 KByte gross, so ist die aktuelle Version mit handlichen 300 KByte enorm abgespeckt. Die Funktionalitaet muss darunter selbstverstaendlich nicht leiden. Ganz im Gegenteil.
Einzelne Eintraege in Projektsektionen oder auch ganze Sektionen koennen
in der Reihenfolge schnell geaendert (verschoben) werden. Ihre bevorzugte
Sortierung in der Projektverwaltung wird gespeichert und bei jedem Anlegen
neuer Projekte automatisch beruecksichtigt.
Die Integration von StormWIZARD ist genau so perfekt, wie die Einbindung aller anderen Programme. Beim Hinzufügen von durch StormWIZARD erzeugten Dateien (.wizard) wird die neue Sektion StormWIZARD Schnittstelle angelegt. Bei Doppelklick auf den Eintrag wird StormWIZARD gestartet und die gewaehlte Datei geladen. Die Integration aller Entwicklungskomponenten garantiert eine optimale Strukturierung und Organisation Ihrer Projekte.
Die Unterstuetzung durch zusaetzliche Tastaturqualifier in der Projektverwaltung
war bisher nur sehr stiefmuetterlich behandelt.
Bei Doppelklick auf den Programmnamen im Projekt und gleichzeitigem Gedrueckthalten
der <ALT>-Taste wird das Programm automatisch im Debug-Modus gestartet.
Hinzu kam nun die Unterstuetzung von Datatypes. Bei Doppelklick auf einen
Eintrag in der Projektverwaltung und Gedrueckthalten der <ALT>-Taste
wird Multiview gestartet und die Datei geladen. Ist nun ein entsprechender
Datatyp in Ihrem System installiert, wird die Datei angezeigt.
Ein kleines Beispiel verdeutlicht, wie sinnvoll diese Erweiterung ist:
Sie arbeiten an Ihrem Projekt und moechten auch eine AmigaGuide-Dokumentation
erstellen. Am einfachsten fuegen Sie hierfuer einen neuen Eintrag in die
Guide-Sektion ein. Bislang konnten Sie den Eintrag zwar doppelklicken,
um den Text dann mit dem Editor zu bearbeiten, wollten Sie aber das Endergebnis
sehen, musste die Originaldatei gesucht und doppeltgeklickt oder sogar
Multiview manuell gestartet werden.
Mit der neuen Projektverwaltung genuegt es, die <ALT>-Taste gedruecktzuhalten,
und den Eintrag in der AmigaGuide-Sektion doppelt zu klicken. Daraufhin
wird Multiview gestartet und Ihr AmigaGuide-Dokument in der Anwenderfassung
angezeigt. Eine Arbeitserleichterung, um die wir von vielen Anwendern gebeten
wurden!
Der neue Optioneneinsteller wurde aufgeraeumt und in seiner Bedienung
wesentlich handlicher gestaltet. Die mit StormWIZARD verfuegbaren Karteikartenreiter
verschaffen einen Ueberblick ueber alle Einstellmoeglichkeiten.
Viele Anwender der Version 1.0 sind begeistert von unserer Projektverwaltung
und der Moeglichkeit, alles zum Projekt gehoerige strukturiert und ueberschaubar
verwalten zu koennen. Selbstverstaendlich gibt es auch hierfür viele
Erweiterungsmoeglichkeiten, die uns genannt wurden.
Eine wichtige Erweiterung ist die Verwaltung verschiedener Versionen Ihres
Projektes. Gemeint sind z.B. Versionen Ihres Programmes für verschiedene
Prozessortypen. Bislang musste das komplette Projekt neu kompiliert werden,
was bei umfangreichen Projekten unter Umstaenden sehr lange dauern kann.
Die Version 1.1 bietet Ihnen die Moeglichkeit, in jedem Projekt eine Schublade
anzugeben, in die die Objektdateien gespeichert werden sollen. Fuer verschiedene
Versionen genuegt es nun, den einzelnen Projekten unterschiedliche Schubladen
fuer die Objektdateien anzugeben. Beispielsweise "68K-Code",
020-Code, 060-Code, usw...
Da in den Schubladen immer die Objektdateien mit den entsprechenden Optionen
enthalten sind, werden immer nur die Module neu kompiliert, deren Quellcode
tatsaechlich geaendert wurde!
Inline-Funktionen werden wie Makros direkt an der Stelle des Aufrufs im
Quelltext eingefuegt. Der Compiler spart damit den Aufruf der Funktionen
und kann daher extrem gut optimieren. Durch die Benutzung der Inline-Funktionen
wird das Programm schneller und wenn man sich auf kurze Inline-Funktionen
beschraenkt (z.B. das Auslesen des Wertes eines Attributs einer Klasse)
auch kuerzer.
In der Testphase koennen Inline-Funktion jedoch sehr stoerend sein, da
es fuer den Debugger unmoeglich ist, den Quelltext zu Inline-Funktionen
anzuzeigen.
Mit dem Schalter kann der Compiler angewiesen werden, die Inline-Funktionen
wie normale Funktionen aufzurufen. Der Debugger kann dann auch den Quelltext
dieser Inline-Funktionen anzeigen und im Einzelschrittmodus abarbeiten.
Dabei stoert es nicht, dass Inline-Funktionen meistens in den Header-Dateien
der Module zu finden sind.
Fuer die Testphase oder Sicherheitsfanatiker bietet C++ die Moeglichkeit
eine Funktion (auch Member-Funktionen einer Klasse) mit sogenannten Exceptionspecifier
auszustatten: Mit Hilfe des Schluesselworts "throw" hinter dem
Funktionsprototyp wird eine Liste von Exceptions angegeben, die durch diese
Funktion hoechstens ausgeworfen werden. Alle anderen Exceptions werden
als unerwartete Exception behandelt.
Dafuer muss der Compiler um jede Funktion mit Excpetionspecifier einen
"try-Block" setzen, der alle erlaubten Exceptions auffaengt und
wieder auswirft, aber alle anderen Exceptions abfaengt und die Funktion
unexpected() aufruft. Dieser zustaezliche try Block macht das Programm
laenger und etwas langsamer.
Es empfiehlt sich deshalb nach ausreichender Testphase den Compiler anzuweisen
diese Exceptionspecifier zu ignorieren. Das Programm wird dadurch unter
Umstaenden drastisch kuerzer.
Der StormLink ist in der Lage, einige Optimierungen, die ein Compiler
macht, auch im fertigen Programm durchzufuehren. Dazu gehoert auch das
Entfernen von mehrfach vorhandenem Code.
Wenn der StormLink zwei Routinen entdeckt, die identisch sind, so dass
es keinen Unterschied macht, ob das Programm die erste oder die zweite
aufruft, ersetzt der StormLink die zweite Routine durch den Code der ersten.
Wer behauptet, daß er ja selber programmiert und sowas nicht macht,
bitteschoen. Aber nicht wundern, wenn bei der Benutzung von Templates das
Programm immer laenger und laenger wird. Da diese Option einiges an Laufzeit
kostet, ist ihre Benutzung auch nur dann zu empfehlen, wenn der Optimizer
des Compilers auf der hoechsten Stufe steht.
Diese Option wurde zur Unterstuetzung des sogenannten Rapid Prototyping
implementiert. Generieren Sie einfach eine Funktion mit dem Namen "_stub",
schalten die genannte Option ein und programmieren drauflos. In der Stub-Funktion
sollte vielleicht eine Debugausgabe gemacht oder ein Dialog mit entsprechendem
Hinweis: "Funktion noch nicht implementiert" ausgegeben werden.
Die neuen Linkereigenschaft, Binaerdateien anbinden zu koennen, fand
man bisher eigentlich nur bei Assembler-Entwicklungssystemen. In StormC
1.1 wurde sie zur StormWIZARD-Unterstuetzung integriert, kann aber auch
fuer andere Zwecke genutzt werden.
Bei Aktivierung der Option "Binde WIZARD-Datei" wird die in der
Projektverwaltung enthaltene Wizard-Datei an das Programm gelinkt. Damit
die Daten korrekt initialisiert werden koennen, muss selbstverstaendlich
ein Symbolname fuer den Datenhunk angegeben werden. Die Initalisierungs-Routine
fuer die Wizard-Daten kann dann die an das Programm angehaengte Datei initialisieren.
Mit der neuen Version kann zum Projekt gespeichert werden, ob das Ressource-Tracking
prinzipiell aktiv sein soll oder nicht. Bei einigen Projekten ist es nicht
ratsam, das Ressource-Tracking zu aktivieren, da vielleicht selbst derartige
Patches vorgenommen werden oder eventuell das Anfordern und Freigeben von
Ressourcen auf mehrere unabhaenige Tasks verteilt ist.
Mit dem Cycle-Gadget im Optionen-Feld kann eingestellt werden, wie sich
der Debugger beim Starten verhalten soll. Mit der Einstellung "Debugger
im Single-Step-Modus starten", kann ab sofort auch der Startup-Code
untersucht werden.
Der wohl zur Zeit einzige Editor mit allen nur erdenklichen Features ist der GoldED. Daher entschieden wir uns, diesen als alternativen Editor an unser Entwicklungssystem anzupassen. Es genuegt das Merkmal GOLDED=TRUE einzutragen und anstelle von StormED wird GoldED gestartet. Fuer viele von ihnen ist die Editorfunktionalitaet mitverantwortlich bei der Kaufentscheidung. Durch die Einbindung von GoldED duerfte fuer viele die Entscheidung getroffen sein.
Vielfach gewuenscht, ist es nun in der aktuellen Version einfach moeglich, die farbliche Textdarstellung mit der Maus zu veraendern. Die einfache Einstellmoeglichkeit loest damit die bislang komplizierte Angabe der Vorder- und Hintergrundfarbe in der jeweiligen Settings-Datei ab.
Die automatische Ueberpruefung der Klammernstruktur ist sehr hilfreich bei tief geschachtelten Konstruktionen. Allzuleicht wird eine Klammer vergessen und man erhaelt eine Fehlermeldung, die nicht unbedingt auf eine fehlende Klammer schliessen laesst. Auch bei der Programmierung von Installer-Skripten ist diese Funktion sehr hilfreich.
Genau wie beim Hinzufuegen neuer Texte zu einem Projekt wird beim Neuanlegen eines Textes bereits der Speicherort erfragt. Mit der dabei angegebenen Dateiendung kann dann das entsprechende Template fuer den neuen Text geladen und verwendet werden.
Im Debugger StormRUN werden alle Debuggschritte protokolliert und koennen im History-Fenster zurueckverfolgt werden. Das neue Breakpoint-Fenster zeigt alle gesetzten Unterbrechungspunkte. Per Doppelklick kann gezielt an die jeweilige Programmstelle gesprungen werden. Selbstverstaendlich ist es moeglich, einzelne oder alle Unterbrechungspunkte zu loeschen.
Bei grossen Projekten ist die Turnaroundzeit oft sehr entscheidend fuer
die Nutzung eines Compilers. Um die Wartezeiten beim Kompilieren und Linken
zu verkürzen, wurde eine neue Optimierungstufe implementiert die besonders
schnell Code generiert, dabei aber keinen Wert auf die Codequalitaet legt.
Auch der neue Linker konnte um den Faktor 2 deutlich beschleunigt werden
und steuert seinen Teil zu besonders kurzen Turnarounds bei!
Was bisher mit der Funktion geta4 manuell konvertiert werden musste, ist in der neuen Version zur besseren Kompatibilitaet integriert.
Nicht nur die Erzeugung von Shared-Libraries ist eine wichtige Bedingung
fuer ein echtes Entwicklungssystem, sondern auch die Moeglichkeit, Funktionsgruppen
in einer Linkerbibliothek zusammenfassen zu koennen. Bei der Erzeugung
von Bibliotheken wie beispielsweise der Amiga.Lib oder der Storm.Lib muss
bereits beim Kompilieren der Module darauf geachtet werden, dass jede Funktion
am Besten in einem eigenen Hunk abgelegt wird. Der Compiler bietet dazu
die Option "Eigener Hunk fuer jede Funktion". Nach dem Kompilieren
muessen die einzelnen Module zu einer Library "gejoint" werden,
was laestige Tipparbeit bedeutet.
Unser neuer StormLibrarian hilft Ihnen dabei und bietet die Moeglichkeit
Objektmodule zu Library-Projekten zusammenzufassen. Haben Sie Ihr Projekt
erstellt, genuegt ein einfacher Klick auf "Erzeugen" und die
Bibliothek wird unter dem angegebenen Namen erzeugt. Bei Veraenderung der
Objektmodule muss nun lediglich das Projekt in den StormLibrarian geladen
und die Bibliothek neu erzeugt werden - fertig!
(c) 1996 HAAGE & PARTNER Computer GmbH, Rosbach, Germany
http://ourworld.compuserve.com/homepages/haage_partner