home *** CD-ROM | disk | FTP | other *** search
- Informationen zum Update
- ========================
-
-
- Sehr geehrter Kunde,
-
- auf dieser Diskette befindet sich die neueste Version 3.1 von MaxonC++
- sowie der neue Editor MaxonED, der EDWARD ersetzt.
-
-
- Hinweise zur Installation des MaxonED
- -------------------------------------
-
- Mit Hilfe des Installationsskripts können Sie dieses Update bequem auf
- Ihrem Rechner installieren. Sie können im Verlauf der Installation
- wählen, ob Sie weiterhin mit EDWARD arbeiten oder ob Sie in Zukunft
- MaxonED benutzen möchten. MaxonED wird in beiden Fällen installiert,
- aber nur wenn Sie in nutzen möchten, wird auch die Konfiguration von
- MaxonC++ entsprechend abgeändert.
- Ein Handbuch zu MaxonED finden Sie als AmigaGuide-Datei im Verzeichnis
- "MCPP:BIN".
- Falls Sie MaxonED nachträglich als Editor für MaxonC++ einsetzen möchten,
- ändern Sie bitte in den Dateien "S:mcpp.config" bzw. "MCPP:BIN/mcpp.SESSION"
- (es können beide oder je eine davon vorhanden sein!) den Editor-Pfad in
- der letzen Zeile von "EDWARD:EDWARD" in "MCPP:BIN/MaxonED".
- Umgekehrt können Sie vorgehen, wenn Sie wieder EDWARD benutzen möchten.
-
-
- Hinweise zur neuen Compilerversion 3.1
- --------------------------------------
-
- Besitzer der Light-Version können sich darüber freuen, daß beim Compiler der
- Version 3.1 nicht mehr zwischen Light- und Developer-Version unterschieden
- wird, d.h. auch in der Light-Version wird jetzt der AT&T 3.0-Standard
- unterstützt!
-
- Eine Übersicht der Änderungen bis Version 3.1 des Compilers finden Sie in
- der nun folgenden History:
-
-
- Update-Protokoll Maxon C++ 3
- ----------------------------
-
- * Version 3.00.0 (31.10.94)
-
- Erste veröffentliche Version (nur Light)
-
-
- * Version 3.00.1 (06.11.94)
-
- Neue Features:
- + Linker-Fehlermeldungen sind schöner und aussagekräftiger geworden
-
- Fixed Bugs:
- + Beim Exception Handling wurden teilweise bestimmte Daten fälschlich an
- ungeraden Adressen abgelegt -> Absturz auf 68000er schon beim Laden(!)
- der Programme
- + Seltsame Fehlermeldung bei Initialisierung von "const enum XXX"
-
-
- * Version 3.00.2 (22.11.94)
-
- Fixed Bugs:
- + MCPP erzeugte neue Makefiles (nur bei Anweisung "newmk") im falschen
- Verzeichnis
- + Casting nach "const"-Typen wurde manchmal als Fehler gemeldet, vor allem
- bei mehrfachen Klammer-Verschachtelungen
- + Konstruktoraufruf für statische Member von Klassentemplates unterblieb, wenn
- es keinen expliziten Konstruktor gab, sondern nur Virtual-Zeiger
- initialisiert werden mußten.
- + Der Operator + aus der Stringbibliothek warf (harmlose) Enforcer Hits,
- wenn ein Argument mit einen NULL-String initialisiert war.
- + Enforcerhits (ebenfalls harmlos), wenn beim Operator "new" falsche oder
- fehlende Konstruktor-Argumente übergeben wurden
-
-
- * Version 3.00.2 (09.12.94)
-
- Fixed Bugs:
- + Pointer auf Memberfunktionen können jetzt auch mit 0 initialisiert werden
- + verschiedene Probleme mit verschachtelten Klassendefinitionen behoben
- + Wenn mit "catch" ein Objekt mit Destruktor aufgefangen wurde, wurde dessen
- Destruktor fälschlich nicht aufgerufen.
- + Falsche Fehlermeldungen bei Initialisierung konstanter Arrays
- + Destruktoren konnten nicht nachträglich als "inline" definiert werden.
- + Präprozessor: Stringumwandlung mit "#" machte bei verschachtelten Makro-Aufrufen
- Probleme.
- + Template-Argumente konnten bei qualifizierten Bezeichnern (Bla::Fasel)
- nicht auf der linken Seite stehen.
- + "scanf" stürzte bei "double" und "float" ab (wer benutzt eigentlich noch scanf,
- wenn es cin gibt? Also, ich jedenfalls nicht...)
- + Wenn "realloc" mit NULL-Pointer aufgerufen wird, wird jetzt vorschriftsmäßig
- Speicher angefordert (bisher: Ergebnis NULL)
- + Bei überladenem Operator "delete" wird beim zweiten Parameter ein eventuelles
- "register" ignoriert (aus implementatorischen Gründen nötig)
-
- Neue Features:
- + Präprozessor-Funktion "defined" akzeptiert jetzt auch Argumente in Klammern
- + "-D" als Alternative zu "-d" erlaubt (ist kompatibler so)
-
-
- * Version 3.00.3 (16.12.94)
-
- Fixed Bugs:
- + Enforcerhit bei unerlaubtem Casting behoben
- + Ergebnis von "putc", "putchar" und "fputc" war immer -1
- + Ergebnis von "fread" war falsch
- + "printf" und "fprintf" liefern jetzt im Fehlerfall -1
- + "fputs" und "puts" sind endlich beide richtig ("puts" gibt ein Linefeed
- aus, "fputs" nicht)
- + erstes Argument von "sscanf" ist jetzt "const char*". Hier widersprachen
- sich das Kernighan/Ritchie-Buch und die ANSI-Spezifikation...
-
- Neue Features:
- + Mehrere Nicht-Member-Template-Funktionen können jetzt den gleichen Namen
- tragen (unklarer Sprachstandard, aber so ists wohl kompatibler)
- + Neue Fehlermeldung bei Deklaration eines Konstruktors mit Ergebnistyp
-
-
- * Version 3.00.4 (29.01.95)
-
- Fixed Bugs:
- + Compilergenerierte Copy-Konstruktoren vermurxten gründlich das Exception
- Handling (Absturz)
- + Linker-Probleme mit doppelt definierten Symbolen bei Option "-L"
- + 16-Bit-Multiplikation bei 68020-Codeerzeugung fehlerhaft
-
-
- * Version 3.00.4 (30.01.95)
-
- Fixed Bug:
- + Vorcompilierte Headerfiles machten bei Exception Handling öfters Probleme.
-
-
- * Version 3.00.4 (11.02.95)
-
- Änderungen:
- + In der ".mdbg"-Datei werden für die Objektdateien grundsätzlich absolute
- Pfade eingetragen (vermeidet Chaos bei Installation in obskuren Verzeichnissen)
-
-
- * Version 3.00.5 (03.03.95)
-
- Fixed Bugs:
- + Funktionen "atof", "strtod", "Random()" und "difftime" konnten bei
- FPU-Option nicht aufgerufen werden
- + FPU-Option: gelegentliche Kollisionen in Register fp0
- + FPU-Option: Murx beim Konvertieren int->float und umgekehrt
-
-
- * Version 3.00.5 (05.03.95)
-
- Fixed Bug:
- + ARexx-Port: "errorscript" und "editscript" funktionierten nicht.
-
-
- * Version 3.00.5 (10.03.95)
-
- Fixed Bugs:
- + noch zwei Problemos bei FPU-Option behoben (einer davon wg. Druckfehler
- im 68030 Assembly Reference Manual - ich bin unschuldig!)
-
-
- * Version 3.00.6 (24.03.95)
-
- Fixed Bugs:
- + noch ein Problem mit Floating-Point-Code, diesmal ohne FPU
- + Operatoren "&" und "|" konnten mit etwas Mühe zu illegaler Operation
- mit Adressregister-Operanden überredet werden
- + Templateklassen konnten nicht direkt als Basis anderer Klassen benutzt
- werden
-
-
- * Version 3.00.6 (18.04.95)
-
- Fixed Bugs:
- + MCPP speicherte Small-Data-Einstellung ("-gd") nicht in Session
- bzw. Config ab
- + Probleme, wenn bei "Small Data" unreferenzierte Datenhunks wegoptimiert
- wurden
- + "freopen" schloß geöffnete Dateien nicht
-
-
- * Version 3.00.7 (21.05.95)
-
- Fixed Bugs:
- + Die Zeile "template<t>" bringt den Compiler nicht mehr in Panik
-
-
- * Version 3.00.8 (11.07.95)
-
- Fixed Bugs:
- + Bei Inline-Funktionen wurde (seltsamerweise nur bei Option -g20)
- d0 unsinnig oft gerettet und wiederhergestellt.
- + Bei FPU-Version von "modf" waren die beiden Ergebnisse vertauscht
-
-
- * Version 3.00.9 (22.11.95)
-
- Fixed Bugs:
- + Im ASM-Source wurde bei DS.B o.ä. die allokierte Speichergröße
- nur als 16-Bit-Zahl ausgegeben (das Objekt wurde aber in der
- richtigen Größe angelegt)
- + ab 68020 wird der Befehl EXTB.L unterstützt (eher ein vergessenes
- Feature als ein Bug)
- + lib_int2float trashte fälschlich Register d1
- + Probleme bei Fließkomma-Konstanten mit angehängtem "f" (z.B. "0.5f"):
- gelegentlich unsinnige Werte
-
-
- * Version 3.10.0 (17.04.96)
-
- Fixed Bugs:
- + Innerhalb von Konstruktoren wurden generell keine virtuellen
- Funktionen aufgerufen, selbst wenn diese eindeutig nicht über
- "this" bezogen waren.
- + Konvertierung konstanter ganzzahliger Werte auf schmalere
- ganzzahlige Werte wurde compilerintern unterdrückt, z.B.
- LONG(UBYTE(-1)) ergab -1 statt 255
- + Durcheinander bei der Reihenfolge der Konstruktoraufrufe für
- virtuelle Basisklassen bei Mehrfachvererbung
- + Die Fehlermeldung 258: "Inconsistent exception specification"
- war stets von einem Absturz begleitet.
- + Bei Definition statischer Member eines "const"-Typs mit
- gleichzeitiger Initialisierung ("const int A::anzahl = 42;")
- wurde kein Symbol an den Linker exportiert
- + Die (natürlich falsche) Deklaration "(()()) hallo;" ließ den
- Compiler abstürzen.
- + Compilerabsturz, wenn ein "void"-Funktionsergebnis nach "int"
- gecastet wurde.
- + Virtuelle Memberfunktionen von Templateklassen wurden manchmal
- fälschlich nicht erzeugt -> Linker-Fehler
-
-