8 Mai 2006
PureBasic V4.00 (Windows)
Comme PureBasic 4 est une mise à jour très conséquente aussi bien en terme
de nouveautés que de changements, un document résumant toutes les modifications
effectuées sur les bibliothèques depuis la dernière version stable est disponible
ici.
- Ajouté: Support natif de l'unicode
- Ajouté: Support des sous-systèmes
- Ajouté: Longueur des chaînes de caractères illimitée que ce soit en ASCII ou en Unicode
- Ajouté: Le jeu de commandes complet est maintenant 'thread-safe'
- Ajouté: Type Character (.c)
- Ajouté: Type Double(.d)
- Ajouté: Type Quad (.q)
- Ajouté: Opérateurs logiques 'XOr' et 'Not'
- Ajouté: Type 'chaîne fixe' (Texte${#Longueur})
- Ajouté: Macro/EndMacro - en mode simple et complexe
- Ajouté: With/EndWith pour un code plus concis
- Ajouté: Assignement possible avec Static (très important), Protected et Global: "Global a = 5"
- Ajouté: Support des listes chaînées de pointeurs
- Ajouté: Support de Global, Protected, Static et Shared pour les tableaux et les listes chaînées: "Global NewList MyList.l()".
- Ajouté: #PB_Compiler_File, #PB_Compiler_Line, #PB_Compiler_Version, #PB_Compiler_Home, #PB_Compiler_Debugger, #PB_Compiler_ThreadSafe, #PB_Compiler_Unicode
- Ajouté: Directive CompilerError "Message"
- Ajouté: Support de @Procedure() et ?Label dans la directive Data.l
- Ajouté: Paramètres optionnels pour les procédures, les interfaces, et les prototypes
- Ajouté: Commutateur /CONSTANT Test=Value pour déclarer des constantes sur la ligne de commande
- Ajouté: Mot clef 'Swap' pour échanger rapidement le contenu de deux variables.
- Ajouté: 'Case' multiples pour Select/EndSelect: Case 1, 2, 6 To 20
- Ajouté: Mot clef 'Prototype' pour déclarer des pointeurs de fonctions facilement
- Ajouté: Mot clef 'ProcedureC' pour déclarer des procédure cdecl facilement
- Ajouté: Les paramètres des procédures peuvent avoir le même nom qu'une variable globale (protection automatique)
- Ajouté: EnableExplicit/DisableExplicit: les variables doivent être déclarées avec Define, Global, Protected, Shared ou Static.
- Ajouté: Directive Defined(Nom, Type)
- Ajouté: ReDim pour les tableaux à une ou plusieurs dimensions
- Ajouté: Import/ImportC/EndImport pour importer des fonctions à partir d'une bibliothèque externe (.lib)
- Ajouté: Les listes et les tableaux peuvent être passés en paramètre d'une procédure
- Ajouté: Le commutateur /LINKER permet de passer des commandes directement au linker
- Ajouté: Les PseudoTypes: p-ascii, p-unicode, p-variant, p-utf8 et p-bstr
- Ajouté: Les erreurs de l'assembleur et du linker sont automatiquement affichées en ligne de commande
- Ajouté: Sous système OpenGL pour les applications multimédia
- Ajouté: Support de l'alphachannel pour les Sprite3D (au travers des PNG et TIFF)
- Ajouté: Directive Subsystem() pour détecter si un sous-système est utilisé
- Ajouté: Les nombre flottants peuvent être écrits sous la forme: 123.5e-20
- Ajouté: Des alias pour les variables locales sont générés quand '!' est utilisé pour spécifier du code assembleur (ex: p.v_variable)
- Ajouté: Les fonctionnalités 'Passer la procédure' et 'Sortir de la procédure' pour le débogueur
- Ajouté: Bibliothèque 'Process'
- Amélioré: Le support de NT4 est maintenant effectué à l'aide d'un sous-système (DirectX 3)
- Amélioré: Les fichiers résidents supportent les types quad et double, les macros et les prototypes
- Amélioré: De nombreuses commandes
- Amélioré: Le moteur OGRE a été mis à jour en version 1.0.7
- Amélioré: La documentation française a été grandement retravaillée
- Optimisé: La taille du plus petit exécutable est passée de 2,5 kb à 1,5 kb
- Optimisé: Combinaison des flottants et des constantes plus rapide
- Optimisé: La bibliothèque 'Fichier' a été complètement réécrite et gère maintenant un système de cache pour
des performances bien plus élevées. Elle supporte aussi les très gros fichiers (64 bits).
- Optimisé: Les procédures sont maintenant aussi petites que possible, ce qui devrait améliorer un peu les performances
- Modifié: La bibliothèque console supporte la redirection (ie: utilisation possible pour un CGI par exemple)
- Modifié: Quand un paramètre numérique est requis, il n'est plus possible de passer une chaîne de caractères
- Modifié: Les noms temporaires 'purebasic.exe' ne sont plus nommés aléatoirement, car cela pouvait ralentir quelques parefeux
- Modifié: 'DefType' a été renommé en 'Define'
- Fixé: Les commandes internes préservent tous les registres réservés
- Fixé: La souris est automatiquement libérée en mode fenêtré quand la fenêtre perd le focus
- Fixé: KeyboardInkey() gère correctement les touches shift et control
- Fixé: IsScreenActive() fonctionne correctement en mode fenêtré
- Fixé: Beaucoup de bugs mineurs qui ont été découverts depuis la dernière version