15. April 2007
PureBasic V4.00 (Linux)
Da PureBasic 4 ein ziemlich großes Release ist - sowohl im Hinblick auf Änderungen als auch
Verbesserungen, ist ein Dokument mit einer Übersicht aller Änderungen an den Library-Befehlen
seit dem letzten stabilen Release verfügbar: klicken Sie
hier.
- Hinzugefügt: Native Unicode-Unterstützung
- Hinzugefügt: Unterstützung von Subsystems
- Hinzugefügt: Unbegrenzte Länge von Strings, sowohl im ASCII- als auch Unicode-Modus
- Hinzugefügt: Threadsicheres Befehlsset und Strings
- Hinzugefügt: Character Typ (.c)
- Hinzugefügt: Double Typ (.d)
- Hinzugefügt: Quad Typ (.q)
- Hinzugefügt: 'XOr' und 'Not' logische Operatoren
- Hinzugefügt: Fixed String Typ (String${#Anzahl})
- Hinzugefügt: Macro/EndMacro - einfacher und komplexer Modus
- Hinzugefügt: With/EndWith für saubereren Code
- Hinzugefügt: Möglichkeit der Zuweisung bei Static (ziemlich unbedeutend), Protected und Global: "Global a = 5"
- Hinzugefügt: Es ist jetzt möglich, eine verknüpfte Liste von Zeigern zu erstellen
- Hinzugefügt: Unterstützung für Global, Protected, Static und Shared Arrays und verknüpfte Listen: "Global NewList MyList.l()". NewList allein macht die Liste nicht mehr global.
- Hinzugefügt: #PB_Compiler_File, #PB_Compiler_Line, #PB_Compiler_Version, #PB_Compiler_Home, #PB_Compiler_Debugger, #PB_Compiler_ThreadSafe, #PB_Compiler_Unicode
- Hinzugefügt: CompilerError "Message" Direktive
- Hinzugefügt: @Procedure() und ?Label Unterstützung in Data.l Direktiven
- Hinzugefügt: Optionale Parameter für Prozeduren, Interface Methoden und Prototypes
- Hinzugefügt: /CONSTANT Test=Wert Switch zum Deklarieren von Konstanten auf der Compilerzeile
- Hinzugefügt: Swap Schlüsselwort zum schnellen Tauschen von 2 Variablen oder Elementen (Swap a,b).
- Hinzugefügt: Mehrfaches 'Case' für Select/EndSelect: Case 1, 2, 6 To 20
- Hinzugefügt: 'Prototype' Schlüsselwort zum einfachen Deklarieren von Funkionszeigern
- Hinzugefügt: 'ProcedureC' Schlüsselwort zum einfachen Deklarieren von cdecl Prozeduren
- Hinzugefügt: Procedure Parameter können jetzt den gleichen Namen wie eine globale Variable haben (werden automatisch geschützt)
- Hinzugefügt: EnableExplicit/DisableExplicit: Variablen müssen mittels Define, Global, Protected, Shared oder Static deklariert werden.
- Hinzugefügt: Defined(Name, Typ) Compiler-Funktion. Typ kann sein #PB_Constant, #PB_Variable, #PB_Array, #PB_LinkedList, #PB_Structure, #PB_Interface
- Hinzugefügt: ReDim für einfache und mehrdimensionale Arrays
- Hinzugefügt: Import/ImportC/EndImport zum Importieren von Funktionen und Variablen von externen .lib
- Hinzugefügt: Verknüpfte Listen und Arrays können jetzt als Prozedur-Parameter übergeben werden.
- Hinzugefügt: PseudoTypes: p-ascii, p-unicode und p-utf8
- Hinzugefügt: Assembler und Linker Fehler beim CLI-compiler werden jetzt direkt angezeigt
- Hinzugefügt: OpenGL Subsystem für Multimedia-Applikationen
- Hinzugefügt: Vollständige Alphakanal-Unterstützung für die Sprite3D Library (über PNG und TIFF)
- Hinzugefügt: Subsystem() Compiler-Direktive zur Überprüfung, ob ein Subsystem in Benutzung ist.
- Hinzugefügt: Exponenten-Form für Fließkomma-Konstanten: 123.5e-20
- Hinzugefügt: Aliasnamen für lokale Variablen werden bei der Verwendung von "raw" Assembler ('!') generiert, für einfacheres Verweisen darauf (in der Form p.v_variable)
- Hinzugefügt: 'Step over' und 'Step out' Features beim Debugger
- Hinzugefügt: Process Library
- Hinzugefügt: Erstellung von .so Bibliotheken
- Aktualisiert: Resident-Dateien unterstützen jetzt Quad, Double, Macros und Prototypes
- Aktualisiert: Viele Library Befehle
- Aktualisiert: OGRE Engine auf die 1.0.7 Version
- Aktualisiert: Die französische Dokumentation wurde stark verbessert.
- Optimiert: Schnelleres Mischen von numerischen Fließkomma und Literalen
- Optimiert: File Library komplett neu geschrieben und verwaltet jetzt einen Lese-/Schreib-Cache für sehr schnelle Performance.
- Optimiert: Prozeduren sind jetzt so klein wie möglich, was etwas Geschwindigkeitszuwachs geben sollte.
- Geändert: Wenn ein numerischer Parameter erwartet wird, ist es nicht mehr möglich, einen String zu übergeben.
- Geändert: 'DefType' umbenannt in 'Define'
- Repariert: Interne System-Funktionen zerstören nicht mehr reservierte Register.
- Repariert: Viele kleine/mittlere Angelegenheiten, die seit der letzten Version aufgetreten sind.