HAAGE & PARTNER COMPUTER GMBH

StormC Version 1.1 for

(Stand 19.06.96)

Auf dieser Seite finden Sie Informationen über die neue Version von StormC.

Fuer Sie, als Kunde der Version 1.0 ist das Update auf die Version 1.1 selbstverstaendlich kostenlos und wird Ihnen automatisch geliefert.

Sind Sie noch nicht registiert?

Sollten Sie mit Ihrer StormC-Version noch nicht registriert sein, so holen Sie es bitte nach. Das Update kann selbstverstaenlich nur dann an Sie verschickt werden, wenn uns Ihre Adresse bekannt ist!

Aktuelle Neuerungen in der Version 1.1


StormShell

Projektverwaltung

StormEd

StormRun

StormC

StormLibrarianNEW


StormShell

Mit neuer Oberflaeche wesentlich kompakter!

StormC 1.1 ist komplett mit StormWIZARD ueberarbeitet.

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.

Sortieren in der Projektverwaltung


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.

Neue Projektsektionen

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.

Erweiterte Tastaturfunktionalitaet

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!

Neuer Optioneneinsteller mit erweiterten Optionen

Der neue Optioneneinsteller wurde aufgeraeumt und in seiner Bedienung wesentlich handlicher gestaltet. Die mit StormWIZARD verfuegbaren Karteikartenreiter verschaffen einen Ueberblick ueber alle Einstellmoeglichkeiten.

Codebedingte Objektdateien-Ablage

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!

Verhindern von Inline-Funktionen


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.


Ignorieren von Exception-Spezifizierern


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.

Codefolding (Fold Common Code)

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.

Ersetzung von nichtvorhandenen Funktionen

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.

Anbinden von Binaerdateien

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.

Neue Debugger-Kontrollmoeglichkeit

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.

GoldED alternativ nutzbar!

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.

StormEd

Farbeinsteller

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.

Klammern-Check und Blockeinrueckung

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.

NEU - Projekt-Template

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.

StormRun

History- und Breakpointfenster

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.

StormC

Neue Optimierungsstufen

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!

Neues Schluesselwort __saveds

Was bisher mit der Funktion geta4 manuell konvertiert werden musste, ist in der neuen Version zur besseren Kompatibilitaet integriert.

StormLibrarian

Einfache Erzeugung von Linker-Bibliotheken


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