27Mars 2024

PureBasic 6.10 LTS

- Ajouté: Bibliothèque WebView pour créer facilement une interface utilisateur basée sur HTML/CSS !
- Ajouté: Refonte complète de la bibliothèque 'Date' pour gérer les années de 1601 à 9999 !
- Ajouté: Bibliothèque de squelettes pour créer un squelette personnalisé sur un mesh !
- Ajouté: SvgVectorOutput() et PdfVectorOutput() pour tous les OS
- Ajouté: Prise en charge DU DPI-Aware pour OS X
- Ajouté: ExamineDraggedItems(), NextDraggedItem() et DraggedItemIndex() pour le Drag'n'drop
- Ajouté: Prise en charge de GetGadgetItemText() pour ExplorerTreeGadget()
- Ajouté: Fonctions CompareStructure(), CompareArray(), CompareList() et CompareMap()
- Ajouté: Fonctions CustomSortList() et CustomSortArray() dans la bibliothèque 'Sort'
- Ajouté: CatchPack(), PackEntryDate()
- Ajouté: Fonctions CreatePasswordHash() et VerifyPasswordHash() (algorithme BCrypt)
- Ajouté: DeriveCipherKey() pour créer une clé de chiffrement à partir d'un mot de passe (algorithme PBKDF2)
- Ajouté: DateUTC() pour obtenir la date en heure UTC
- Ajouté: ConvertDate(Date, #PB_Date_LocalTime/#PB_Date_UTC) pour convertir la date entre UTC et heure locale
- Ajouté: Prise en charge des modes ScaleEntityBone(), MeshDirectAdd() et #PB_Mesh_Direct pour CreateMesh()
- Ajouté: AddPackDirectory(#Packer, PackedDirectoryName$) pour le répertoire vide
- Ajouté: UseDialogWebGadget(), UseDialogOpenGLGadget(), UseDialogScintillaGadget() pour éviter une grande dépendance à la bibliothèque par défaut lors de l'utilisation de boîtes de dialogue.
- Ajouté: Paramètre NbMaxChannels pour InitSound(). Plage de 1 à 254.
- Ajouté: Paramètre optionnel 'Encoding' à OpenPreference() pour gérer correctement les fichiers UTF-8 sans BOM
- Ajouté: Prise en charge de la fenêtre parent pour tous les Requester
- Ajouté: WebGadget basé sur le composant Edge avec la constante #PB_Web_Edge (Windows uniquement)
- Ajouté: Liaison Localhost pour InitFastCGI()
- Ajouté: SystrayIconMenu() pour afficher automatiquement un menu en cliquant sur l'icône du systray
- Ajouté: Prise en charge de l'alignement des colonnes ListIconGaget()
- Ajouté: Avertissement d'exécution si CreateThread() est utilisé sans le mode ThreadSafe
- Ajouté: Prise en charge de GadgetItemID() pour PanelGadget() (Windows uniquement)
- Ajouté: #PB_Preference_NoBOM flag pour CreatePreference() pour créer des fichiers de préférences UTF-8 sans BOM
- Ajouté: Indicateur #PB_Cipher_HMAC pour les fonctions d'empreintes digitales
- Ajouté: #PB_2DDrawing_NativeText pour DrawingMode()
- Ajouté: #PB_PixelFormat_NoAlpha pour DrawingBufferFormat()
- Ajouté: #PB_EventType_ColumnClick pour ListIconGadget()
- Ajouté: #PB_String_EscapeJSON pour EscapeString() et UnescapeString().
- Ajouté: Prise en charge de #PB_Menu_SysTrayLook pour avoir un menu contextuel plus esthétique lorsqu'il est utilisé avec SysTray (Windows uniquement)
- Ajouté: #PB_EventType_Refresh support pour ExplorerListGadget() (Windows uniquement)
- Ajouté: Prise en charge du sous-système insensible à la casse sous Linux
- Ajouté: --listfunctions/constants/interfaces et --querystructure supportent le compilateur Windows.

- Mise à jour: Prise en charge des noms de fichiers Unicode pour le compilateur Windows
- Mise à jour: Libvlc au lieu de l'ancienne lib xine sous Linux pour lire des films
- Mise à jour: Retravail de la bibliothèque 'Son et Musique' pour utiliser MiniAudio sous Windows, OS X et Linux (la dépendance SDL n'est plus requise pour les sons sous Linux).
- Mise à jour: Version SQLite 3.45.0
- Mise à jour: La chaîne d'outils sous Windows utilise désormais VisualStudio 2022 et le nouveau MSVCRT pour des programmes PureBasic plus rapides et une intégration plus facile des bibliothèques externes.
- Mise à jour: La version minimale pour Linux x86 est désormais Debian 12
- Mise à jour: La version minimale pour Raspberry est désormais PI OS basé sur Debian 12

- Changé  : TextWidth(), TextHeight(), DrawText() et DrawRotatedText() utilisent désormais le format 'Double' pour les coordonnées X, Y.
- Modifié: Scintilla est désormais lié statiquement sous Windows (la distribution du scintilla.dll avec votre exécutable n'est plus nécessaire)
- Modifié: La bibliothèque SysTray sous Linux utilise désormais AppIndicator pour prendre en charge la distribution Linux moderne dans GTK3
- Changé : Fonction DESFingerprint() obsolète - utilisez plutôt la nouvelle fonction CreatePasswordHash().
- Changé : ListSize() et MapSize() renvoient désormais correctement -1 si la liste ou la map est libérée.

- Supprimé: --listpath sous Linux/OSX (utilisez --output pour spécifier le fichier de sortie)
- Supprimé: Prise en charge de Windows XP. La version minimale de Windows prise en charge pour les exécutables créés est Windows Vista.
- Supprimé: Quelques très anciennes fonctions obsolètes.

- Corrigé: De nombreux bogues des bibliothèques (liste des bugs corrigés).

13Decembre 2023

PureBasic 6.04 LTS

- Ajouté: Option /DLLPROTECTION en ligne de commande et un commutateur dans les 'Options du compilateur' pour activer la protection contre le préchargement des DLL (Windows).

- Corrigé: Quelques problèmes d'IDE et bugs de bibliothèques principalement sur OS X (liste des bugs corrigés).

11Octobre 2023

PureBasic 6.03 LTS

- Ajouté: #PB_String_NoCaseAscii pour CompareMemoryString() pour avoir des comparaison plus rapides avec les chaines ASCII.
- Ajouté: la constante de compilation #PB_Compiler_DPIAware.

- Mise à jour: Scintilla 5.3.5 sur toutes les plateformes.
- Optimisé: code C généré plus petit et facile à lire.
- Modifié: l'IDE sous Linux utilise maintenant GTK3 par défaut (l'IDE GTK2 est maintenant nommé 'purebasic_gtk2').

- Corrigé: De nombreux bogues du compilateur et des bibliothèques (liste des bugs corrigés).

17Mai 2023

PureBasic 6.02 LTS

- Ajouté: HttpTimeout() pour définir une connexion avec un délai global pour les commandes HTTP.
- Ajouté: Construction de l'IDE GTK3 pour Linux à des fins de test (purebasic_gtk3).
- Ajouté: Prise en charge du réassemblage (--reasm) pour OS X et Linux.

- Mise à jour: libarchive 3.6.2
- Mise à jour: lib7z 22.01

- Supprimé: Activer le support ASM pour le backend C car il ne peut pas être utilisé correctement (l'IDE met en majuscule les lettres pour If etc.) et évite de détecter un vrai bloc asm x86/x64 conduisant à des erreurs étranges.
La bonne façon est maintenant d'utiliser le signe '!' au début de la ligne pour utiliser directement le code C.
- Corrigé: De nombreux bogues du compilateur et des bibliothèques (liste des bugs corrigés)

7Mars 2023

PureBasic 6.01 LTS

- Ajouté: #PB_Mail_UseSMTPS et #PB_Mail_Debug pour CreateMail()

- Mise à jour: GCC en version 12.2.0 sur Windows

- Corrigé: De nombreux bogues du compilateur et des bibliothèques (liste des bugs corrigés)

22Juin 2022

PureBasic 6.00 LTS

- Ajoutée: Support du microprocesseur M1 d'Apple !
- Ajoutée: Support du Raspberry (32 bits et 64 bits) !
- Ajoutée: Un nouveau compilateur backend C pour toutes les versions de PureBasic
- Ajoutée: Constantes du compilateur #PB_Compiler_Backend, #PB_Backend_C et #PB_Backend_Asm
- Ajoutée: Constantes du compilateur #PB_Compiler_64Bit et #PB_Compiler_32Bit
- Ajoutée: La constante #PB_Compiler_Optimizer est égale à #True si l'optimiseur est activé
- Ajoutée: OSVersion() détecte Windows 11, OS X 11 et 12
- Ajoutée: L'option /OPTIMIZER, -z, --optimizer de la commande en ligne, et une case à cocher 'Activer l'optimiseur de code' du menu 'Compilateur/Options du compilateur...' de l'IDE qui active l'optimisation du code C
- Ajoutée: support automatique de la haute définition pour les bibilothèque Menu et ToolBar (Windows)
- Ajoutée: WebGadget() supporte GTK3 sur linux
- Ajoutée: CreateShader(), CreateShaderMaterial(), MaterialShaderAutoParameter(), MaterialShaderParameter(), MaterialShaderTexture()
- Ajoutée: Parametre optionnel de MeshFace() pour créer un quad
- Ajoutée: Parametre optionnel vecteur force de WorldGravity()
- Ajoutée: Parametre optionnel mode position de ApplyEntityForce()
- Ajoutée: GetEntityMesh(), CreateCubicTexture(), CreateAnimatedMaterial()
- Ajoutée: Nouveaux modes pour CreateDataMesh(): #PB_Mesh_DiagonalShortestLength, #PB_Mesh_DiagonalClosestNormal, #PB_Mesh_DiagonalAlternate, #PB_Mesh_DiagonalRegular1, #PB_Mesh_DiagonalRegular2
- Ajoutée: Nouvelles structures: Vector3, Vector4
- Ajoutée: Shaders prédéfinis : #PB_Material_ColorShader, #PB_Material_PerpixelShader, #PB_Material_BumpShader, #PB_Material_SkyShader, #PB_Material_WaterShader, #PB_Material_WaterShaderRTT, #PB_Material_OceanShader, #PB_Material_PointSpriteSphereShader
- Ajoutée: Nouveaux modes pour SetMaterialAttribute(): #PB_Material_PointSprite, #PB_Material_DepthBias
- Ajoutée: Nouveau parametre optionnel 'Couleur' pour CreateMaterial()
- Ajoutée: Nouveau parametre optionnel 'CouleurSpeculaire'pour MaterialShininess()
- Ajoutée: Nouveaux parametres optionnel 'v' et 'w' pour MeshVertexTextureCoordinate()
- Ajoutée: Nouveau parametre optionnel 'NiveauDetails' pour CreateCamera()
- Ajoutée: Nouveaux modes pour AddMaterialLayer(): #PB_Material_ModulateX2, #PB_Material_ModulateX4, #PB_Material_AjoutéSigned, #PB_Material_Substract, #PB_Material_BlendDiffuseAlpha, #PB_Material_BlendCurrentAlpha
- Ajoutée: Nouvelles constantes contextuelles de l'affichage d'autocomplétion de l'IDE (Fr34k)
- Ajoutée: 3 nouveaux évènements (triggers) pour les outils personnalisés de l'IDE: 'Ouvrir un fichier binaire non PureBasic', 'Ouvrir un fichier texte non PureBasic', 'Ouvrir un fichier avec une extension spéciale' (HeX0R101)
- Ajoutée: Nouveau raccourci 'Remplacer' (CTRL+H) qui ouvre la boîte de dialogue 'Rechercher/Remplacer...' avec la fonction 'Remplacer' déjà activée (ChrisRfr)

- Mise à jour: SetMaterialColor() peut maintenant utiliser plusieurs types de couleurs à la fois en utilisant '|'
- Mise à jour: Dernière version de fasm, polink, polib et porc (Windows)
- Mise à jour: bibliothèque Movie sur OS X pour supporter les versions plus récentes d'OS X
- Mise à jour: bibliothèque Mouse sur Windows pour utiliser RawInput au lieu de DirectX pour support les souris haute définition
- Mise à jour: SQLite à 3.38.2
- Mise à jour: zlib à 1.12.12
- Mise à jour: libpq (PostgreSQL) à 14.2

- Modifié: Structures renommées PB_MeshFace en MeshFace et PB_MeshVertex en MeshVertex
- Modifié: L'option de commande en ligne /EXE en /OUTPUT (fonctionne toujours pour assurer la rétro compatibilité mais sans être documenté)
- Modifié: La version courte de /CONSTANT, de '-o' en '-co' car '-o' est maintenant utilisé par /OUTPUT
- Modifié: La façon dont les éléments des Maps sont créés lors de l'utilisation de la syntaxe passive, pour être plus cohérent
- Modifié: Le sous-système par défaut de screen/sprite est maintenant OpenGL sous Windows pour plus de cohérence. DirectX9 est toujours disponible en tant que sous système.
- Modifié: enabled backface culling for sprite OpenGL subsystem to be faster and be in line with DirectX9/11
- Modifié: InitNetwork() is no more needed to use network functions (deprecated)

- Supprimé: La version x86 de PureBasic pour OS X qui n'est plus supporté depuis OS X Catalina (Au minimum OS X 10.10 en 2014).
- Supprimé: La bibliothèque 'Help' sous Linux
- Supprimé: Prise en charge de Nvidia CG pour OGRE qui ne l'est plus depuis un certain temps
- Supprimé: ToolBarStandardButton() car la fonction ne supporte pas les hautes résolutions (High DPI)

23Novembre 2020

PureBasic 5.73 LTS

- Ajouté: #PB_HTTP_WeakSSL avec HTTRequest() pour supporter les vieux serveurs
- Ajouté: #PB_HTTP_Debug pour imprimer des informations dans la console de debogage
- Ajouté: Nouvelle option d'indentation (Shardik)
- Ajouté: Boucler automatiquement après une recherche (kenmo)
- Ajouté: Nouveau raccourcis (Majuscule/minuscule/inverser la casse) (kenmo)

- Mise à jour: SQLite 3.33.0

- Corrigé: Autocomplétion sur Linux (mk-soft)
- Corrigé: Crash de l'IDE sur MacOS (mk-soft)
- Corrigé: Plusieurs bogues du compilateur et des bibliothèques

30Mars 2020

PureBasic 5.72 LTS

- Ajouté: #PB_HTTP_Headers avec HTTPInfo() pour obtenir les en-têtes
- Ajouté: #PB_HTTP_HeadersOnly avec HTTPRequest() pour demander uniquement les en-têtes (GetHTTPHeaders() est désormais obsolète)
- Ajouté: Dans les préférence utilisateur de l'IDE, il est possible de changer le choix des caractères à selectionner dans les mots clés du Scintilla (de l'IDE) (kenmo)
- Ajouté: Dans l'IDE, ajout de raccourcis zoom: Ctrl+Plus, Ctrl+Moins, Ctrl+Zéro et Ctrl+Molette de la souris (kenmo)
- Ajouté: Dans l'IDE, ajout de raccourcis d'édition: Ctrl+Maj+Haut, Ctrl+Maj+Bas, Ctrl+D, Ctrl+Tab et Ctrl+Maj+Tab (kenmo)
- Ajouté: Memview (idle)

- Modifié: PostEvent() renvoie maintenant un résultat car il pourrait échouer dans certains cas extrêmes
- Modifié: Sign() renvoie maintenant un entier (Integer) et non plus un Float.
- Modifié: Sous MS WIndows, la police de caractères par défaut est passée de MS Shell Dlg à Segoe UI taille 9.

- Mise à jour: La bibliothèque OpenJPEG est en version 2.3.1
- Mise à jour: La bibliothèque PCRE en version 8.44
- Mise à jour: La bibliothèque libpng en version 1.6.37
- Mise à jour: La bibliothèque libjpeg en version 9d
- Mise à jour: La bibliothèque libtiff en version 4.1.0
- Mise à jour: La bibliothèque expat en version 2.2.9
- Mise à jour: La bibliothèque libflac en version 1.3.3
- Mise à jour: La bibliothèque libogg en version 1.3.4
- Mise à jour: La bibliothèque libvorbis en version 1.3.6
- Mise à jour: La bibliothèque sqlite en version 3.31.1
- Mise à jour: La bibliothèque curl en version 7.68.0

- Corrigé: 'Chercher précédent' plante dans l'IDE (kenmo)
- Corrigé: La position des gadgets par glisser-déposer dans le FormDesigner (ChrisR)
- Corrigé: Réactiver les boutons dans la fenêtre 'Rechercher dans les fichiers', dans IDE (Sicro)
- Corrigé: Afficher les erreurs dans la fenêtre '#WINDOW_Form_Parent' du FormDesigner (Sicro)
- Corrigé: De nombreux problèmes de documentation (Andre et Mesa)
- Corrigé: Plusieurs bogues liés au compilateur et aux bibliothèques

16Août 2019

PureBasic 5.71 LTS

Corrigé: Certains bogues liés au compilateur et aux bibliothèques

2Janvier 2019

PureBasic 5.70 LTS

- Ajouté: Nouveau sous-système QT pour Linux
- Ajouté: HTTPRequest(), HTTPRequestMemory() (sponsorisé par c-wayne)
- Ajouté: UseMySQLDatabase() (sponsorisé par Paul)
- Ajouté: Support DPI pour Windows
- Ajouté: Constantes #PS, #NPS, #PS$ et #NPS$ (Caractère séparateur de chemin, dépendant du système d'exploitation)
- Ajouté: Constante #PB_JSON_NoClear pour ExtractJSONStructure
- Ajouté: Constante mode de remplissage #PB_Path_Winding pour VectorDrawing
- Ajouté: DesktopResolutionX(), DesktopResolutionY(), DesktopScaledX(), DesktopScaledY(), DesktopUnscaledX(), DesktopUnscaledY()
- Ajouté: L'option 'Mode' pour OpenConsole()
- Ajouté: MaterialTextureAliases()
- Ajouté: Constantes #PB_Vehicle_IsInContact, #PB_Vehicle_ContactPointX/Y/Z pour GetVehicleAttribute()
- Ajouté: Constantes #PB_Vehicle_ContactPointNormalX/Y/Z pour GetVehicleAttribute()
- Ajouté: Constantes #PB_Vehicle_CurrentSpeedKmHour, #PB_Vehicle_ForwardVectorX/Y/Z pour GetVehicleAttribute()
- Ajouté: Constantes #PB_Material_ProjectiveTexturing pour SetMaterialAttribute()
- Ajouté: ParticleScaleRate(), ParticleAngle(), CameraReflection()
- Ajouté: BuildMeshLod(), MeshVertex(), CreateDataMesh()
- Ajouté: EntityDirection(), EntityDirectionX(), EntityDirectionY(), EntityDirectionZ()
- Ajouté: Constantes #PB_Local/#PB_Parent/#PB_World pour ApplyEntityForce(), ApplyEntityImpulse(), ApplyEntityTorque() et ApplyEntityTorqueImpulse()

- Corrigé: Certains bogues liés au compilateur et aux bibliothèques

7Janvier 2018

PureBasic 5.46 LTS

Corrigé: Certains bogues liés au compilateur et aux bibliothèques

12Septembre 2017

PureBasic 5.61

- Corrigé: Le problème de la touchbar sur le nouveau MacBook Air et le problème du DebugOutput sur Windows.
- Corrigé: Correction de beaucoup de bugs dont les prototypes et le retour de quad, le plantage de MacBook Pro, et l'optionGadget sous Windows supporte maintenant le clavier.

- Mise à jour: Le package MacOS X est maintenant autonome pour être conforme à OSX Sierra.
- Mise à jour: Cette version est signée avec de nouveaux certificats pour éviter les faux positifs des antivirus.

10Août 2017

PureBasic 5.45 LTS

- Corrigé: Le problème de la touchbar sur le nouveau MacBook Air et le problème du DebugOutput sur Windows.
- Corrigé: Correction de beaucoup de bugs dont les prototypes et le retour de quad, le plantage de MacBook Pro, et l'optionGadget sous Windows supporte maintenant le clavier.

- Mise à jour: Le package MacOS X est maintenant autonome pour être conforme à OSX Sierra.
- Mise à jour: Cette version est signée avec de nouveaux certificats pour éviter les faux positifs des antivirus.

2Mars 2017

PureBasic 5.60

- Ajouté: Support du GIF (Décodeur seulement avec UseGIFImageDecoder())
- Ajouté: Support des grandes icônes et du texte dans les barres d'outils
- Ajouté: SetImageFrame(), GetImageFrame(), ImageFrameCount()
- Ajouté: AddImageFrame(), RemoveImageFrame()
- Ajouté: SetImageFrameDelay(), GetImageFrameDelay()
- Ajouté: Support de UserAgent pour ReceiveHTTPMemory(), ReceiveHTTPFile() et GetHTTPHeader()
- Ajouté: Support de #PB_Http_NoRedirect pour GetHTTPHeader()
- Ajouté: Support du format e-mail de type 'Joe Doe ' pour SendMail()
- Ajouté: Support de proxy en http avec HTTPProxy()
- Ajouté: Support du niveau de compression pour CreatePack() et CompressMemory()
- Ajouté: ParticleAcceleration(), ParticleColorFader(), ParticleEmitterAngle()
- Ajouté: Support de #PB_Material_AlphaReject, #PB_Material_TAM et #PB_Material_EnvironmentMap pour SetMaterialAttribute()
- Ajouté: Nouveau paramètre optionnel 'Couche' pour SetMaterialAttribute()
- Ajouté: Nouveaux modes d'orientation pour SetNodeAnimationKeyFrameRotation() et AddStaticGeometryEntity()
- Ajouté: GetUserDirectory() pour obtenir les répertoires spécifiques de l'utilisateur
- Ajouté: Plus de flexibilité pour Base64Decoder() pour manipuler l'entrée non 'rembourrée'
- Ajouté: Base64Encoder() et Base64Decoder() prennent une chaîne de caractère en entrée/sortie, pour faciliter l'utilisation
- Ajouté: Constantes de couleur comme @#Black, @#Blue, etc pour tous les OS
- Ajouté: Event() pour obtenir l'évènement en cours (principalement utile dans une callback)
- Ajouté: Support de #PB_Canvas_Container pour avoir un comportement de conteneur pour le CanvasGadget()
- Ajouté: Support de #PB_EventType_Resize pour le PanelGadget(), le ContainerGadget(), le CanvasGadget() et le ScrollAreaGadget()
- Ajouté: Support de #PB_ListIcon_ColumnCount pour GetGadgetAttribute() du ListIconGadget() pour obtenir le nombre de colonnes
- Ajouté: Support de #PB_All pour RemoveGadgetColumn() pour supprimer toutes les colonnes d'un coup
- Ajouté: (IDE) Les modèles sont maintenant enregistrés lorsqu'ils sont créés pour empêcher leur perte quand l'IDE n'est pas correctement fermé
- Ajouté: (IDE) Déplie automatiquement une procédure quand on clic dessus
- Ajouté: (IDE) Nouveau menu contextuel spécifique pour l'onglet fichier afin de faciliter la gestion des fichiers sources
- Ajouté: (IDE) Recherche: précédent (recherche inversée)

- Modifié: Base64Encoder() renommé en Base64EncoderBuffer()
- Modifié: Base64Decoder() renommé en Base64DecoderBuffer()
- Modifié: A été supprimé la syntaxe 'define.b' qui permet de changer le type par défaut, car cela peut créer des bogues difficiles à trouver

19Décembre 2016

PureBasic 5.51

- Mise à jour: La version MacOS X a été remaniée pour être compatible avec OSX Sierra

- Corrigé: Certains bogues liés au compilateur et aux bibliothèques

19Novembre 2016

PureBasic 5.44 LTS

- Mise à jour: Corrections de bogues.
Corrige les problèmes importants de Linux et apporte une nouvelle façon d'installer l'application sur OSX pour se conformer à OSX Sierra. Maintenant tout le répertoire purebasic est incorporé dans PureBasic.app, donc si vous avez besoin d'utiliser la ligne de commande, vous devrez ajouter le chemin PureBasic.app/MacOS/Content/Resources/compiler au PATH.

25Juillet 2016

PureBasic 5.43 LTS

- Mise à jour: La nouvelle version LTS inclut les derniers correctifs de la version 5.50.


25Juillet 2016

PureBasic 5.50

- Ajouté: Bibliothèque 3D Vehicle (Véhicule) pour créer des véhicules avec une ou plusieurs roues
- Ajouté: PickBody() pour manipuler aisément les objets 3D avec la souris
- Ajouté: CreateTube(), CreateTorus(), CreateIcoSphere() et CreateCapsule()
- Ajouté: #PB_Entity_PlaneBody et #PB_Entity_ConeBody
- Ajouté: GenericJoint() pour créer n'importe quel type de joint
- Ajouté: Support de la taille de boundingbox pour CreateEntityBody()
- Ajouté: RegisterFontFile() pour pouvoir utiliser une police de caractère personalisée
- Ajouté: PathLength(), PathPointX(), PathPointY(), PathPointAngle()
- Ajouté: PathBoundsX(), PathBoundsY(), PathBoundsWidth(), PathBoundsHeight() pour récupérer les limites d'un chemin
- Ajouté: PathSegments(), AddPathSegments() pour récupérer ou spécifier un chemin au format texte
- Ajouté: DebuggerError(), DebuggerWarning(), CloseDebugOutput()
- Ajouté: ResetStructure() qui vide et réinitialise un zone de mémoire structurée
- Ajouté: UTF8() et Ascii() pour créer facilement une chaine UTF8 et Ascii (qui devra être libérée à l'aide de FreeMemory())
- Ajouté: FormatNumber() pour facilement formatter des nombres au format monétaire
- Ajouté: #PB_MessageRequester_Info, #PB_MessageRequester_Error et #PB_MessageRequester_Warning pour MessageRequester()

- Mise à jour: SQLite en version 3.13.0

- Modifié: ParticleVelocity() pour supporter la vélocité actuelle.

- Supprimé: le mode ASCII pour la manipulation interne des chaines de caractères, PureBasic est maintenant uniquement unicode.

1Mars 2016

PureBasic 5.42 LTS

- Supprimé: L'option 'Générer la boucle d'évènement' dans Preferences/Form

- Corrigé: Quelques bugs du compilateur et des bibliothèques liées

23Décembre 2015

PureBasic 5.41 LTS

- Ajouté: Support de 'auto' pour les options InnerWidth/Height du gadget ScrollArea de la bibliothèque dialog

- Mise à jour: Linux, la lib d'impression utilise GtkPrint au lieu de GnomePrint

- Corrigé: Orthographe révisé dans l'aide française par 'GG'
- Corrigé: Quelques bugs du compilateur et des bibliothèques liées

16Octobre 2015

PureBasic 5.40 LTS

- Ajouté: Nouvelle bibliothèque Vectorielle 2D
- Ajouté: Nouvelle bibliothèque CGI supportant le CGI standard et le FastCGI
- Ajouté: Echappement des chaînes de caractères en utilisant l'opérateur '~' (ex: a$ = ~"Salut\nle Monde\n")
- Ajouté: Fonctions EscapeString()/UnescapeString() permettant l'échappement sur n'importe quelle chaîne (variables etc.)
- Ajouté: EnumerationBinary pour créer une énumération binaire automatique
- Ajouté: La liaison des paramètres de base de données pour faciliter la construction de requêtes
- Ajouté: SetDatabaseBlob(), SetDatabaseFloat(), SetDatabaseDouble(), SetDatabaseLong()
- Ajouté: SetDatabaseQuad(), SetDatabaseString(), SetDatabaseNull()
- Ajouté: Support de SHA2 et SHA3 (224/256/384/512-bit) par la bibliothèque Cipher
- Ajouté: StringFingerprint()
- Ajouté: Support de CRC32 support par StartFingerprint()
- Ajouté: ReceiveHTTPMemory(), IsJoint()
- Ajouté: RefreshDialog() recalcule les dimensions après un changement
- Ajouté: Attribut XML 'group' dans 'option' de dialog gadget, pour spécifier explicitement un groupe
- Ajouté: HTTPS et simple auth pour ReceiveHTTPFile() et GetHTTPHeaders()
- Ajouté: Auto redirection pour ReceiveHTTPFile() et ReceiveHTTPMemory()
- Ajouté: Mode asynchrone pour ReceiveHTTPFile() et ReceiveHTTPMemory()
- Ajouté: HTTPProgress(), AbortHTTP() et FinishHTTP() pour contrôler le mode async
- Ajouté: HTTPS/TLS pour SendMail()
- Ajouté: FlushPreferenceBuffers()
- Ajouté: CopyDebugOutput() pour copier la sortie de debug vers le presse-papiers
- Ajouté: Création d'archive 7z
- Ajouté: Support des archives tar (gz et bzip2) pour leur création et leur décompression
- Ajouté: Chemin complet dans le menu fichiers récents de l'IDE
- Ajouté: #PB_ProgressBar_Unknown pour SetGadgetState() pour indiquer une progression inconnue
- Ajouté: Support de #PB_UTF8/Ascii/Unicode pour ReadCharacter() et WriteCharacter()
- Ajouté: Support de #PB_UTF8 pour URLEncoder() et URLDecoder (mode par défaut maintenant)
- Ajouté: Windows 8.1/10 et OS X 10.9/10/11 pour OSVersion()
- Ajouté: Constantes #PB_Editor_xxx lors de l'utilisation de 'Version' sous Windows
- Ajouté: Support de #PB_Program_Ascii/Unicode/UTF8 pour RunProgram()
- Ajouté: Style Linux/OSX des options de la ligne de commande du compilateur sous Windows pour faciliter le portage multiplateforme
- Ajouté: Support de #PB_File_SharedWrite pour ReadFile() et CreateFile()
- Ajouté: 'IMPORTLIST' dans l'interface du compilateur pour renvoyer toutes les fonctions prédéfinies de l'API
- Ajouté: Constante #Null$, chaîne de caractères spéciale pour affecter une vraie valeur Null à une chaîne (pour la libérer complètement). Peut être utilisée aussi pour les fonctions de l'API qui acceptent parfois NULL à la place d'une adresse de chaîne.
- Ajouté: Constante #Empty$
- Ajouté: #PB_ByteLength avec MemoryStringLength()
- Ajouté: #PB_Ascii, #PB_UTF8 et #PB_Unicode avec Create/Open/ReadFile() pour mettre un mode write/read par défaut
- Ajouté: #PB_ByteLength avec PeekS() et #PB_UTF8 (seulement)
- Ajouté: CreateCone(), CameraCustomParameter(), ResizeCamera()
- Ajouté: #PB_Entity_DisableContactResponse pour SetEntityAttribute()
- Ajouté: #PB_Entity_ConeBody, #PB_Entity_PlaneBody
- Ajouté: FreeEntityBody(), FreeTerrainBody()
- Ajouté: ApplyEntityTorque(), ApplyEntityTorqueImpulse()
- Ajouté: Paramètres 'CollisionGroup' et 'CollisionMask' pour RayCollide()
- Ajouté: Page d'aide intitulées 'Migration xxxx', pour connaître les différences entre deux versions de PureBasic et aider à la migration entre ces deux versions.
- Ajouté: User guide en allemand (merci à Andre et Vera)

- Mise à jour: Linux, la lib d'impréssion utilise GtkPrint au lieu de GnomePrint
- Mise à jour: Windows, compilateur VC++ 2013 pour une meilleur génération du code
- Mise à jour: SQLite version 3.8.10.2

- Corrigé: Support des archives Zip
- Corrigé: Envoie de mail et requête http
- Corrigé: 'CONSTANTLIST' dans l'interface du compilateur , les constantes string renvoyées sont échappées.

- Modifié: La version par défaut de GTK est maintenant GTK3 sur Linux. Un sous-système gtk2 a été ajouté pour une rétro compatibilité.
- Modifié: Le format de strings par défaut pour RunProgram(), read/writestring est Unicode
- Modifié: La lib Cipher est rendue modulaire (maintenant UseMD5Fingerprint() et autres)
- Modifié: ExamineFingerprint() en StartFingerprint()
- Modifié: NextFingerprint() en AddFingerprintBuffer()
- Modifié: EntityPhysicBody() en CreateEntityBody()
- Modifié: TerrainPhysicBody() en CreateTerrainBody()
- Modifié: Le paramètre 'Asynchronous' de SendMail() remplacé par #PB_Mail_Asynchronous.
- Modifié: Le DLLImporter supprimé et les fichiers .pbl aussi. Nouveaux fichiers 'import library' créés en utilisant l'option '/IMPORT' de pbcompiler.

- Supprimé: SetWindowCallback() pour OS X. Utilisez BindEvent() à la place.
- Supprimé: RemovePackFile()
- Supprimé: #PB_Packer_CompressedSize pour les archives ZIP et 7z dans PackerEntrySize()
- Supprimé: AvailableScreenMemory()

27Octobre 2014

PureBasic 5.24 LTS

- Corrigé: La nouvelle version LTS inclut les derniers correctifs de la version 5.31.

27Octobre 2014

PureBasic 5.31

- Corrigé: Plusieurs bugs liés au compilateur et aux bibliothèques

25Juillet 2014

PureBasic 5.23 LTS

- Corrigé: La nouvelle version LTS inclut la plupart des derniers correctifs de la version 5.30 (à l'exclusion du nouvel IDE en mode Unicode).


23Juillet 2014

PureBasic 5.30

- Ajouté: Nouvel outil 'Note' dans l'IDE pour créer et consulter une liste de choses à faire (ToDo) ou des commentaires
- Ajouté: Bibliothèque JSON
- Ajouté: ParseXML(), ComposeXML(), InsertXMLArray/List/Map/Structure(), ExtractXMLArray/List/Map/Structure()
- Ajouté: Nouveau gadget OpenGLGadget() avec le support des commandes et constantes OpenGL natives sous Windows, OSX et Linux
- Ajouté: ExamineRegularExpression() et les commandes associées pour traiter les correspondances regex étape par étape (avec le support des groupes)
- Ajouté: ClipOutput(), UnclipOutput(), SetOrigin(), GetOriginX(), GetOriginY()
- Ajouté: GetWindowData(), SetWindowData()
- Ajouté: AllocateStructure(), FreeStructure()
- Ajouté: #PB_Default dans WindowsBounds() pour réinitialiser les tailles min/max
- Ajouté: Paramètre 'Format' dans Read/WriteProgramString(), WriteProgramStringN() et ReadProgramError()
- Ajouté: Option compilateur /PREPROCESS permet de créer un grand code source unique avec toutes les macros, les compilerif et les inclusions de fichier en clair. Peut être combiné avec /COMMENTED pour inclure les commentaires
- Ajouté: Paramètre optionnel '#Server' dans NetworkServerEvent() pour vérifier les événements sur un serveur spécifique
- Ajouté: Option #PB_String_NoZero favec PokeS() pour éviter l'écriture du caractère nul de fin de ligne
- Ajouté: Support de #PB_Enumeration avec Defined()
- Ajouté: #PB_Explorer_HiddenFiles pour afficher les fichiers cachés dans les gadgets explorateur de fichiers
- Ajouté: Paramètre optionnel 'Type' avec CreateBillboardGroup()
- Ajouté: BillboardGroupCommonDirection(), BillboardGroupCommonUpVector()
- Ajouté: #PB_Entity_MinVelocity et #PB_Entity_ForceVelocity avec SetEntityAttribute()
- Ajouté: SetMaterialAttribute() avec les constantes #PB_Material_DepthCheck et #PB_Material_DepthWrite
- Ajouté: Support de #PB_Material_DepthCheck avec GetMaterialAttribute().
- Ajouté: Engine3DStatus() avec ces constantes: #PB_Engine3D_NbRenderedTriangles, #PB_Engine3D_NbRenderedBatches, #PB_Engine3D_CurrentFPS, #PB_Engine3D_MaximumFPS, #PB_Engine3D_MinimumFPS, #PB_Engine3D_AverageFPS, #PB_Engine3D_ResetFPS
- Ajouté: Support de #PB_Absolute / #PB_Relative pour CameraDirectionX/Y/Z(), CameraX/Y/Z(), EntityX/Y/Z(), LightX/Y/Z(), LightDirectionX/Y/Z(), BillBoardGroupX/Y/Z(), NodeX/Y/Z(), ParticleEmitterX/Y/Z() et FetchOrientation()
- Ajouté: ParticleSpeedFactor(), DisableParticleEmitter()
- Ajouté: GetEntityCollisionMask(), GetEntityCollisionGroup(), SetEntityCollisionFilter()
- Ajouté: WaterHeight(), FreeWater()
- Ajouté: IDE entièrement unicode
- Ajouté: Surlignement des occurences d'un mot sélectionné dans l'IDE
- Ajouté: Mode d'édition de texte 'brut' pour modifier les fichiers non-PB dans l'IDE
- Ajouté: Raccourcis Ctrl+E et Ctrl+Shift+E pour aligner/décaler les commentaires dans un bloc de code sélectionné
- Ajouté: Raccourcis Ctrl+M et Ctrl+Shift+M pour sélectionner le bloc de code courant (une pression répétée, sélectionne le bloc de code suivant)
- Ajouté: PopupMenu journal d'erreur de l'IDE pour un effacer/copier
- Ajouté: Options %HOME et %PROJECT pour l'outil ligne de commande de l'IDE, ajout de PB_TOOL_Project pour les variables d'environnement
- Ajouté: Indentation du code automatique peut aligner des commentaires à la fin des lignes de code dans l'IDE
- Ajouté: Saisie semi-automatique qui se souvient de la dernière saisie des structures/Modules
- Ajouté: L'affichage des variables est sensible au contexte module/procédure dans le débogueur

- Modifié: FormatXML() avec #PB_XML_ReFormat n' ajoute plus de saut de ligne à l'intérieur des éléments d'une seule ligne pour une sortie plus lisible
- Modifié: DeleteElement() renvoie maintenant le pointeur de données vers le nouvel élément courant (le cas échéant)
- Modifié: SetXMLAttribute() accepte les caractères de saut de ligne dans les attributs (sera encodé comme des entités de caractères)
- Modifié: Ajout d'un paramètre 'name' obligatoire CreateXMLNode() car certains parser en ont besoin au moment de la création d'un noeud
- Modifié: La façon dont (X)IncludeFile et IncludeBinary fonctionnent: C'est maintenant par rapport au fichier qui contient ces déclarations (ce qui est plus facile à utiliser)
- Modifié: #PB_Event_SizeWindow et #PB_Event_MoveWindow ne sont plus en temps réel sur Windows, utilisez BindEvent() pour obtenir une véritable mise à jour en temps réel. Cela devrait éviter le désagréable scintillement lors du redimensionnement en temps réel sous Windows
- Modifié: Les étiquettes (label) DataSection à l'intérieur d'une Procedure sont désormais locales
- Modifié: Les préfixes ASM des étiquettes locales passent de 'l_' à 'll_' ('ll' pour le label local), afin d'éviter tout conflit avec les étiquettes du code principal.
- Modifié: La constante #PB_LinkedList a été renommée en #PB_List
- Modifié: Suppression du paramètre 'Billboard' dans AddBillboard() car il n'a pas été utilisé. Maintenant renvoie le nouvel indice
- Modifié: Mise à jour Scintilla version 3.4.2

- Supprimé: MaterialDepthWrite() remplacé par SetMaterialAttribute()
- Supprimé: CountRenderedTriangles() et Engine3DFrameRate(), remplacés par Engine3DStatus()

17Mars 2014

PureBasic 5.22 LTS

- Corrigé: Plusieurs bugs liés au compilateur et aux bibliothèques

20Novembre 2013

PureBasic 5.21 LTS

- Modifié: 'REQUEST' en 'AUTO' pour le calcul de la taille minimum automatique d'un splitter dans un Dialog (l'ancienne syntaxe est supportée)

- Corrigé: Plusieurs bugs liés au compilateur et aux bibliothèques

17Septembre 2013

PureBasic 5.20 LTS

- Ajouté: Le compilateur supporte les Modules
- Ajouté: Bibliothèque Runtime
- Ajouté: Bibliothèque Dialog
- Ajouté: Sous-système GTK3 pour Linux
- Ajouté: Sous-système DirectX11 pour Windows (ne supporte pas le moteur 3D pour l'instant)
- Ajouté: JoystickName(), JoystickZ()
- Ajouté: #PB_Relative optionel avec JoystickX/Y/Z() pour avoir des valeurs plus précises
- Ajouté: Numéro de pad facultatif avec JoystickX/Y/Z() pour utiliser les manettes plus complexes
- Ajouté: ZoomSprite() accepte maintenant #PB_Default dans Largeur/Hauteur pour rétablir la taille initiale du sprite
- Ajouté: Les paramètres 'Couleur' et 'Intensité' avec DisplayTransparentSprite()
- Ajouté: ClipSprite() supporte #PB_Default comme paramètre individuel
- Ajouté: Option #PB_Sprite_PixelCollision pour CreateSprite(), LoadSprite() pour permettre la collision de pixels
- Ajouté: Support Zoom pour SpritePixelCollision() et SpriteCollision()
- Ajouté: Support OpenGL pour SpriteBlending() (Attention, il 'wrappe' le mode OpenGL, donc il peut se comporter différemment de DirectX)
- Ajouté: Support 32-bit pour SpriteOutput() avec DX et OpenGL
- Ajouté: #PB_EventType_Focus et #PB_EventType_LostFocus avec EditorGadget()
- Ajouté: #PB_EventType_RightClick avec ListViewGadget()
- Ajouté: #PB_EventType_Change avec PanelGadget() et DateGadget()
- Ajouté: #PB_Prototype et #PB_Module avec Defined()
- Ajouté: Toutes les fonctions Init() peuvent être appelées plus d'une fois sans problème (comme InitSound(), InitNetwork() etc.)
- Ajouté: #PB_FileSystem_Force avec DeleteFile()
- Ajouté: #PB_FileSystem_NoExtension avec GetFilePart()
- Ajouté: Paramètre de couleur d'arrière-plan avec CreateImage()
- Ajouté: #PB_Entity_NbSubEntities avec GetEntityAttribute()
- Ajouté: MeshIndexCount(), SetRenderQueue(), FetchEntityMaterial(), GetMeshData(), SetMeshData()
- Ajouté: CPUName(), Un/BindEvent(), Un/BindGadgetEvent(), Un/BindMenuEvent()
- Ajouté: Emplacement précédent est affiché lors d'une double déclaration d'une structure, une interface , prototype ou d'une procédure.
- Ajouté: 2 fichiers licence pour ajouter facilement les informations nécessaires lors de la livraison de programmes PB (voir la documentation référence)
- Ajouté: Bool() est maintenant évaluée à la compilation si l'expression entière est constante
- Ajouté: Vérification du Debugger pour SortStructuredList() et SortList() pour s'assurer que la liste spécifiée est du type correct
- Ajouté: Exécutables Linux créés sur les nouvelles distributions doivent encore fonctionner sur les vieux linux.
- Ajouté: #PB_EventType_FirstCustomValue à utiliser avec PostEvent()
- Ajouté: CameraFollow(), ExamineWorldCollisions(), NextWorldCollision(), FirstWorldCollisionEntity(), SecondWorldCollisionEntity()
- Ajouté: WorldCollisionContact(), WorldCollisionNormal(), WorldCollisionAppliedImpulse()
- Ajouté: BuildMeshTangents(), MeshVertexTangent(), CopyTexture()
- Ajouté: Pitch(), Roll(), Yaw()
- Ajouté: Support de #PB_Gadget_RequiredSize avec GadgetWidth/Height()
- Ajouté: #PB_Entity_LinearSleeping, #PB_Entity_AngularSleeping, #PB_Entity_DeactivationTime, #PB_Entity_IsActive,
- Ajouté: #PB_Entity_AngularVelocityX/Y/Z, #PB_Entity_ScaleX/Y/Z, #PB_Entity_AngularVelocity, #PB_Entity_HasContactResponse avec Get/SetEntityAttribute()

- Optimisé: Routines de collisions de pixel de sprite beaucoup plus rapides avec DirectX
- Optimisé: Plus d'optimisations de type 'peephole' sur la sortie de l'assembleur x64
- Optimisé: Compilation plus rapide avec les gros programmes
- Optimisé: La construction de Serveurs Linux améliorée, maintenant utilisation d'un meilleur GCC qui produit un meilleur code.

- Modifié: renommé GetEntityMaterial() en FetchEntityMaterial()
- Modifié: renommé ZoomSprite3D() en ZoomSprite()
- Modifié: renommé TransformSprite3D() en TransformSprite()
- Modifié: renommé RotateSprite3D() en RotateSprite()
- Modifié: renommé Sprite3DQuality() en SpriteQuality()
- Modifié: renommé Sprite3DBlending() en SpriteBlending()
- Modifié: renommé la bibliothèque 'Module' en 'Music'
- Modifié: renommé Frame3DGadget() en FrameGadget()
- Modifié: renommé Frame3DGadget3D() en FrameGadget3D()
- Modifié: renommé #PB_Shorcut_Prior en #PB_Shorcut_PageUp et #PB_Shorcut_Next en #PB_Shorcut_PageDown
- Modifié: Constantes des plugins Packer renommé en #PB_PackerPlugin_XXX
- Modifié: RayCollide() renvoie désormais l'#Entity rencontrée.

- Mise à jour: WebGadget() n'a plus besoin de ATL.dll sous Windows
- Mise à jour: zlib 1.2.8
- Mise à jour: pqlib (PostgreSQL) 9.2.4
- Mise à jour: ziplib 0.11.1
- Mise à jour: Structure SCNotification de scintilla

- Supprimé: Le support de l'ActiveX Mozilla pour le WebGadget(), version trop ancienne (2005) sous Windows
- Supprimé: Bibliothèque Sprite3D (fusionné avec la bibliothèque Sprite)
- Supprimé: Bibliothèque Palette (obsolète)
- Supprimé: UnPackMemory() -> remplacé par UnCompressMemory()
- Supprimé: RenderMovieFrame() et #PB_Movie_Rendered (obsolète)
- Supprimé: DisplayTranslucentSprite() -> remplacé par le paramètre 'Alpha' avec DisplayTransparentSprite()
- Supprimé: DisplaySolidSprite() -> remplacé par le paramètre 'Couleur' avec DisplayTransparentSprite()
- Supprimé: DisplayRGBFilter() -> peut être remplacé par un sprite zoomé avec une couleur
- Supprimé: DisplayShadowSprite() -> peut être remplacé par DisplayTransparentSprite() avec une couleur
- Supprimé: StartSpecialFX(), StopSpecialFX(), DisplayAlphaSprite(), ChangeAlphaIntensity(), UseBuffer()
- Supprimé: Sous-système Carbon d'OS X, il était trop vieux pour être utilisé avec les nouvelles bibliothèques

- Corrigé: De nombreux bugs

19Mars 2013

PureBasic 5.11

- Corrigé: Bugs du compilateur et des bibliothèques

14Février 2013

PureBasic 5.10

- Ajouté: Le Concepteur de fenêtre est désormais intégré à l'IDE !
- Ajouté: Bibliothèque compression/décompression entièrement retravaillée avec ZIP, BriefLZ, 7z (décompression seulement), LZMA et JCALG1 (Windows x86 et UncompressMemory()seulement). JCALG1 support abandonné. Formats archives pour BriefLZ ont été modifiés.
- Ajouté: Support IPv6 de la bibliothèque réseau. Mise à jour IPString(), MakeIPAddress(), GetClientIP(), IPAddressField(), ExamineIPAddress() et NextIPAddress().Ajout option #PB_Network_IPv6 pour OpenConnection et CreateServer(). Added FreeIP() pour v6 IP
- Ajouté: Bibliothèque System: ComputerName(), UserName(), MemoryStatus(), CountCPUs()
- Ajouté: Retour à la ligne dans l'IDE en utilisant les opérandes: ',' '|' '+' And Or Xor
- Ajouté: les comparaisons de chaînes constantes sont désormais traitées lors de la compilation, ce qui permet une utilisation dans CompilerIf par exemple.
- Ajouté: CocoaMessage() pour OS X
- Ajouté: ' Vérification de la syntaxe ' et compilation du code sans créer ni lancer l' exécutable (/CHECK)
- Ajouté: Paramètre Array/List/Map dans les méthodes des Interfaces
- Ajouté: Support des array/list/map dynamique pour structure/interface dans les residents.
- Ajouté: Option #PB_Character, #PB_Unicode, #PB_Ascii et #PB_Integer avec FillMemory()
- Ajouté: Support de #PB_RegularExpression_NoCase avec CreateRegularExpression()
- Ajouté: EncodeImage() avec PNG, JPEG et JPEG2000
- Ajouté: Support de #PB_Memory_NoClear avec Re/AllocateMemory()
- Ajouté: ImageFormat()
- Ajouté: #PB_Editor_WordWrap avec EditorGadget()
- Ajouté: Comparaison multicaractères dans StringField()
- Ajouté: Paramètre NbOccurences pour ReplaceString()
- Ajouté: PostEvent(), EventData()
- Ajouté: Valeur de retour à SetCurrentDirectory()
- Ajouté: Paramètre #PB_String_NoCase pour FindString()
- Ajouté: Options #PB_Preference_NoSpace et #PB_Preference_GroupSeparator pour OpenPreferences() et CreatePreferences()
- Ajouté: DatabaseColumnIndex()
- Ajouté: #PB_Cipher_URL et #PB_Cipher_NoPadding pour Base64Encoder(), ajouté la compatibilité URL pour Base64Decoder()
- Ajouté: SetGadgetItemImage() pour tous les gadgets qui supportent les images dans les éléments (items)
- Ajouté: Option #PB_Gadget_ScreenCoordinate et #PB_Gadget_WindowCoordinate pour GadgetX/Y()
- Ajouté: Option #PB_File_SharedRead (pas d'effet sur Linux/OSX), #PB_File_SharedWrite (pas d'effet sur Linux/OSX), #PB_File_Append et #PB_File_NoBuffering pour les fichiers
- Ajouté: Événements #PB_Event_RightClick, #PB_Event_LeftClick et #PB_Event_LeftDoubleClick
- Ajouté: Paramètre titre facultatif dans OpenConsole()
- Ajouté: #PB_languageanguage pour ScrollAreaGadget()
- Ajouté: #PB_Ignore pour ResizeImage()
- Ajouté: Lier une adresse IP spécifique à CreateNetworkServer()
- Ajouté: Paramètre Timeout, LocalIP$ et LocalPort à OpenNetworkConnection()
- Ajouté: #PB_NetworkEvent_Disconnect pour NetworkClientEvent()
- Ajouté: #PB_Unicode, #PB_Ascii et #PB_UTF8 pour SendNetworkString()
- Ajouté: #PB_String_MaximumLength attribute pour StringGadget()
- Ajouté: #PB_Event_DeactivateWindow
- Ajouté: #PB_EventType_Change pour EditorGadget()
- Ajouté: Option #PB_Relative/#PB_Absolute pour FileSeek()
- Ajouté: Paramètres 'Offset' et 'Length' pour SHA1/MD5/CRC32FileFingerprint()
- Ajouté: GetSoundPosition(), SetSoundPosition(), SoundLength(), PauseSound(), ResumeSound(), SoundStatus(), GetSoundFrequency()
- Ajouté: #PB_All pour SoundVolume()
- Ajouté: SetGadgetItemState() pour ExplorerListGadget()
- Ajouté: InputRequester ajout fermeture
- Ajouté: InputRequester() ajout option #PB_InputRequester_Password
- Ajouté: Random() ajout la valeur mininmum optionnel
- Ajouté: SetGadgetItemText() pour ListIconGadget(): prise en compte de chr(10) comme dans AddGadgetItem()
- Ajouté: OpenWindowedScreen() les paramètres de redimensionnement sont optionnels maintenant
- Ajouté: ScreenWidth(), Scree(), ScrNewsBloeenDepth()
- Ajouté: SMTP AUTH dans la bibliothèque mail
- Ajouté: Paramètres optionnels à RemoveMailRecipient(),la capacité de supprimer tous les destinataires
- Ajouté: ReadString(#Fichier [, Options [, Longueur]]) : support longueur et #PB_File_IgnoreEOL
- Ajouté: #PB_Window_InnerCoordinate avec WindowX/Y()
- Ajouté: #PB_Window_FrameCoordinate avec WindowWidth()/Height()
- Ajouté: #PB_Image_Raised avec ImageGadget()
- Ajouté: FreeXXX(#PB_All) pour toutes les fonctions de libération de la mémoire
- Ajouté: Constantes du Compilateur: #PB_Compiler_LineNumbering, #PB_Compiler_InlineAssembly, #PB_Compilre_EnableExplicit
- Ajouté: Constantes du Compilateur: #PB_Compiler_ExecutableFormat (avec #PB_Compiler_DLL, #PB_Compiler_Console, #PB_Compiler_Executable)
- Ajouté: Constantes du Compilateur: #PB_Compiler_IsIncludeFile, #PB_Compiler_IsMainFile, #PB_Compiler_Filename (nom de fichier sans chemin)
- Ajouté: Opérateur du compilateur Bool (). Les opérations booléennes sont maintenant interdites sans Bool ().
- Ajouté: MacroExpandedCount mot-clé
- Ajouté: UndefineMacro mot-clé
- Ajouté: Maintenant XIncludeFile prend également en compte le fichier principal, afin d'éviter la double inclusion si le fichier principal est inclus dans un autre fichier
- Ajouté: TypeOf() pour variable, structure et les champs
- Ajouté: Defined(Label, #PB_Label)
- Ajouté: CompilerElseIf
- Ajouté: Labels locaux
- Ajouté: Define se comporte comme Global et accepte Dim (), NewMap () et NewList () sur la même ligne
- Ajouté: Mot-clé 'Align' pour structure, avec #PB_Structure_AlignC qui imite les structures C
- Ajouté: Autocast les valeurs numériques lorsque des chaînes sont impliquées, ce qui permet de concaténer des chaînes et des nombres dans les constantes
- Ajouté: 'CONSTANTLIST' pour l'interface du compilateur
- Ajouté: Edition et enregistrement de l'historique de l'EDI pour récupérer les codes précédents et permettre la récupération après incident (voir Fichier > Session History)
- Ajouté: AffectedDatabaseRows(), CheckDatabaseNull() dans la bibliothèque database
- Ajouté: Nouvelle bibliothèque Text3D
- Ajouté: 'Mode ' optionnel pour toutes les fonctions Yaw/Roll/Pitch()
- Ajouté: 'Type' et 'Mode' optionnelà CreateMesh()
- Ajouté: RayCast(), MouseRayCast(), NormalX(), NormalY(), NormalZ()
- Ajouté: UpdateMesh(), EnableManualEntityBoneControl(), MoveEntityBone(), RotateEntityBone(), MeshIndex()
- Ajouté: 'Type' optionnel à AddSubMesh()
- Ajouté: Paramètre 'Type' à FinishMesh()
- Ajouté: ScaleNode(), GetMaterialColor(), GetMaterialAttribute(), ConvertLocalToWorldPosition(), ConvertWorldToLocalPosition()
- Ajouté: MaterialCullingMode(), FetchOrientation(), SetOrientation(), GetX(), GetY(), GetZ(), GetW(), GetLightColor()
- Ajouté: AttachEntityObject(): nom de l'OS peut être vide, si l'objet est ajouté directement à l'entité

- Modifié: Renommé SoundFrequency() à SetSoundFrequency()
- Modifié: Renommé AddMeshVertex() à MeshVertexPosition()
- Modifié: Renommé LightColor() to SetLightColor()
- Modifié: Supprimé tous les MaterialXXXXColor() remplacé par SetMaterialColor()
- Modifié: Supprimé tous les XXXXLocate() remplacé par l'option #PB_Absolute pour les commandes MoveXXXX()
- Modifié: Supprimé ResizeEntity(), remplacé par l'option #PB_Absolute pour la commande ScaleEntity(), fait également pour ScaleNode() et ScaleText3D()
- Modifié: Remplacé #PB_Sort_ par #PB_ afin d'éviter d'éventuelles erreurs
- Modifié: Interdire type natif pour les pointeurs
- Modifié: StrF/D(),les zéros de fin sont automatiquement supprimés si pas de décimales spécifiées

- Mise à jour: OGRE a été mis à jour 1.8.2
- Mise à jour: SQLite a été mis à jour 3.7.15.2

- Supprimé: SendNetworkFile(), RecieveNetworkFile(), #PB_NetworkEvent_File pour éviter des trous de sécurité
- Supprimé: DirectX7 et NT4 subsystem sur Windows
- Supprimé: SDL subsystem sur Linux
- Supprimé: Version PowerPC pour OS X

- Optimisé: FindString() est jusqu'à deux fois plus rapide

- Corrigé: Beaucoup de bugs

5Novembre 2012

PureBasic 5.00

- Ajouté: Support de Cocoa sous OS X (maintenant le toolkit par défaut)
- Ajouté: version 64-bit de PureBasic pour OS X
- Ajouté: nouvel éditeur de fenêtres pour Windows, Linux et OS X
- Ajouté: sous-système 'Carbon' pour OS X PowerPC et x86
- Ajouté: support des tableaux multi-dimensionnels dans les structures
- Ajouté: InitScintilla() pour Linux et OS X
- Ajouté: #PB_Window_NoActivate pour OpenWindow() et HideWindow()
- Ajouté: support de #PB_EventType_RightClick pour ScintillaGadget()
- Ajouté: Section 'favoris' à l'outil 'explorateur' de l'IDE
- Ajouté: Evénement pour les outils personnels quand un nouveau source est créé (IDE)
- Ajouté: support de SetWindowCallback() sous OS X
- Ajouté: GTK sous linux est maintenant partiellement thread-safe (Linux)
- Ajouté: support de SpritePixelCollision() sous OS X et Linux

- Mise à jour: version de Scintilla (3.2.2)
- Mise à jour: version d'Expat (2.1.0)
- Mise à jour: version de libjpeg (8.0d)
- Mise à jour: version de libpng (1.5.12)
- Mise à jour: version d'OGRE (1.8.0), Bullet (2.80), Hydrax (0.5.4), CEGUI (0.7.7)
- Mise à jour: version de ModPlug (0.8.8.4)
- Mise à jour: utilisation de of VC++ 2010 au lieu de VC++ 2005 pour compiler les bibliothèques Windows (32-bit et 64-bit)
- Mise à jour: la documenation française a été largement complétée et améliorée par Jean R. VIALE.

- Modifié: SetModulePosition() est maintenant en millisecondes

- Corrigé: Nombreux bogues

3D Engine:
- Ajouté: bibliothèque EntityAnimation
- Ajouté: bibliothèque NodeAnimation
- Ajouté: bibliothèque VertexAnimation
- Ajouté: bibliothèque Spline
- Ajouté: support du 'CG Tookit' pour le moteur 3D (pour DirectX et OpenGL), avec InitEngine3D()
- Ajouté: paramètre 'Mode' optionnel à InitEngine3D()
- Ajouté: paramètre 'PickMask' optionnel à MousePick() et CreateEntity()
- Ajouté: RenderWorld() renvoie le temps écoulé depuis le dernier appel (en milliseconds)
- Ajouté: support du brouillard pour SkyBox() et SkyDome()
- Ajouté: 'Couleur' et paramètres 'TextureDimension' à WorldShadows()
- Ajouté: options #PB_World_UnderWater et #PB_World_WaterGodRays pour CreateWater()
- Ajouté: RayPick(), CameraViewWidth(), CameraViewHeight(), CameraViewX(), CameraViewY(), CameraDirection()
- Ajouté: CameraDirectionX/Y/Z(), SetCameraCorrigéYawAxis()

- Ajouté: paramètre 'IsActive' optionnel à CreateCamera()
- Ajouté: ScaleMaterial(), MaterialFog(), ReloadMaterial(), ResetMaterial(), NodeCorrigéYawAxis()
- Ajouté: paramètre 'TextureCoordinateIndex' optionnel à AddMaterialLayer()
- Ajouté: support de #PB_Material_Anisotropic à MaterialFilteringMode()
- Ajouté: support de #PB_Default comme #Matiere pour changer la configuration par défaut.
- Ajouté: #PB_Material_Wireframe, #PB_Material_Point et #PB_Material_Solid à MaterialShadingMode()
- Ajouté: SoundListenerLocate()
- Ajouté: paramètres 'DirectionX/Y/Z' optionnels à NodeLookAt()
- Ajouté: paramètre 'Mode' optionnel à MoveLight(), MoveEntity() et MoveNode()
- Ajouté: CreateTexture() gère maintenant les textures alpha
- Ajouté: #PB_Entity_Wireframe, #PB_Entity_Solid, #PB_Entity_Point et #PB_Entity_DisplaySkeleton à EntityRenderMode()
- Ajouté: FreeEntityJoints(), AttachEntityObject(), DetachEntityObject(), EntityBoneX/Y/Z()
- Ajouté: EntityBonePitch(), EntityBoneRoll(), EntityBoneYaw(), EntityCorrigéYawAxis()
- Ajouté: paramètres 'DirectionX/Y/Z' optionnels à EntityLookAt()
- Ajouté: EntityVelocity(), EntityAngularFactor(), EntityLinearFactor(), EntityCustomParameter(), EntityParentNode()
- Ajouté: EntityBoundingBoxX/Y/Z(), DisableEntityBody()
- Ajouté: #PB_Entity_VelocityX/Y/Z, #PB_Entity_MassCenterX/Y/Z, #PB_Entity_MaxVelocity à Get/SetEntityAttribute()
- Ajouté: LightAttenuation(), LightX/Y/Z(), LightDirection(), LightDirectionX/Y/Z()
- Ajouté: RotateLight(), LightPitch(), LightYaw(), LightRoll()
- Ajouté: GetScriptParticle(), CreateRenderTexture(), UpdateRenderTexture(), SaveRenderTexture()
- Ajouté: CreateCubeMapTexture(), EntityCubeMapTexture()
- Ajouté: HideEffect() gère maintenant le ribbon
- Ajouté: EffectID(), RibbonEffectWidth(), AttachRibbonEffect(), DetachRibbonEffect(), CreateLensFlareEffect(), LensFlareEffectColor()
- Ajouté: EnableHingeJointAngularMotor()
- Ajouté: paramètre '#Joint' pour ConeTwistJoint(), HingeJoint(), PointJoint(), SliderJoint()
- Ajouté: #PB_HingeJoint_LowerLimit et #PB_HingeJoint_UpperLimit à Get/SetJointAttribute()
- Ajouté: paramètres optionnel 'Pitch', 'Yaw', 'Roll' à AddStaticGeometryEntity()
- Ajouté: FreeTerrain(), SetupTerrains(), CreateTerrain(), TerrainPhysicBody(), DefineTerrainTile()
- Ajouté: AddTerrainTexture(), BuildTerrain(), TerrainLocate(), TerrainHeight(), TerrainTileHeightAtPosition()
- Ajouté: TerrainTilePointX/Y(), TerrainTileSize(), GetTerrainTileHeightAtPoint(), SetTerrainTileHeightAtPoint()
- Ajouté: UpdateTerrain(), TerrainTileLayerMapSize(), GetTerrainTileLayerBlend(), SetTerrainTileLayerBlend()
- Ajouté: UpdateTerrainTileLayerBlend(), TerrainMousePick(), SaveTerrain(), TerrainRenderMode()
- Ajouté: gestion des touches spéciales pour InputEvent3D()

- Modifié: CameraLookAt() ne change plus la direction
- Modifié: suppression du paramètre 'Type' sur les commandes Attach/DetachNodeObject()
- Modifié: paramètre 'LargeurInitiale' a été supprimée pour CreateRibbonEffect()

- Supprimé: AnimateEntity() (remplacée par Start/StopEntityAnimation())
- Supprimé: #PB_Entity_Wireframe, #PB_Entity_Point et #PB_Entity_Solid pour EntityRenderMode()
- Supprimé: CheckEntityCollision(), NextWorldCollision(), FirstWorldCollisionEntity(), SecondWorldCollisionEntity()

7Novembre 2011

PureBasic 4.60

- Ajouté: un nouveau répertoire d'exemples 3D
- Ajouté: bibliothèque 'Joint'
- Ajouté: bibliothèque 'SpecialEffect'
- Ajouté: bibliothèque 'StaticGeometry'
- Ajouté: CameraPitch(), CameraRoll(), CameraYaw(), SwitchCamera()
- Ajouté: ApplyEntityForce(), ApplyEntityImpulse(), EntityPitch(), EntityRoll(), EntityYaw()
- Ajouté: GetEntityAttribute(), GetEntityMaterial(), SetEntityAttribute(), SetEntityMaterial()
- Ajouté: LightDiffuseColor(), SpotLightRange(), LightLookAt(), DisableLightShadows()
- Ajouté: MaterialDepthWrite(), MaterialSelfIlluminationColor(), MaterialShininess(), GetScriptMaterial()
- Ajouté: CreateLine3D(), CreateCube(), CreateSphere(), CreateCylinder(), CreatePlane()
- Ajouté: MeshVertexCount(), UpdateMeshBoundingBox(), MeshRadius(), AddMeshVertex()
- Ajouté: MeshVertexNormal(), MeshVertexColor(), AddSubMesh(), BuildMeshShadowVolume()
- Ajouté: MeshVertexTextureCoordinate(), AddMeshFace(), FinishMesh(), NormalizeMesh()
- Ajouté: SaveMesh(), SetMeshMaterial(), SubMeshCount(), TransformMesh()
- Ajouté: NodePitch(), NodeRoll(), NodeYaw(), GetScriptTexture(), TextureOutput()
- Ajouté: EntityCollide(), RayCollide
- Ajouté: moteur OpenGL à la bibliothèque 3D sous Windows, quand le sous-système OpenGL est activé
- Ajouté: CanvasGadget(), CanvasOutput()
- Ajouté: SetGadgetItemData() pour le PanelGadget
- Ajouté: MoveElement(), MergeLists(), SplitList()
- Ajouté: RandomizeList(), RandomizeArray(), DoubleClickTime()
- Ajouté: PushListPosition(), PopListPosition(), PushMapPosition(), PopMapPosition()
- Ajouté: paramètre ImageID à OpenSubMenu()
- Ajouté: #PB_ListIcon_ThreeState et #PB_ListIcon_Inbetween
- Ajouté: #PB_Tree_ThreeState et #PB_Tree_Inbetween
- Ajouté: évènements de la ComboBox cross-plateformes
- Ajouté: 'DeclareC' keyword pour completness

- Modifié: FindString(): le paramètre 'StartPosition' est maintenant optionnel
- Modifié: le WebGadget utilise WebKitGtk sous Linux
- Modifié: ContainerGadget avec #PB_Container_Borderless ne rajoute plus un bord invisible de 2px sous Linux
- Modifié: EntityPhysicBody(), CreateLight(), RenderWorld(), ShowGUI, WorldShadows()
- Modifié: EntityMaterial() renommé en SetEntityMaterial()

- Supprimé: Get/SetEntityMass(), Get/SetEntityFriction()
- Supprimé: SetMeshData()

- Corrigé: De nombreux bogues

IDE:
- Ajouté: option pour compiler des projets en ligne de commande
- Ajouté: les changements de fichiers en dehors de l'IDE sont maintenant détectés
- Ajouté: refonte complète des onglets fichiers avec Drag & Drop, menu déroulant et défilement, aussi sous OSX
- Ajouté: outil de différence pour les fichiers/répertoires
- Ajouté: affichage de l'aide en Html sous Linux/OSX
- Ajouté: affichage de l'aide dans le panneau d'outils
- Ajouté: un nouvel outil de sélection des couleurs
- Ajouté: support du changement de police dans l'IDE sous OS X
- Ajouté: le panneau de projet mémorise l'état des noeuds

Debugger:
- Ajouté: bouton maximiser sur toutes les fenêtres du débogueur
- Ajouté: toutes les fonctions IsXxx() et XxxID() au parseur d'expressions (pour les points d'arrêt 'data')

8Septembre 2010

PureBasic 4.51

- Corrigé: Bugs du compilateur et des bibliothèques

7Juin 2010

PureBasic 4.50

- Ajouté: Support des tableaux, des listes, et des maps dans les structures
- Ajouté: CopyList(), CopyMap(), CopyArray()
- Ajouté: FreeList(), FreeMap(), FreeArray()
- Ajouté: CopyStructure(), InitializeStructure()
- Ajouté: Support du volume initial pour PlaySound()
- Ajouté: Paramètre 'Profondeur' pour SaveImage()
- Ajouté: Option à ImageDepth()
- Ajouté: Option #PB_Image_Transparent pour CreateImage()
- Ajouté: Support du 32-bit pour le décodeur TGA
- Ajouté: RoundBox(), AbortFTPFile(), RandomData()
- Ajouté: Option #PB_2DDrawing_AllChannels pour DrawingMode()
- Ajouté: Support des images pour ComboBoxGadget()
- Ajouté: Fonctions pour la console graphique sous Linux
- Ajouté: Support des fichiers larges sous Linux/OSX
- Ajouté: CryptRandom(), CryptRandomData(), OpenCryptRandom(), CloseCryptRandom()
- Ajouté: De nombreuses fonctions mathématiques: Exp(), ATan2(), Radian(), Degree(), [A]CosH(), [A]SinH(), [A]TanH(), IsNaN(), IsInfinity(), NaN(), Infinity(), Sign()
- Ajouté: Bibliothèque 'Debugger' pour contrôler le débogueur via le code

- Modifié: La bibliothèque Image gère les images en interne uniquement en 24-bit ou en 32-bit (le chargement et la sauvegarde fonctionnent avec d'autres formats)

- Corrigé: Bogues du compilateur et des bibliothèques

IDE/Debugger:
- Ajouté: Les mots clés Break, Continue, ProcedureReturn sont soulignés
- Ajouté: Aide dans la barre de statuts pour les prototypes et les interfaces
- Ajouté: Indentation contextuelle (le mode 'bloc' est toujours disponible)
- Ajouté: Option 'Formater la sélection' dans le menu d'édition
- Ajouté: Option pour visualiser les indentations et les espaces
- Ajouté: Possibilité de sélectionner plusieurs compilateurs dans les options
- Ajouté: Purificateur, dans les outils de déboguage
- Ajouté: Compatibilité complète du débogueur entre tous les processeurs et les OS
- Ajouté: Déboguage réseau pour le débogueur indépendant
- Ajouté: Points d'arrêt conditionnels
- Ajouté: Support des éléments structurés dans l'onglet 'Visualiser Tableau/Liste/Map'

- Modifié: Le nom d'un tableau, d'une liste ou d'une map dans le visualisateur de variables doit maintenant contenir '()'' pour afficher les éléments.

1Février 2010

PureBasic 4.41

- Corrigé: Bugs du compilateur et des bibliothèques


1Décembre 2009

PureBasic 4.40

- Ajouté: Support natif de Linux x64
- Ajouté: Bibliothèque Map intégrée (tables de hash)
- Ajouté: Mot-clé 'Threaded' pour des variables locales au thread
- Ajouté: Affectation complète de structure (a.point = b.point)
- Ajouté: ClearStructure()
- Ajouté: Support des Dylib sous OS X
- Ajouté: Bibliothèque Joystick pour OS X
- Ajouté: Bibliothèque Systray pour OS X
- Ajouté: AESEncoder(), AESDecoder(), StartAESCipher(), AddCipherBuffer(), FinishCipher()
- Ajouté: Trim/LTrim/RTrim() nouveau paramètre
- Ajouté: #PB_Function, #PB_OSFunction, #PB_Map à Defined()
- Ajouté: ReverseString(), InsertString(), RemoveString()
- Ajouté: Support des 'blobs' pour les bases de données
- Ajouté: UsePostgreSQLDatabase(): support natif de PostgreSQL
- Ajouté: Optimiseur de code pour les versions 64-bit (exécutable plus petit et plus rapide)
- Ajouté: Nouveaux types natifs: '.a' (ascii) et '.u' (unicode), qui sont des 'bytes' et des 'words' non-signés.
- Ajouté: #PB_Default à FileBuffersSize()
- Ajouté: #PB_URL_Protocol à Get/SetURLPart()
- Ajouté: #PB_Shadow_TextureAdditive
- Ajouté: FTPDirectoryEntryRaw(), FillMemory()
- Ajouté: Global, Protected, Threaded, Shared et Static acceptent maintenant une affectation pour les variables déclarées.
- Ajouté: AddWindowTimer(), RemoveWindowTimer(), EventTimer()
- Ajouté: #PB_Window_Tool pour créer une fenêtre de type 'outil'
- Ajouté: ShortcutGadget(), StatusBarProgress()
- Ajouté: StatusBarImage() supporte maintenant les images classiques (et pas seulement les icônes)
- Ajouté: #PB_Checkbox_ThreeState pour créer une case à cocher à 3 états
- Ajouté: CreateImageMenu(), CreatePopupImageMenu() pour OSX
- Ajouté: Support complet du canal alpha pour la bibliothèque Image
- Ajouté: Support complet du canal alpha pour tous les éléments qui affichent une image
- Ajouté: Nouveaux modes de dessin pour 2DDrawing avec ImageOutput()
- Ajouté: LinearGradient(), BoxedGradient(), CircularGradient(), EllipsicalGradient(), ConicalGradient()
- Ajouté: CustomGradient(), GradientColor(), ResetGradientColors(), CustomFilterCallback()
- Ajouté: DrawAlphaImage() pour toutes les sorties, pour tous les OS
- Ajouté: DrawAlphaImage() a un nouveau paramètre de transparence
- Ajouté: WindowOutput() sous OSX
- Ajouté: Sprite/ScreenOutput() pour OpenGL (tous les OS)
- Ajouté: DrawingFont() fonctionne maintenant avec SDL
- Ajouté: OutputWidth(), OutputHeight(), OutputDepth()
- Ajouté: GrabDrawingImage(), DrawRotatedText(), RGBA(), Alpha(), AlphaBlend()
- Ajouté: #PB_PixelFormat_ReversedY pour DrawingBuffer()
- Ajouté: #PB_OS_Windows_7, #PB_OS_MacOSX_10_6 pour OSVersion()

- Mise à jour: OGRE 1.6.2, sqlite 3.6.14.2, PCRE 7.9

- Modifié: Les paramètres de Call(C)Function(Fast) sont maintenant uniquement des 'Integer'.
- Modifié: OpenScreen() accepte maintenant le 'FlipMode' et le 'TauxDeRafraichissement'
- Modifié: FlipBuffers() ne prend plus de paramètres optionnels

- Supprimé: #PB_Image_DisplayFormat est déprécié
- Supprimé: SetRefreshRate() a été supprimé, c'est OpenScreen() qui gère cette fonctionnalité

- Corrigé: Les décodeurs d'image sont maintenant compatibles avec les threads
- Corrigé: Beaucoup de bogues dans les bibliothèques et dans le compilateur

IDE PureBasic:
- Ajouté: Gestion de projets
- Ajouté: Mise en valeur des parenthèses et des mots-clés
- Ajouté: 'Edition->Aller au mot-clé correspondant'
- Ajouté: Variable d'environnement 'PB_TOOL_Preferences' pour les outils de l'IDE
- Ajouté: Support des thèmes
- Ajouté: Nouveau thème 'Silk' basé sur le jeu d'icône de Mark James
- Ajouté: Scan implicite des variables pour l'auto-complétion
- Ajouté: Auto-complétion des éléments d'une structure ou d'une interface

- Modifié: Le paramètre d'encodage d'un fichier a été déplacé vers menu 'Fichier'

Débogueur PureBasic:
- Optimisé: Rapidité du visualisateur de variables
- Ajouté: Affichage d'une barre de progression pour le visualisateur de variables
- Ajouté: Possibilité de trier une colonne du visualisateur de variable (Windows seulement)

3Juin 2009

PureBasic 4.31

- Corrigé: Nombreux bugs du compilateur et des bibliothèques


16Décembre 2008

PureBasic 4.30

- Ajouté: Version 64-bit de PureBasic (Windows)
- Ajouté: Support de MacOS X x86
- Ajouté: Bibliothèque 'JPEG 2000'
- Ajouté: Bibliothèque 'Node'
- Ajouté: Bibliothèque 'Gadget3D'
- Ajouté: Bibliothèque 'Window3D'
- Ajouté: Bibliothèque 'Sound3D'
- Ajouté: Support de l'unicode dans le moteur 3d
- Ajouté: Support de MacOS X pour le moteur 3d
- Ajouté: Rotation absolue et relative pour toutes les commandes du moteur 3d
- Ajouté: Déplacement absolu pour les corps physiques du moteur 3d
- Ajouté: EntityID(), EntityLookAt()
- Ajouté: CameraProjectionX(), CameraProjectionY(), WorldDebug(), Sun()
- Ajouté: MousePick(), PointPick(), PickX/Y/Z(), CreateWater(), AntialiasingMode()
- Ajouté: CatchModule(), ArraySize(), WindowBounds(), DesktopX(), DesktopY()
- Ajouté: FinishDatabaseQuery(), DatabaseID()
- Ajouté: CreateSemaphore(), FreeSemaphore(), SignalSemaphore(), WaitSemaphore(), TrySemaphore()
- Ajouté: Type natif '.i' pour gérer les entiers 32/64-bit
- Ajouté: Read/WriteInteger(), Read/WritePreferenceInteger(), PeekI(), PokeI()
- Ajouté: Support de la localisation de la langue pour le compiler et le débogueur
- Ajouté: Paramètre 'Style' pour FontRequester()
- Ajouté: Support de 'And/Or' avec le mot clef CompilerIf
- Ajouté: #PB_Event_MinimizeWindow, #PB_Event_MaximizeWindow, #PB_Event_RestoreWindow
- Ajouté: Support de #PB_Ignore pour AddStatusBarField()
- Ajouté: Support de #PB_Explorer_DisplayMode pour ExplorerListGadget()
- Ajouté: Support de plusieurs joysticks
- Ajouté: Constante #PB_Compiler_FilePath

- Amélioré: Refonte complète de la bibliothèque 'OnError' (cross-plateforme)
- Amélioré: Le paramètre de InitScintilla() est maintenant optionnel
- Amélioré: Re-écriture complète du débogueur pour supporter les nouvelles plateformes

- Optimisé: Bibliothèque 'XML' pour pouvoir gérer des gros fichiers rapidement
- Optimisé: Bibliothèque 'LinkedList' pour éviter trop de fragmentation mémoire

- Modifié: Le mot clef 'Read' nécessite un type (Read.l, Read.q etc.) pour éviter des problèmes de migration 64-bit
- Modifié: CountList() en ListSize()
- Modifié: ClearGadgetItemList() en ClearGadgetItems()
- Modifié: CameraProjection() en CameraProjectionMode()
- Modifié: AddElement() et consorts renvoient le pointeur du début des données
- Modifié: La hauteur de ComboBoxGadget() est la hauteur réelle du gadget
- Modifié: #Long, #Byte, #Word etc. en #PB_Long, #PB_Byte, #PB_Word etc.
- Modifié: Les axes de rotation x,y de RotateEntity(), RotateCamera() et RotateBillboard()
- Modifié: L'angle de CameraFOV() de radian en degré

- Supprimé: StrQ(), HexQ(), BinQ(), ValQ()
- Supprimé: ChangeListIconGadgetDisplay(), remplacé par un attribut de gadget
- Supprimé: Compatibilité arrière de ButtonImageGadget()
- Supprimé: CreateGadgetList(), fait automatiquement dans OpenWindow()
- Supprimé: CopyTexture(), TextureOutput()

- Corrigé: Sous-système DX9 sous Windows
- Corrigé: Nombreux bogues du compilateur et des bibliothèques

23Mai 2008

PureBasic 4.20

- Ajouté: Bibliothèque 'Mail'
- Ajouté: Bibliothèque 'Ftp'
- Ajouté: Bibliothèque 'RegularExpression'
- Ajouté: Bibliothèque 'Http'
- Ajouté: Bibliothèque 'SerialPort'
- Ajouté: Bibliothèque 'FLAC'
- Ajouté: Bibliothèque 'SQLite'
- Ajouté: Sous-système DirectX 9
- Ajouté: Support du streaming pour les fichiers OGG et FLAC
- Ajouté: Support de #PB_Sound_MultiChannel pour la bibliothèque 'Sound'
- Ajouté: CreateImageMenu(), CreatePopupImageMenu(), SHA1FingerPrint(), SHA1FileFingerPrint()
- Ajouté: CRC32FileFingerprint(), ExamineMD5FingerPrint(), ExamineSHA1FingerPrint(),
- Ajouté: NextFingerPrint(), FinishFingerPrint(), IsFingerPrint()
- Ajouté: Gestion de l'héxadecimal et du binaire pour Val() et ValQ()
- Ajouté: Constante compilateur #PB_Compiler_Procedure
- Ajouté: #PB_Round_Nearest pour Round()
- Ajouté: Mode de dessin 'XOr' pour Linux/SDL et MacOS X
- Ajouté: Un 'Profileur' pour surveiller le nombre d'appel par ligne de code
- Ajouté: Le débogueur peut maintenant évaluer des expressions
- Ajouté: Le visualisateur de mémoire gère lui aussi les expressions pour les adresses
- Ajouté: Indiquer un '+' devant le champ 'adresse de fin' du visualisateur de mémoire la rend relative
- Ajouté: Placer la souris au dessus d'une variable dans l'IDE affichera sa valeur quand le programme est en cours d'éxecution
- Ajouté: Selectionner une expression plus complexe et placer la souris au dessus affichera le resultat (si possible)

- Modifié: Le paramètre 'Taille' de Mid() est rendu optionnel

- Optimisé: La compilation est bien plus rapide (jusqu'à 8x)
- Optimisé: Toutes les commandes ont été optimisées en changeant de compilateur C (Windows seulement)

- Corrigé: De nombreux problèmes relatifs au compilateur et aux commandes

4Novembre 2007

PureBasic 4.10

- Ajouté: Bibliothèque 'XML'
- Ajouté: Bibliothèque 'Drag & Drop'
- Ajouté: Compatibilité avec Windows Vista (UAC), excepté la bibliothèque 'Sprite' (prévue pour 4.20)
- Ajouté: Remplacement de MIDAS par ModPlug pour la bibliothèque 'Module'
- Ajouté: ScintillaGadget(), TruncateFile()
- Ajouté: Directives de compilation EnableASM et DisableASM
- Ajouté: #PB_OS_Windows_Vista et #PB_OS_Windows_Server_2008 pour OSVersion()
- Ajouté: Nombreuses nouvelles fonctionnalités pour la commande WebGadget()
- Ajouté: Nombreux ajouts sur l'IDE (nouveau protocole de communication avec le compilateur, coloration des parenthèses, affichage plus rapide etc.)
- Ajouté: Sortie synchronisée des versions Windows, Linux et MacOS X !

- Modifié: InitDatabase() renommé en UseODBCDatabase()
- Modifié: Sous Windows, les fichiers de configurations de l'IDE et des outils PureBasic sont maintenant stockés dans le répertoire personnel de l'utilisateur

- Supprimé: L'outil de mises à jour 'SmartUpdate' n'est plus supporté

- Corrigé: Beaucoup de problèmes relatifs au compilateur et aux commandes

18Décembre 200

PureBasic 4.02

- Corrigé: Problèmes avec certaines macros
- Corrigé: LoadImage() ne fonctionnait pas en unicode avec les plugins
- Corrigé: ExplorerListGadget() et les fichiers de plus de 4GB
- Corrigé: ExaminePreferenceKeys() ignorait la première valeur
- Corrigé: ExamineDirectory() ne gérait pas correctement les motifs
- Corrigé: Quelques problèmes sur l'IDE et le débogueur
- Corrigé: Plusieurs bogues sur le compilateur

1Novembre 2006

PureBasic 4.01

- Modifié: CreateThread() ne renvoie plus un identifiant système (utiliser ThreadID() à la place)

- Corrigé: Plusieurs problèmes importants concernant l'unicode et les quads
- Corrigé: Le mode 'thread safe' ne fonctionnait pas correctement dans certains cas
- Corrigé: Les directives de compilation dans les macros ne pouvaient pas être imbriquées
- Corrigé: GetFileDate() et DirectoryEntryDate() n'utilisaient pas la date locale
- Corrigé: OpenFileRequester() pouvait échouer si trop de fichiers étaient sélectionnés
- Corrigé: De nombreux bogues mineurs

8Mai 2006

PureBasic 4.00

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.

- 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/1,anguaganguage e To 2 - A : 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 nombres flottants peuvent être écrits soorme: 1NewsBlo23.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-bit).
- 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'

- Corrigé: Les commandes internes préservent tous les registres réservés
- Corrigé: La souris est automatiquement libérée en mode fenêtré quand la fenêtre perd le focus
- Corrigé: KeyboardInkey() gère correctement les touches shift et control
- Corrigé: IsScreenActive() fonctionne correctement en mode fenêtré
- Corrigé: Beaucoup de bogues mineurs qui ont été découverts depuis la dernière version

16Août 2005

PureBasic 3.94

- Ajouté: Nouvel environnement de développement (IDE) beaucoup plus puissant
- Ajouté: 3 nouveaux débogueurs (!) évolués
- Ajouté: Support des ressources Windows pour le compilateur et l'IDE (option /RESOURCE)
- Ajouté: Support des versions pour les exécutables et les DLL
- Ajouté: Evènement #PB_Event_ActivateWindow
- Ajouté: Option #PB_Web_Mozilla pour utiliser l'ActiveX Mozilla avec WebGadget()
- Ajouté: GetToolBarButtonState() et SetToolBarButtonState()
- Ajouté: Documentation complète sur l'IDE et les débogueurs

- Corrigé: Images 32x32 dans un ListIconGadget() en mode 'grandes icônes'
- Corrigé: Bug avec OpenScreen()/CloseScreen() et les sprite3D
- Corrigé: MovieLength() et MovieInfo() ne fonctionnaient pas avec le format WMV (merci à Traumatic ;-)
- Corrigé: La désactivation des images et icônes sur les barres d'outils avec les skins XP
- Corrigé: Plantage lors de la fermeture d'une fenêtre avec une barre de statuts/outils déjà libérée
- Corrigé: ImageGadget() et ButtonImageGadget() ne fonctionnaient pas avec AnimateWindow_()
- Corrigé: Bug ImageGadget() avec DisableGadget()
- Corrigé: LineXY() ne libérait pas la mémoire correctement
- Corrigé: Line() et LineXY() affectait la position du texte de DrawText()
- Corrigé: SortList() pouvait planter avec des gros tableaux déjà triés
- Corrigé: SetMenuItemState() changeait aussi l'état de désactivation
- Corrigé: Un ComboboxGadget() créé avec #PB_Any ne gérait pas les TAB correctement
- Corrigé: OpenFileRequester() ne fonctionnait pas si le fichier par défaut n'était pas correct
- Corrigé: Bug du compilateur avec les concaténations de chaînes et les procédures
- Corrigé: Problème d'alignement des variables dans les procédures pouvant affecter certaines API

28Février 2005

PureBasic 3.93

- Ajouté: SortStructuredArray(), SortList(), SortStructuredList()
- Ajouté: Directives de compilation pour LibraryMaker
- Ajouté: KeyboardMode() (n'était pas dans la documentation)
- Ajouté: Paramètre optionnel 'Couleur' pour les fonctions ColorRequester() et FontRequester()
- Ajouté: Support de SetGadgetText() pour les ComboBoxGadget() éditables
- Ajouté: #PB_Default pour ClipSprite() permet d'enlever la zone de clipping
- Ajouté: #PB_FileSystem_Force pour CopyDirectory()
- Ajouté: #PB_OS_Windows_Server_2003 pour OSVersion()
- Ajouté: Base64Decoder(), GetGadgetFont()
- Ajouté: Paramètre optionnel 'Mode' pour ResizeImage()
- Ajouté: Evènement lors du déplacement ou du redimensionnement d'un splitter
- Ajouté: Vérifications temps réel pour Plot(x,y,Color) avec ScreenOutput() et SpriteOutput()
- Ajouté: Vérifications supplémentaires pour DirectoryEntrySize/Name/Attributes()

- Amélioré: Editeur PureBasic par Tinman
- Amélioré: Interface Importer et les interfaces DirectX9 dans les residents (merci à Traumatic !)
- Amélioré: Utilisation des icônes de Kale pour l'éditeur
- Amélioré: Documentation française en partie revue et corrigée par trasfract

- Optimisé: Le mode 'Débogueur' est plus compact et plus rapide
- Optimisé: Bibliothèque Misc (chaque commande est maintenant indépendante)
- Optimisé: Fonction Base64Encoder() plus rapide
- Optimisé: Génération du code assembleur plus compact pour les concaténations de string

- Modifié: Syntaxe d'OffsetOf(), pour calquer celle de SizeOf()

- Corrigé: Un bug dans ImageGadget() avec les skins XP activées et images 32-bit
- Corrigé: ExplorerListGadget() n'affichait pas les .ico et .lnk correctement
- Corrigé: ButtonImageGadget() pouvait perdre son image dans quelques rares cas
- Corrigé: Plus de son 'ding' lors d'un clic de souris en mode plein écran quand ExamineMouse() n'est pas utilisé
- Corrigé: L'icône du programme est correctement affichée lors d'un ALT+TAB avec une application plein ecran
- Corrigé: Les sprites sont correctement rechargés lorsque que ALT+TAB est utilisé
- Corrigé: CopyDirectory() modifiait le string passé en paramètre dans un cas particulier
- Corrigé: ListIndex() ne fonctionnait pas correctement
- Corrigé: RemoveString() et CRC32FingerPrint() ne pouvaient pas être utilisés dans une expressions
- Corrigé: SetGadgetItemText() ne fonctionnait pas avec ListViewGadget()
- Corrigé: ExamineDirectory() plantait si un string non initialisé était passé en paramètre
- Corrigé: CalendarGadget() ne pouvait pas être utilisé plusieur fois sur la même fenêtre
- Corrigé: RSet() pouvait renvoyer un résultat erroné
- Corrigé: CreateFile() ne fonctionnait pas avec les fichiers cachés
- Corrigé: ZeroMemory_(), FillMemory_(), MoveMemory_() et CopyMemory_() n'étaient pas reconnus
- Corrigé: #PB_Event_MoveWindow n'était pas émis correctement
- Corrigé: #PB_EventType_LostFocus n'était pas émis si 2 StringGadget() étaient côte à côte
- Corrigé: Les tooltips des gadgets ne s'affichaient pas sur NT4 si la fenêtre etait 'toujours au dessus'
- Corrigé: Le plugin OGG ne fonctionnait plus. Il est plus rapide maintenant.
- Corrigé: ResizeImage() ne change plus l'image si les mêmes dimensions sont utilisées
- Corrigé: TAB dans un EditorGadget() ne sort plus du gadget mais insert un TAB
- Corrigé: LCase() ne gérait pas le caractère allemand 'ß' correctement
- Corrigé: SetGadgetState() ne fonctionnait pas correctement avec OptionGadget()
- Corrigé: Les dimensions de la fenêtre du Débogueur n'étaient pas enregistrées
- Corrigé: AddGadgetItem() avec EditorGadget()
- Corrigé: SortArray() pouvait planter sur des gros tableaux déjà triés
- Corrigé: ReceiveNetworkFile() ne gérait pas les noms de fichier longs
- Corrigé: Affichage corrompu avec ButtonImageGadget() et le mode 'Toggle' (avec l'API)
- Corrigé: SpriteWidth() et SpriteHeight() renvoyaient des valeurs erronées lorsque ClipSprite() était utilisé
- Corrigé: MessageRequester() sur une fenêtre 'console' la faisait disparaître
- Corrigé: SetGadgetState() avec ListIconGadget() prenait le focus
- Corrigé: Base64Encoder() ne produisait pas un encodage correct
- Corrigé: Problème de rafraîchissement avec FrameGadget() et les options #PB_Frame_Single/Double
- Corrigé: Fuite de ressource GDI dans ButtonImageGadget() et ImageGadget()
- Corrigé: RotateSprite3D() n'utilisait pas le bon angle
- Corrigé: DisableMenuItem() ne fonctionnait pas avec #PB_Any
- Corrigé: GadgetWidth() ne fonctionnait pas avec SpinGadget()
- Corrigé: Date() renvoyait un mauvais résultat avec une date très petite (1970,1,1,0,0,0)
- Corrigé: CallFunctionFast() ne prenait que 17 paramètres à la place de 20
- Corrigé: OpenWindowedScreen() avec AutoStretch n'affichait pas la totalité des pixels
- Corrigé: Quelques problèmes de rafraîchissement avec PanelGadget()
- Corrigé: La couleur transparente avec les écrans 32-bit et les sprites en mode 'texture'
- Corrigé: Quelques bogues mineurs dans l'IDE
- Corrigé: Plusieurs bogues dans le compilateur (concaténation de strings, interfaces dans les procédures)

25Octobre 2004

PureBasic 3.92

- Ajouté: CalendarGadget() et DateGadget(), merci à Fr34k !
- Ajouté: LibraryID(), SwapElements()
- Ajouté: SaveSprite() a maintenant un paramètre 'Options' et gère les écrans/sprites 8-bit
- Ajouté: Un double-click sur le fond des fenêtres génère un évènement (merci à Rings)

- Optimisé: CountList() et ListIndex() sont dorénavant très rapides.

- Modifié: DeleteElement() revient toujours à l'élément précédent, pour être compatible avec For/Each.
(voir la documentation pour plus d'informations)
- Modifié: Le répertoire courant de l'application n'est jamais changé par les commandes PureBasic.
Auparavant, le répertoire contenant l'exécutable était considéré comme le répertoire courant.

- Corrigé: Bug dans CloseWindow() et HideWindow() quand le paramètre 'ParentWindow' d'OpenWindow() était utilisé
- Corrigé: IsSound() n'était pas disponible dans le mode de compatibilité NT4
- Corrigé: AddDate() pouvait renvoyer un mauvais résultat en fonction du fuseau horaire de l'ordinateur
- Corrigé: Fuite de mémoire avec les linkedlists, tableaux et variables locales quand une structure contenant un string était utilisée
- Corrigé: La qualité par défaut de SaveSprite() avec le plugin JPEG est '7'.
- Corrigé: DisplayPalette() ne fonctionnait pas totalement sur les systèmes XP
- Corrigé: ImageGadget() support les ToolTips et le changement d'icône en image (et vice et versa)
- Corrigé: ButtonImageGadget() supporte les skins XP et le changement d'icône en image (et vice et versa)
- Corrigé: SetGadgetItemText() pour ListViewGadget() effacait le 'UserData' de l'élément
- Corrigé: CopyImage() échouait sur Window NT 4 dans certaines circonstances
- Corrigé: Fuite de mémoire dans la commande SendNetworkFile()
- Corrigé: StatusBarText() ne rafraîchissait pas correctement la barre de statuts avec l'option 'Borderless'
- Corrigé: CatchImage() avec #PB_Any
- Corrigé: Le décodeur PNG gère maintenant sans problème les PNG corrompus
- Corrigé: L'encodeur JPEG pouvait crasher si le critère de qualité était de 3 ou moins
- Corrigé: Une erreur mineure sur le TreeGadget() quand les 'checkboxes' étaient activées
- Corrigé: La compression avec les commandes 'Pack' pouvait se bloquer dans certaines circonstances
- Corrigé: La bibliothèque OnError n'était pas utilisable dans une DLL (merci à Rings)
- Corrigé: La concaténation de chaînes de caractères statiques était erronée dans certains cas
- Corrigé: Le compilateur ne retournait pas un code d'erreur différent de 0 si une erreur était survenue
- Corrigé: Plusieurs bogues dans le compilateur

12Avril 2004

PureBasic 3.90

- Ajouté: Support de #PB_Any (numérotation dynamique) pour les bibliothèques DataBase, File, Font, FileSystem, Gadget, Image, Library,
Module, Movie, Palette, Sprite, Sprite3D, SysTray, ToolBar, StatusBar et Window
- Ajouté: CountString(), KeyboardInkey(), GetWindowTitle(), SetWindowTitle(), ElapsedMilliseconds()
- Ajouté: RemoveGadgetColumn(), SetGadgetAttribute(), GetGadgetAttribute(), SetGadgetItemAttribute(), GetGadgetItemAttribute()
- Ajouté: MDIGadget() par Fr34k
- Ajouté: Support de la synchronisation de l'écran pour FlipBuffers() (y compris en mode fenêtré)
- Ajouté: Redimensionnement automatique pour les 'StatusBar' et 'ToolBar' (plus besoin de callback)
- Ajouté: Nouvelle méthode de redimensionnement pour les fenêtres par Fr34k (plus besoin de callback)
- Ajouté: Nouveau paramètre optionnel 'z' pour TransformSprite3D()
- Ajouté: Plusieurs nouvelles options pour SplitterGadget() pour plus de flexibilité
- Ajouté: Support de SetGadgetAttribute() pour ScrollAreaGadget().
- Ajouté: Support NT4 des Joysticks et des Modules
- Ajouté: Affichage hexadécimal, positionnement paramétrable des fenêtres pour le débogueur
- Ajouté: Support de toutes les icônes lors de la création d'un exécutable
- Ajouté: Amélioration de l'IDE: Interface viewer, support du MS SDK, chercher dans les fichiers, numérotation des lignes
- Ajouté: Mot clef 'Static' pour les variables locales qui doivent être persistantes
- Ajouté: Toute dernière version de FAsm (l'assembleur), plus rapide et permet de gérer de plus gros sources
- Ajouté: Support du 'QuickHelp' dans Purebasic IDE pour la plupart des fonctions API !

- Modifié: Plus de #MemoryID et d'Options' pour AllocateMemory()
- Modifié: CDAudioName() ne nécessite plus d'ID.

- Optimisé: CDAudio, Database, File, Network, StatusBar et Systray (chaque commande est maintenant indépendante)

- Supprimé: UpdateStatusBar(), UseMemory() et MemoryID()

- Corrigé: Documentation francaise parfaitement à jour
- Corrigé: Support de NT4 (DirectX 3) pour les bibliothèques Sprite, Palette, Sound, Keyboard et Mouse
- Corrigé: CreateSprite3D(), la largeur et la hauteur etait trop grande d'1 pixel
- Corrigé: SpritePixelCollision(), si le même sprite était utilisé pour les deux collisions
- Corrigé: Debugger sous win98 (les fenêtres passaient quelque fois en arrière plan)
- Corrigé: OpenWindowedScreen() ne prenait pas en compte la hauteur du menu (quand il y en avait un)
- Corrigé: IsFilename() ne prenait pas tous les cas de figure en compte
- Corrigé: Plusieurs erreurs du compilateur avec des expressions complexes
- Corrigé: SizeOf() quand il était utilisé avec des structures étendues (Extends)
- Corrigé: NewPrinterPage(), bug sous Win98 quand on imprimait la deuxième page
- Corrigé: CloseScreen() quand la bibliothèque Sprite3D était utilisée
- Corrigé: Plusieurs problèmes de chemin relatif lors de l'utilisation du compilateur en mode console
- Corrigé: Maintenant, tous les 'Requesters' bloquent les autres fenêtres ouvertes

9Décembre 2003

PureBasic 3.81

- Ajouté: DatabaseUpdate(), DatabaseError()
- Ajouté: Support de Play/Stop/Resume/PauseMovie() pour les films rendus sur sprites
- Ajouté: Support du mot clef 'Extends' pour les 'Structure'
- Ajouté: Support des icônes et du redimensionnement en temps réel pour DrawImage()
- Ajouté: Support des formats BMP en 2, 16 et 256 couleurs pour Catch/LoadSprite()
- Ajouté: Support du paramètre '#PB_Default' pour DrawingFont()
- Ajouté: Gestion du Japonais au niveau des Gadget, de l'éditeur et du Visual Designer
- Ajouté: SmartUpdate, un outil permettant la mise à niveau automatique de PureBasic
- Ajouté: Dernière version du Visual Designer

- Optimisé: Les ExplorerGadgets sont maintenant 5x plus rapides pour la lecture des répertoires

- Modifié: Les labels ne sont plus sensibles aux minuscules/majuscules
- Modifié: La qualité par défaut de SaveImage() avec le plugin JPEG est maintenant fixée à 7
- Modifié: InitModule() et InitPalette() ne nécessitent plus de paramètres maximums
- Modifié: PlayMovie() a changé pour les films rendus sur sprites

- Corrigé: Une fuite mémoire au niveau des films rendus sur sprites
- Corrigé: Les commandes de la bibilothèque 'Requesters' pouvaient bloquer les autres applications
- Corrigé: Des définitions d'interfaces étaient erronées dans les résidents
- Corrigé: La combinaison de plusieurs constantes de type string pouvait engendrer des erreurs
- Corrigé: KeyboardReleased(#PB_Key_All) ne fonctionnait pas
- Corrigé: Un problème du compilateur avec les Interfaces dans les procedures
- Corrigé: Un problème avec ProcedureDLL quand un retour de type String était utilisé
- Corrigé: CopySprite() ne fonctionnait pas avec les sprites de type 'Alpha'
- Corrigé: Un problème avec l'optimiseur avec des variables de type bytes et word (très rare)
- Corrigé: Un problème avec les décodeurs JPEG et TIFF dans des situations extrèmes
- Corrigé: Légers problèmes avec EditorGadget() et SpinGadget()

6Octobre 2003

PureBasi 3.80

- Ajouté: ExplorerComboBoxGadget()
- Ajouté: CameraProjection(), CameraBackColor() et CameraRange()
- Ajouté: L'opérateur modulo: '%'
- Ajouté: 'ForEach' pour énumérer les éléments d'une liste facilement
- Ajouté: Interface/EndInterface pour les appels 'Objets' tels que COM ou DirectX !
- Ajouté: Fichiers résidents complets pour le support des interfaces
- Ajouté: 'Break' et 'Continue' pour modifier les itérations des boucles
- Ajouté: Enumeration/EndEnumeration pour déclarer rapidement des ensembles de constantes
- Ajouté: OffsetOf() pour retrouver l'index d'un champ d'une structure ou d'une interface
- Ajouté: SizeOf() supporte maintenant les interfaces et les variables
- Ajouté: Les constantes Float, String et les interfaces sont intégrées dans les résidents
- Ajouté: Support de la 'Qualité' pour SaveImage() avec le plugin JPEG
- Ajouté: Le paramètre 'Options' de MessageRequester() est maintenant optionnel
- Ajouté: La coloration syntaxique ainsi que le navigateur de structures

- Optimisé: Suppression de nombreuses dépendances de OGRE, donc Engine3D.dll a été réduite

- Modifié: Les constantes sont de nouveau constantes

- Corrigé: Affichage des registres ASM dans le Débogueur
- Corrigé: Problème avec 'IncludePath' utilisé avec 'IncludeBinary'
- Corrigé: TAB peut maintenant être utilisé pour sortir d'un ComboBoxGadget() éditable
- Corrigé: DeleteDirectory() ne pouvait pas effacer un répertoire en lecture seule
- Corrigé: Le decodeur TGA ne gérait pas les images inversées verticalement et 'RLE'
- Corrigé: AddPackFile() et PackMemory() se bloquaient de temps en temps
- Corrigé: La taille des structures peut maintenant être supérieure à 32ko
- Corrigé: Int() pouvait générer des résultats faussés avec des valeurs négatives
- Corrigé: Les listes chaînées pouvaient se décaler dans certains cas très rares
- Corrigé: Line() et LineXY() ne dessinaient pas le dernier point
- Corrigé: Vérification InitEngine3D() en temps réel (debugger)
- Corrigé: TextLength() n'acceptait pas les chaînes de caractères vides
- Corrigé: ProcedureReturn pouvait crasher quand il était utilisé dans un 'Select'
- Corrigé: Les sons étaient limités à 50 quand le debugger était activé
- Corrigé: ClipSprite() ne supportait pas DisplayAlphaSprite(), DisplayShowSprite(), DisplaySolidSprite() et DisplayTranslucideSprite()
- Corrigé: Un mot clef réservé (comme 'Data') ne pouvait pas être utilisé dans une structure
- Corrigé: CreatePack(), SaveImage() et SaveSprite() ne supportaient pas les noms de fichiers très long
- Corrigé: Inkey() mettait le programme en attente
- Corrigé: FileSize() retournait une valeur erronée pour les racines ('C:\') sous Win9x
- Corrigé: L'editeur inversait les tabs dans un cas très rare

13Juillet 2003

PureBasic 3.72

- Modifié: Attention! L'index du motif pour SelectedFilePattern() et Open/SaveFileRequester() commence à '0' au lieu de '1'.
- Modifié: Attention! L'index retourné par ListIndex() commence à '0' au lieu de '1'

- Amélioré: IDE: Chercher/Remplacer amélioré; une '*' identifie un fichier modifié
- Amélioré: La bibliothèque 'Toolbar' a été optimisée
- Amélioré: Toutes les commandes ont maintenant une aide rapide (barre d'état de l'éditeur)

- Corrigé: ParseDate() renvoyait des valeurs incorrectes quand aucun séparateur n'était utilisé
- Corrigé: ResizeImage() retaille maintenant les images avec qualité
- Corrigé: Plusieurs problèmes d'évènements concernant les Gadgets (Splitter et Panel)
- Corrigé: Les décodeurs PNG et JPEG ne supportaient pas tous les formats spéciaux
- Corrigé: Le nom de plusieurs fonctions (bibliothèque OnError)
- Corrigé: Plusieurs bogues concernant le compilateur

7Juin 2003

PureBasic 3.70

- Ajouté: Bibliothèque Terrain
- Ajouté: Bibliothèque Billboard
- Ajouté: Bibliothèque Entity
- Ajouté: Bibliothèque Material
- Ajouté: Bibliothèque Particle
- Ajouté: Bibliothèque OnError
- Ajouté: CameraLookAt(), CameraRenderMode(), CameraFOV(), Engine3DFrameRate(), CountRenderedTriangles()
- Ajouté: CreateMesh(), SetMeshData()
- Ajouté: ExamineLibraryFunctions(), NextLibraryFunction(), LibraryFunctionName(), LibraryFunctionAddress()
- Ajouté: IsFunctionEntry(), CallCFunction(), CallCFunctionFast()
- Ajouté: RenderMovieFrame(): il est maintenant possible de jouer un film directement sur un sprite ou un écran !
- Ajouté: OpenGadgetList(), ScrollBarGadget(), ScrollAreaGadget(), SplitterGadget()
- Ajouté: HyperLinkGadget(), ContainerGadget(), EditorGadget()
- Ajouté: TreeGadgetItemNumber(), ExplorerListGadget(), ExplorerTreeGadget()
- Ajouté: L'option #PB_FontRequester_Effects pour FontRequester()
- Ajouté: PanelGadget() a été entièrement réécrit pour supporter les thèmes Windows XP
- Ajouté: TreeGadget() a été réécrit pour permettre insertion dynamique d'éléments
- Ajouté: AddGadgetItem() pour le PanelGadget() supporte les images
- Ajouté: Le paramètre 'FenetreMereID' a été ajouté à OpenWindow()
- Ajouté: Support du format 'CDecl' pour les bibliothèques et les procédures (Ajouté 'ProcedureCDLL' et 'DeclareCDLL' keyword)
- Ajouté: End [CodeSortie]
- Ajouté: Messages d'erreurs plus précis pour les erreurs de linker et d'assembleur
- Ajouté: Nouveau switch pour le compilateur en ligne: /LINENUMBERING
- Ajouté: Support complet du debugger pour le moteur 3D
- Ajouté: Support du gadget ComboBox par les commandes GetGadgetItemText() et SetGadgetItemText()
- Ajouté: De nombreuses nouvelles fonctions pour le Visual Designer: Ordre des tabulations, selection de la police, nouveaux gadgets etc..

- Modifié: Bibliothèque Mesh, due à l'introduction de la bibliothèque Entity
- Modifié: ClosePanelGadget() à été renommé en CloseGadgetList()
- Modifié: Les labels de l'assembleur en ligne sont maintenant sous la forme 'l_label' au lieu de 'pLabel'

- Optimisé: la bibliothèque Movie

- Corrigé: SpriteCollision() et SpritePixelCollision() étaient incorrect (1 pixel de décalage)
- Corrigé: Le résultat de CopyDirectory() était faux dans certains cas
- Corrigé: StrF(): L'arrondi est maintenant effectué correctement
- Corrigé: Plusieurs warning étaient manquants dans le debugger
- Corrigé: Les nombres à virgule flottante (floats) et les nombres entiers étaient quelquefois mal évalués

25Mars 2003

PureBasic 3.62

- Supprimé: FakeEndSelect

- Corrigé: Plusieurs bogues dans le compilateur
- Corrigé: Bug dans l'encodeur et le décodeur PNG
- Corrigé: ProcedureReturn dans un Select/EndSelect
- Corrigé: Array allocation si aucune mémoire n'est disponible
- Corrigé: Int() ne fonctionnait depuis la v3.60
- Corrigé: Val() accepte maintenant tous les formats Basic
- Corrigé: AddPackFile() avait quelques problèmes sur certains types de fichiers
- Corrigé: RunProgram() avec les chemins de fichiers très longs

19Mars 2003

PureBasic 3.61

- Corrigé: Bug capital dans la gestion des tableaux
- Corrigé: Bug capital dans la commande MD5FileFingerprint()
- Corrigé: Editeur: coloration syntaxique pour commandes/procédures et le raccourci Alt+V
- Corrigé: 2 bogues dans le Visual Designer
- Corrigé: Chargement des sprites avec les plugins (JPEG, PNG) en mode 16-bit
- Corrigé: Le mot clef XOR dans l'assembleur en ligne n'était plus reconnu
- Corrigé: Décodeur TGA sur certains fichiers

17Mars 2003

PureBasic 3.60

- Ajouté: Puissant éditeur visuel, pour créer rapidement des interfaces graphiques
- Ajouté: Nombreuses optimisations du compilateur qui produit un code plus compact et plus rapide (principalement concernant les tableaux et les variables structurées)
- Ajouté: Décodeur JPEG, TIFF, PNG et TGA pour les sprites et les images (plugins)
- Ajouté: Encodeur JPEG et PNG pour les sprites et les images (plugins)
- Ajouté: Decodeur OGG pour les sons (plugins)
- Ajouté: AvailableScreenMemory(), SelectedFilePattern(), DefaultPrinter()
- Ajouté: Paramètre 'Options' pour LoadFont() pour gérer l'italique, le gras etc.
- Ajouté: Support des sources multiples pour le debugger (fichiers inclus)
- Ajouté: Contrôle de dépassement d'index des tableaux dans le debugger
- Ajouté: Contrôle de dépassement de lecture des 'Data' dans le debuggercheck
- Ajouté: Support des icônes pour CatchImage()
- Ajouté: DLL Importer in the Library SDK
- Ajouté: Support des processeurs MMX, 3DNOW, SSE et SSE2, avec auto-selection (pour choisir automatiquement à l'exécution la routine la plus rapide en fonction du processeur).

- Optimisé: Bibliothèques Font, Gadget et Window (Commandes séparées, merci à Danilo)

- Supprimé: CatchJPEGSPrite() et LoadJPEGSprite() (remplacés par les plugins)

- Amélioré: Le format des bibliothèques PureBasic (compressé)
- Amélioré: L'assembleur en ligne accepte les mot clefs du FPU
- Amélioré: L'éditeur: double-clique sur (X)IncludeFile ouvre le fichier, l'aide contextuelle fonctionne pour tous les mots clefs (If/EndIf..) Coloration syntaxique de l'assembleur, aide contextuelle pour l'assembleur

- Modifié: SetGadgetFont() prends maintenant 2 paramètres

- Corrigé: SortArray() lors de tris en de strings mode minuscule=majuscule
- Corrigé: RunProgram() avec 3 paramètres
- Corrigé: ImageOutput() sous Win98
- Corrigé: Sprite 16bits sur des anciennes cartes graphiques qui travaillent en 15bits
- Corrigé: Quelques bogues dans le compilateur

6Janvier 2003

PureBasic 3.50 - Happy New Year !

- Ajouté: Bibliothèque Engine3D: Add3DArchive(), AmbientColor(), Fog(), InitEngine3D(), LoadWord(), RenderWorld(), SkyBox(), SkyDome()
- Ajouté: Bibliothèque Camera: CameraLocate(), CameraX(), CameraY(), CameraZ(), CreateCamera(), FreeCamera(), MoveCamera(), RotateCamera()
- Ajouté: Bibliothèque Light: CopyLight(), CreateLight(), FreeLight(), HideLight(), LightColor(), LightLocate(), LightSpecularColor(), MoveLight()
- Ajouté: Bibliothèque Mesh: CopyMesh(), FreeMesh(), GetMeshAnimationTime(), MeshAnimation(), MeshAnimationLength(), MeshLocate(), MeshTexture(), MeshX(), MeshY(), MeshZ(), MoveMesh(), ResizeMesh(), RotateMesh(), ScaleMesh(), SetMeshAnimationTime()
- Ajouté: Bibliothèque Texture: CopyTexture(), CreateTexture(), FreeTexture(), LoadTexture(), TextureHeight(), TextureID(), TextureOutput(), TextureWidth()
- Ajouté: WriteFloat(), ReadFloat(), MouseLocate(), MD5FileFingerprint()
- Ajouté: Les options STDCALL et ANY pour les PureLibraries. Voir la documentation du SDK doc
- Ajouté: GetGadgetItemState() supporte les boites à cocher du TreeGadget()
- Ajouté: SetGadgetState() supporte le ButtonImageGadget()

- Amélioré: CallFunction() et CallFunctionFast(): Les floats peuvent être passé directement
- Amélioré: Le paramètre 'Apparence' de SetStatusBarText() est maintenant optionel
- Amélioré: Le paramètre 'Options' de FrameGadget() est maintenant optionel

- Optimisé: CallFunctionFast() (2x plus rapide)
- Optimisé: La génération du code: Chr(#Constante) et quelques améliorations en vitesse d'exécution

- Modifié: L'assembleur (FASM), est maintenant utilisé, résultant en un code plus compact et plus rapide
- Modifié: LSet() par RSet() et RSet() par LSet() (Fonctionnement inversé par rapport au autres BASIC)
- Modifié: OpenTreeGadgetNode() et CloseTreeGadgetNode() nécessitent un paramètre
- Modifié: ReleaseMouse() nécessite un paramètre

- Corrigé: Le support de la souris en mode jeu fenêtré
- Corrigé: SelectElement() lorsque la valeur passée était -1
- Corrigé: TreeGadget() quand il était utilisé plusieurs fois sur la même fenêtre
- Corrigé: SaveImage() sur le bureau en mode 16bits et 8bits
- Corrigé: RSet() avec 2 arguments
- Corrigé: Un bug dans ParseDate()
- Corrigé: AddPackFile() et AddPackMemory(): dépassement de capacité dans quelques rares cas
- Corrigé: OpenFileRequester() en mode multiselection
- Corrigé: Un bug etrange quand de nombreuses images étaient utilisées dans les GadgetItems()

9Octobre 2002

PureBasic 3.40

- Modifié: Les noms de 'Structure' ne prennent plus en compte les différences majuscules<>minuscules

- Ajouté: Bibliothèque Date: Date(), Year(), Month(), Day(), DayOfWeek(), DayOfYear(), Hour(), Minute(), Second(), FormatDate(), AddDate(), ParseDate()
- Ajouté: Hostname(), ExamineIPAddresses(), NextIPAddress(), IPString()
- Ajouté: LSet(), RSet(), Bin(), RemoveString(), StringField()
- Ajouté: ModuleVolume(), OSVersion(), WaitThread()
- Ajouté: CopyDirectory(), DeleteDirectory(), IsFilename()
- Ajouté: NextSelectedFileName(), InputRequester()
- Ajouté: DrawingBuffer(), DrawingBufferPixelFormat(), DrawingBufferPitch(), FillArea()
- Ajouté: Constantes intégrée au compilateur: #PB_Compiler_Date, #PB_Compiler_OS

- Optimisé: FileSystem, StringExtension et Date (chaque commande est maintenant indépendante)

- Amélioré: RunProgram() a un nouveau paramètre optionnel: RepertoireCourant$
- Amélioré: SetGadgetFont(#PB_Font_Default) revient à la font par défaut
- Amélioré: OpenWindow() accepte #PB_Window_WindowCentered et #PB_Window_ScreenCentered
- Amélioré: GetGadgetItemText() et SetGadgetItemText() supportent le TreeGadget()
- Amélioré: ReplaceSta un noNewsBlouveau paramètre optionnel: 'PositionDepart'
- Amélioré: SetGadgetState() supporte ImageGadget() pour changer son image
- Amélioré: Paramètre 'NiveauCompression' pour PackMemory(), AddPackFile() et AddPackMemory()
- Amélioré: Dans une DLL, AttachProcess(), DetachProcess(), etc.. doivent avoir le paramètre 'Instance'
- Amélioré: Lors de la création d'une DLL, les '_' précédent les noms de fonctions on été supprimés

- Corrigé: Problème de débogueur dans la bibliothèque FileSystem
- Corrigé: ReadPreferenceLong() et ReadPreferenceFloat()
- Corrigé: Bug de SpriteOutput() lors de l'utilisation de Plot()
- Corrigé: CDAudioTrackLength(): La dernière piste renvoyait toujours 0
- Corrigé: OpenWindowedScreen(): Mauvaises valeurs pour OffsetBas/Droite
- Corrigé: GetPathPart(), GetFilePart() et GetExtensionPart()
- Corrigé: SetGadgetText() lors d'une utilisation avec une ComboBox et une chaîne vide
- Corrigé: SetClipboardText() utilise maintenant le format TEXT au lieu du format OEM
- Corrigé: Le compilateur ne permet plus qu'une variable globale soit utilisée en paramètre d'une procédure
- Corrigé: En mode 'InlineASM', 'MOV eax, "String"' et 'MOV eax, #CONSTANT' étaient mal compilés
- Corrigé: Bug lors de l'utilisation des constantes négatives de type float
- Corrigé: Bug lors de l'utilisation de floats avec les fonctions API
- Corrigé: Bug lors d'une comparaison entre une chaîne de caractères et un nombre
- Corrigé: Bug lors de l'utilisation d'IncludeBinary dans une 'DataSection'
- Corrigé: Bug lorsque DECLARE et PROCEDURE ne correspondaient pas
- Corrigé: Bug lorsque DEBUG etait utilisé dans les procédures et affichait des chaînes de caractères

- Amélioration notable de l'éditeur (Fichiers multiples, Procédure browser, outils personnalisés et bien plus...). Il est maintenant OpenSource ! Merci à Danilo.

16Août 2002

PureBasic 3.30

C'est une version de correction de bogues et de synchronisation avec Linux

- Ajouté: HideMenu(), CreateSprite(), UseBuffer()
- Ajouté: Aide en français (entièrement traduite)

- Amélioré: SortArray() fonctionne avec les tableaux de 'float'
- Amélioré: GetFilePart(), GetPathPart() et GetExtensionPart() enlève les trémas (") si besoin est
- Amélioré: SetGadgetItemState() et GetGadgetItemState() peuvent maintenant agir sur ListIconGadget()
- Amélioré: LoadSprite(), GrabSprite(), CopySprite(), CatchSprite(), LoadJPEGSPrite(), CatchJPEGSprite() ont un nouveau paramètre 'Mode' optionnel

- Corrigé: SetClipboardText(): ne fonctionnait pas dans certains cas
- Corrigé: SpritePixelCollision(): ne fonctionnait pas si les sprites étaient de taille différente
- Corrigé: LoadJPEGSprite ignorait le paramètre 'Mode' (pas bon pour les Sprites3D)
- Corrigé: Bug dans AddGadgetItem() utilisé en conjonction avec ListIconGadget()
- Corrigé: PokeF() était manquant
- Corrigé: MovieAudio(): mauvaise échelle pour le volume (décibels)
- Corrigé: ReleaseMouse() n'était pas reconnue
- Corrigé: Bug dans la bibliothèque 2DDrawing (encore...)
- Corrigé: LoadSprite() ne fonctionnait pas avec les BMP en 16-bit et 32-bit
- Corrigé: GetGadgetText() utilisé avec un ComboBoxGadget() éditable
- Corrigé: ReadByte() et ReadWord() (avec des variables de type long/word)
- Corrigé: FreeMenu(), GadgetX() et GadgetY()
- Corrigé: DisplaySolidSprite() était manquant
- Corrigé: Routine de debug manquant pour GadgetID()
- Corrigé: Bug quand plusieurs films étaient ouverts (crash lors de la sortie du programme)
- Corrigé: ResizeImage()
- Corrigé: PreferenceGroup()
- Corrigé: ExamineMouse() renvoyait toujours 0
- Corrigé: PathRequester() crashait avec un chemin non initialisé
- Corrigé: InitSprite3D() crashait quand il était seul
- Corrigé: Editeur: ZoomSprite3D() ne s'affichait pas en surbrillance

9Juin 2002

PureBasic 3.20

Attention! Le comportement des callbacks a changé et va provoquer des blocages si vous ne les mettez pas à jour ! Voir la documentation de SetWindowCallback().

- Ajouté: Cipher library: CRC32Fingerprint(), MD5Fingerprint(), DESFingerprint(), Base64Encoder()
- Ajouté: AddKeyboardShortcut(), RemoveKeyboardShortcut(), SpinGadget(), WebGadget()
- Ajouté: GetMenuItemState(), SetMenuItemState(), MenuHeight()
- Ajouté: KeyboardReleased(), Trim(), Space()
- Ajouté: SelectElement(), LineXY(), GetExtensionPart()
- Ajouté: Opérateurs binaires ! (XOR) et ~ (NOT)
- Ajouté: Mot clef BASIC 'Protected'
- Ajouté: Support pour Shift+Tab pour revenir en arrière dans les gadgets
- Ajouté: Le débogueur détecte maintenant les pointeurs nuls et les divisions par 0

- Optimisé: Les bibliothèques 2DDrawing, Keyboard, Mouse, Sound et Sprite (commandes séparées) !
- Optimisé: Plot() est 40x plus rapide quand elle est utilisée avec ScreenOutput() (DirectX)

- Amélioré: PokeS() et PeekS() ont maintenant un paramètre 'Longueur' facultatif
- Amélioré: KeyboardPushed() gère #PB_Key_All comme paramètre
- Amélioré: FileSize() renvoie -2 si le fichier est un répertoire
- Amélioré: WindowID() peut avoir un paramètre optionel #Window
- Amélioré: Tous les gadgets ont un paramètre 'Options' facultatif qui permet de contrôler les looks ! (voir la documentation de chaque gadgets pour plus d'information)
- Amélioré: Plot(), Line(), Box(), Circle(), Ellipse() ont maintenant un paramètre 'couleur' facultatif.
- Amélioré: Quelques bogues corrigés dans le débogueur. Quand un programme est arrêté par le débogueur, tout est correctement libéré.
- Amélioré: Ajout des routines de debug à la bibliothèque Sprite

- Modifié: Renommage de StripLead() et StripTrail() en RTrim() et LTrim() pour une compatibilité avec les autres BASIC
- Modifié: NetworkClientEvent(), CloseNetworkConnection()
- Modifié: CreateToolBar(): ajout du paramètre 'WindowID'
- Modifié: CreateMenu(): ajout du paramètre 'WindowID'
- Modifié: NetworkClientEvent() et NetworkServerEvent(): plus de 'String' event: pouvait être une faille de sécurité majeure..
- Modifié: OpenWindowedScreen() les paramètres x,y prennent en compte les bordures et le titre de la fenêtre.
- Modifié: ResizeWindow(), WindowWidth() et WindowHeight() sont relatives à l'intérieur de la fenêtre, pour éviter les problèmes de skin

- Supprimé: AttachToolBar(), DetachToolBar(), AttachMenu(), ReceiveNetworkString()

- Corrigé: FrameGadget() avec un cadre en relief et enfoncé
- Corrigé: Evènements du ListViewGadget()
- Corrigé: FileSize()
- Corrigé: StopDrawing(), problèmes d'affichage sous win9x (corruption après de nombreux appels)
- Corrigé: Problèmes relatifs au debugger..
- Corrigé: AddGadgetItem() avec ListIconGadget() (-1 comme position ne fonctionnait pas)
- Corrigé: SpritePixelCollision() avec les sprites clippés
- Corrigé: Bug probable dans Random()
- Corrigé: SpritePixelCollision(), seule la valeur transparente noire (0,0,0) fonctionnait
- Corrigé: InitSprite(), InitSound(), InitPalette(), InitKeyboard() n'affichent plus de fenêtres si DirectX7+ n'est pas présent
- Corrigé: RemoveGadgetItem() et ClearGadgetItemList utilisés PanelGadget()
- Corrigé: PathRequester() chemin par defaut sous Win9x
- Corrigé: LinkedList() avec le type '.s' renvoie maintenant le pointeur correct vers l'élément (au lieu du pointeur du string)
- Corrigé: ReadPreferenceString()
- Corrigé: Documentation: SaveImage(), ScreenID(), SelectedFontStyle() et SelectedFontColor() étaient manquants

6Mai 2002

PureBasic 3.10

- Ajouté: Bibliothèque Preference: OpenPreferences(), CreatePreferences(), ReadPreferenceLong/Float/String(), WritePreferenceLong/Float/String() PreferenceComment(), PreferenceGroup()
- Ajouté: Support des skins Windows XP (Voir la fenêtre 'Compiler Options')
- Ajouté: GadgetX(), GadgetY(), GadgetWidth(), GadgetHeight(), GetGadgetItemState(), SetGadgetItemState(), GetGadgetItemText(), SetGadgetItemText(), CountGadgetItems(), TrackBarGadget(), IPAddressGadget()
- Ajouté: HideWindow(), RandomSeed(), MakeIPAddress(), IPAddressField()
- Ajouté: MouseWheel(), CatchSprite(), SaveSprite()
- Ajouté: RotateSprite3D(), ZoomSprite3D(), TransformSprite3D(), Sprite3DQuality(), Sprite3DBlendingMode()
- Ajouté: EventType(): Return/Change/Focus peuvent être detectés dans les StringGadget() et les ComboBox()
- Ajouté: CatchImage(), CreatePack(), ClosePack(), NextPackFile(), AddPackFile(), AddPackMemory(), PackFileSize(), OpenPack()
- Ajouté: DirectoryEntrySize(), DirectoryEntryAttributes()
- Ajouté: Compatible avec 'WindowBlinds' sur Windows XP

- Optimisé: Bibliothèques Image, Misc2, GadgetExtension, Requester, Sprite3D, Memory, et Packer (commandes séparées)

- Amélioré: CompareMemoryString(): Ajout d'un paramètre facultatif 'Longueur'
- Amélioré: DisplayPopupMenu(): Les paramètres (x,y) sont maintenant facultatifs
- Amélioré: ResizeGadget(): Utiliser '-1' dans un des paramètres pour garder la valeur précédente
- Amélioré: GetGadgetText() et SetGadgetText() fonctionnent maintenant avec TreeGadget() et ListIconGadget()
- Amélioré: AddGadgetItem() a maintenant un paramètre facultatif 'Image'
- Amélioré: OpenWindow() ajoute maintenant automatiquement la taille des bords pour éviter les problèmes de skin
- Amélioré: FileSize() renvoie la taille du fichier même si celui-ci est en cours d'utilisation

- Supprimé: InitGadget() etait inutile
- Supprimé: DoubleClick() et EventMouseButtons(), utiliser EventType() à la place
- Supprimé: OpenDefaultConsole(). Maintenant OpenConsole() detecte automatiquement si le programme est compilé en mode 'console' ou 'windows'
- Supprimé: AddListIconGadgetItem() et AddTreeGadgetItem(): utiliser AddGadgetItem() à la place
- Supprimé: ExpandTreeGadgetItem() et TreeGadgetItemState(): utiliser Set/GetGadgetItemState() à la place

- Corrigé: Evènements pour les ComboBox, ListIcon et Systray.
- Corrigé: Fuite de mémoire avec les strings dans certains cas
- Corrigé: Bug dans les procédures utilisées en tant que callbacks
- Corrigé: Create3DSprite(): la taille était un pixel trop petite
- Corrigé: Chaque fenêtre a sa propre classe
- Corrigé: PlaySound(): la routine du débogueur était manquante et une erreur à la fin du son joué
- Corrigé: ResizeGadget() avec PanelGadget() et quelques problèmes de rafraîchissement
- Corrigé: FindString() sous Win9x
- Corrigé: ExamineDirectory() sous Win9x
- Corrigé: Bibliothèque Module, le playback devrait fonctionner partout
- Corrigé: SetGadgetText() avec ListViewGadget()
- Corrigé: SelectedFontColor()
- Corrigé: Bug dans DeleteElement()
- Corrigé: NewList xxxx() seul produisait une erreur
- Corrigé: Bug lors de l'impression d'images
- Corrigé: Command Random() (encore !)
- Corrigé: ResizeImage() sous Win9x
- Corrigé: Bug avec IncludeBinary (seul un chemin absolu fonctionnait)
- Corrigé: Editeur: 'Tab' n'était pas correctement géré, bug dans la coloration syntaxique

4Avril 2002

PureBasic 3.00

- Ajouté: Bibliothèque Library
- Ajouté: Bibliothèque Help
- Ajouté: Bibliothèque Clipboard
- Ajouté: Bibliothèque Printer
- Ajouté: Bibliothèque Timer (Merci à Danilo)
- Ajouté: Bibliothèque ComDX (Merci à Danilo)
- Ajouté: ElseIf
- Ajouté: Si une condition (If/While...) n'est pas fermée avant 'EndProcedure', le compilateur s'arrête.
- Ajouté: ToolBarToolTip(), SpritePixelCollision()
- Ajouté: CopyMemoryString(), MemoryStringLength(), CompareMemory(), ReAllocateMemory()
- Ajouté: CompareMemoryString(), CopyImage(), ResizeImage(), GrabImage(), SetPaletteColor()
- Ajouté: MovieStatus(), MovieLength(), SoundVolume(), SoundPan(), SoundFrequency(), CatchSound()
- Ajouté: FirstDatabaseRow(), PreviousDatabaseRow(), CreatePalette(), GetPaletteColor()
- Ajouté: UsePalette(), RGB(), ReplaceString(), StrU(), StrF(), ValF(), HideGadget(), GadgetID()
- Ajouté: Possibilité d'avoir un nombre de paramètres variables pour chaque commande
- Ajouté: 'Declare' et 'DeclareDLL' pour pouvoir utiliser les procédures avant de les déclarer
- Ajouté: Catalogue Hollandais pour l'editeur

- Modifié: Nouvelle architecture pour les bibliothèques PureBasic pour permettre d'intégrer seulement les commandes réellement utilisées à la place de toute la bibliothèque. Pour l'instant, peu de bibliothèque ont été modifiées, mais c'est en cours :). De plus, les bibliothèques utilisent maintenant la norme STDCALL pour le passage des arguments, ce qui résout le problème des arguments inversés pour les DLL et les Callbacks. Les anciennes bibliothèques sont bien sûr toujours compatibles.
- Modifié: StopSound(): Utiliser '-1' arrête tous les sons d'un coup.
- Modifié: PlaySound(): Le paramètre 'Flags' est maintenant optionnel
- Modifié: Sort(): Une limite peut être spécifiée (ex: trier les éléments de 20 à 50 du tableau)
- Modifié: Fichiers résidents: Constantx '#VK_xx' ajoutées et quelques structures corrigées.
- Modifié: InitSound() n'a plus besoin de paramètre
- Modifié: Renommage de BackColour(), FrontColour() et TransparentSpriteColour() en BackColor(), FrontColor() et TransparentSpriteColor()

- Corrigé: Crash du compilateur pendant l'utilisation des constantes 'string'
- Corrigé: StartDrawing() bogues
- Corrigé: Random(), nombres plus aléatoires..
- Corrigé: GetDatabaseString(): lors du retour de valeurs nulles
- Corrigé: ExamineDirectory(): Plantages sur les sytèmes Windows 9x
- Corrigé: Les résidents utilisateurs sont maintenant correctement chargés.
- Corrigé: Bug dans l'éditeur qui empêchait la saisie de caractères spéciaux
- Corrigé: Bug FPU qui empêchait OpenGL de s'initialiser
- Corrigé: 'Debug' command: accepte maintenant les paramètres de type 'float'.

- Supprimé: Bibliothèques de Mr Skunk, car nous n'avons pas les sources pour corriger les bogues

24Février 2002

PureBasic 2.95

Note: Cette version permet de corriger des bogues importants avant la version majeure 3.0

- Ajouté: Support du format HtmlHelp pour l'aide. Les anciens fichiers HTML peuvent être supprimés.

- Corrigé: bogues dans le compilateur (Float dans les tableaux de structure, XIncludeFile, constantes 'xx', bug dans des expressions, fuites de mémoire dans les procédures contenant des strings)
- Corrigé: Intégration de la bibliothèque Image avec les Sprites
- Corrigé: Bug dans LoadJPGSprite()
- Corrigé: L'éditeur ne mettait pas en couleur correctement

27Janvier 2002

PureBasic 2.90

- Ajouté: Création des DLL !
- Ajouté: Les constantes peuvent maintenant être un string ou un float
- Ajouté: Les commandes Debug et DebugLevel
- Ajouté: Editeur traduit en Italien par Yuri.

- Modifié: Les noms de variables, constantes et tableaux ne sont plus sensibles aux minuscules/majuscules.

- Corrigé: PathRequester(), OpenFileRequester(), SaveFileRequester()
- Corrigé: Petit bug sur ExamineDirectory()
- Corrigé: GetDatabaseFloat()
- Corrigé: Le compilateur ne fonctionnait pas sur Windows NT4 Sp6a.

13Janvier 2002

PureBasic 2.82

- Ajouté: PeekF(), PokeF()
- Ajouté: Bibliothèque Math: ACos(), ASin(), ATan(), Pow(), Log(), Log10(), Round(), Cos(), Sin(), Tan(), Abs(), Sqr(), Int()
- Ajouté: SpriteOutput(): possibilité d'utiliser les commandes 2DDrawing sur n'importe quel sprite !
- Ajouté: #PB_WindowInvisible

- Corrigé: bogues dans le compilateur (a.l = Pow(), a = -16/variable)
- Corrigé: OpenDatabaseRequester() qui ignorait certains drivers ODBC
- Corrigé: FrontColour() qui plantait DirectX
- Corrigé: SaveImage() enregistrait toujours en 24-bit au lieu de 32-bit
- Corrigé: ListViewGadget() a maintenant une hauteur exacte (pas arrondie)
- Corrigé: SysTrayIconToolTip() ne plante plus si le texte spécifié dépasse 64 caractères
- Corrigé: ListIconGadget() ne libérait pas les icônes après FreeGadget()
- Corrigé: ChangeListIconGadgetDiplay() se redessine automatiquement
- Corrigé: Couleur de fond des fenêtres sous Windows XP

- Modifié: StrF(Nombre) pour StrF(Nombre, Precision)

1Janvier 2002

PureBasic 2.80 - Bonne Année !

Compilateur:
- Amélioré: réécriture complète du parseur pour gérer les expressions complexes
- Amélioré: Optimisation du code généré - Ajouté: l'option /REASM (ligne de commande) pour réassembler un code source après modification
- Ajouté: possibilité d'utiliser les floats dans les appels API
- Corrigé: Support des nombres flottants (comparaison, procedure, Abs(), Sin() etc..)
- Corrigé: Tous les bogues connus

Bibliothèques:
- Ajouté: Bibliothèque Sprite3D: Create3DSprite(), Display3DSprite(), Transform3DSprite(), Free3DSprite(), Start3D(), Stop3D()
- Ajouté: SaveImage()
- Ajouté: Routine de debug temps réél pour toutes les commandes
- Corrigé: ExamineDirectory()
- Corrigé: OpenFile() (Read wasn't working)

Editeur:
- Ajouté: Aide rapide (dans la barre d'état) pour toutes les commandes
- Ajouté: Accès rapide aux procédures
- Ajouté: Compatibilité Windows XP et support des thèmes
- Corrigé: Bug lors du remplacement de mots

28Novembre 2001

PureBasic 2.70

- Ajouté: ChangeSysTrayIcon(), SysTrayIconToolIip(), ExpandTreeGadgetItem(), TreeGadgetItemState()
- Ajouté: DisableMenuItem(), GadgetToolTip(), StatusBarIcon()
- Ajouté: UseGadgetList(), TransparentSpriteColor(), ClipSprite(), CopySprite(), GrabSprite()
- Ajouté: ProgramParameter()
- Ajouté: Bibliothèque Thread
- Ajouté: Support du '!' pour inclure des commandes directement gérées par l'assembleur
- Ajouté: Undo/Redo à plusieur niveau dans l'éditeur
- Ajouté: Coloration syntaxique lors d'un copier/coller

- Amélioré: StatusBarText(): 2 nouvelles options pour l'alignement (Centré et Droite)
- Amélioré: ReadData() renvoie maintenant le nombre d'octets lus
- Amélioré: Le debugger est maintenant un thread de haute priorité

- Modifié: PlaySound() ajout d'une option pour jouer en boucle.
- Modifié: SetStatusBarText() -> StatusBarText()
- Modifié: InitSprite() suppression du paramètre maximum pour les sprites

- Corrigé: DatabaseQuery(), GetPathPart(), LoadSprite()
- Corrigé: CloseScreen() peut maintenant switcher du mode plein écran au mode fenêtré
- Corrigé: bogues dans le compilateur ('Tableaux multidimensionnels' et 'Read data' dans les procédures)
- Corrigé: Scintillement de l'éditeur

5Novembre 2001

PureBasic 2.60

- Ajouté: Bibliothèque Database
- Ajouté: Bibliothèque Compressor
- Ajouté: Bibliothèque Console (Thanks to Sylvain)
- Ajouté: CopyMemory(), CatchJPEGSprite(), LoadJPEGSprite(), WindowMouseX(), WindowMouseY()
- Ajouté: MovieSeek(), MovieInfo(), DrawImage(), ScreenOutput(), WindowOutput()
- Ajouté: ImageOutput(), CreateImage()
- Ajouté: Possibilité d'utiliser les commandes 2DDrawing directement sur les écrans de jeux
- Ajouté: Mode XOR et rempli/détouré pour les commandes 2DDrawing
- Ajouté: Possibilité d'utiliser -1 avec FreeMemory() pour libérer toutes la mémoire d'un coup.
- Ajouté: Nouvelles options pour RunProgram(): lancement en tâche de fond et/ou caché
- Ajouté: Puissant moniteur assembleur dans le débogueur
- Ajouté: Afficheur de variables dans le débogueur

- Modifié: Toutes les vieilles fonctions MemoryBank ont été renommées.
- Modifié: ReadMemory() et WriteMemory -> ReadData(), WriteData()
- Modifié: Le format des bibliothèques PureBasic (voir le SDK)
- Modifié: DrawingOutput() a été renommé en StartDrawing() et ne prends plus WindowID() en argument
- Modifié: Eof() prend un paramètre maintenant

- Corrigé: StopModule() n'a plus de paramètre #Module
- Corrigé: Un petit bug dans le compilateur
- Corrigé: PlayMovie()
- Corrigé: Le debugger était inexact quand des commandes ASM étaient utilisées
- Corrigé: Un coller dans l'éditeur ne change plus la police de caractères
- Corrigé: Un gros bug dans le débugger introduit dans la version 2.60

23Septembre 2001

PureBasic 2.50

- Ajouté: Bibliothèque Mouse
- Ajouté: Bibliothèque Movie
- Ajouté: Bibliothèque Sort
- Ajouté: Adresse d'un procédure (@ProcedureName())
- Ajouté: Support du format 'Console' dans le fichier .exe compilé
- Ajouté: DisplayTranslucideSprite(), DisplayAlphaSprite(), DisplayShadowSprite(), DisplayRGBFilter(), ChangeAlphaIntensity(), ClearScreen() OpenWindowedScreen(), DisplaySolidSprite(), CloseScreen(), SetFrameRate(), IsScreenActive(), StartSpecialFX(), StopSpecialFX(), ResizeGadget() JoystickAxisX(), JoystickAxisY(), ChangeGamma(), SetWindowCallback(), Red(), Green(), Blue()

- Modifié: LoadSprite()
- Modifié: DisplayPalette (Supprimé l'argument écran)
- Modifié: ExamineJoystick()
- Modifié: OpenScreen (ajouté paramètre Text$)
- Modifié: FontRequester (Ajouté un nom et taille de police initiale)
- Modifié: FrameGadget (Ajouté un flag de style de bordure)

- Corrigé: Un bug dans les routines DirectX en mode multitache (Sprite, Keyboard, Mouse).
- Corrigé: Le support d'icône pour les bibliothèques ToolBar et Image
- Corrigé: SelectedFontName()
- Corrigé: ClearGadgetItemList() quant elle est utilisée avec TreeGadget()
- Corrigé: LoadFont() (YSize incorrecte)

Editeur:
- Ajouté: Sauvegarde automatique optionnelle avant la compilation
- Ajouté: Support de toutes les polices de caractères
- Ajouté: Autorise/Supprime la syntaxe colorée
- Ajouté: 2 nouveaux modes de coloration : 'Texte normal' et 'Procedures/Commandes'
- Ajouté: Changement de couleurs en temps réel
- Ajouté: Fenêtre 'A propos' améliorée;-)

- Amélioré: Coloration du texte ultra rapide au chargement d'un fichier
- Amélioré: Comportement de la coloration de syntaxe

1Août 2001

PureBasic 2.40

- Ajouté: Commandes de support des Data's : Read, Restore, Data, DataSection, EndDataSection
- Ajouté: Support des nombres flottants (première phase)
- Ajouté: Bibliothèque MemoryBank
- Ajouté: Bibliothèque StatusBar
- Ajouté: Bibliothèque Image
- Ajouté: Bibliothèque Systray
- Ajouté: EventlParam(), EventwParam(), ListIndex(), ListCount() ChangeCurrentElement(), ToolBarImageButton(), EventMouseButton(), UseDirectory(), CreatePopupMenu(), DisplayPopupMenu(), TreeGadget(), ImageGadget(), ButtonImageGadget(), AddTreeGadgetItem(), ListIconGadget(), AddListIconGadgetItem(), ChangeListIconGadgetDisplay(), AddGadgetColumn()

- Modifié: Le type par défaut devient un 'Long' (32-bit) au lieu d'un 'Word' (16-bit)
- Modifié: WaitWindowEvent()/WindowEvent() renvoient tous les événements Windows !
- Modifié: ComboBoxGadget(), PanelGadget() et ListViewGadget()
- Modifié: ExamineDirectory() -> Un nombre est ajouté pour pouvoir examiner plusieurs répertoires simultanément

- Corrigé: CopyFile() (ne peut plus écraser un fichier existant)
- Corrigé: FrontColour() (les couleurs Texte ne changent pas..)
- Corrigé: GetGadgetState(), SetGadgetState() et RemoveGadgetItem() pour supporter PanelGadget

- Supprimé: InitWindow(), InitRequester(), InitToolBar(), InitFont(), InitFile() et InitMenu()

17Mai 2001

PureBasic 2.30

- Ajouté: Support des 'Tab' dans la bibliothèque Gadget
- Ajouté: Directives de compilation : CompilerIf/Else/Endif, CompilerSelect/Case/Default/EndSelect
- Ajouté: Bibliothèque CD-Audio
- Ajouté: Bibliothèque FileSystem
- Ajouté: Linker d'icone intégré (GoRC n'est plus nécessaire)
- Ajouté: GetGadgetState(), SetGadgetState(), AddGadgetItem(), RemoveGadgetItem(), ClearGadgetItemList() PanelGadget(), ClosePanelGadget(), TextGadget(), SpritesCollision(), Delay(), OptionGadget(), FrameGadget() Loc(), PeekW/B(), PokeW/B(), GetPathPart(), GetFilePart(), RunProgram(), DoubleClick(), PathRequester()

- Amélioré: Debugger (Le mode pas à pas fonctionne maintenant parfaitement)
- Amélioré: Fichier exécutable généré plus compact et plus rapide
- Amélioré: Réécriture complète du noyau du compilateur
- Amélioré: Réduction significative de la taille du compilateur et de l'éditeur
- Amélioré: Beaucoup de petites corrections de bogues trop longues à énumérer

- Corrigé: Quelques bogues du compilateur

- Modifié: LSR et RSR en << et >>
- Modifié: AddComboBoxItem() et AddListViewItem() en AddGadgetItem()

25Mars 2001

PureBasic 2.20

- Ajouté: Support du debugger dans toutes les PureLibrairies. Un programme ne 'plante' plus maintenant aussi facilement et il est plus facile de détecter les erreurs.
- Ajouté: Support de Windows NT4.0 pour les bibliothèques multimédia (Sprite, Palette, Sound & Keyboard), ce qui permet le développement de jeux ou d'applications mulitmédia qui sont compatible WinNT4 !
- Ajouté: Lof(), ReadMemory(), WriteMemory(), PeekS(), PokeS(), NetworkClientEvent(), SetGadgetFont(), WaitWindowEvent(), FileSeek()
- Ajouté: Bibliothèque Module : Permet de jouer les modules Protracker, Fastracker ou Impulse Tracker.
- Ajouté: Chaque fichier source contient ses informations (exécutable, options de compilation, etc.)
- Ajouté: Préférences pour personnaliser facilement l'éditeur (couleurs, répertoire par défaut, etc...)
- Ajouté: Possibilité d'associer une icône lors lors de la création d'un fichier exécutable
- Ajouté: Accès direct au fichier d'aide Win32.hlp en pressant F1 sur une fonction de l'API.

- Corrigé de bogues du compilateur, il est maintenant plus stable
- Mise à jour des documentations

26Février 2001

PureBasic 2.10

- Ajouté: ListViewGadget(), AddListViewItem(), GetGadgetText(), SetGadgetText(), PeekS(), SizeOf()
- Ajouté: Fichier résident Microsoft Windows © contenant les constantes et les structures nécessaires pour accéder à l'API depuis PureBasic
- Ajouté: Debugger intégré pour suivre pas à pas le déroulement d'un programme. Il propose 4 commandes (Pas à pas, Stop, Continue, et Quit (utile pour sortir d'une boucle infinie...) et peut être appelé et contrôlé dans le code source par les commandes suivantes : CallDebugger, EnableDebugger, DisableDebugger.

- Editeur largement amélioré : multilangues (Français, Allemand, Anglais), aide contextuelle (F1 sur un mot-clé), Goto ligne, options de compilation, amélioration de la syntaxe colorée, fichier '.prefs'

- Nombreux bogues corrigés et stabilité de PureBasic améliorée.
- Mise à jour: Documentation Allemande des manuels

17Décembre 2000

PureBasic 2.00

- Version finale !
- Correction de tous les bogues connus

28Novembre 2000

PureBasic 2.00 PR 3

- Quelques bogues DirectX sont corrigés (WaponezII doit maintenant fonctionner partout)
- Ajouté: 2 nouvelles bibliothèques (Requester et ToolBar)
- Editeur dédié (avec syntaxe colorée et un accès direct au compilateur)

- Fixed: DirectX related bugs

12Novembre 2000

PureBasic 2.00 PR 2

- Seconde version publique de la version Windows. Pour programmeurs expérimentés et beta-testers.
- Ajouté: 6 nouvelles bibliothèques (Sprite, Joystick, Keyboard, Sound, Network et Palette)
- De nombreux bogues ont été corrigés. Merci aux traqueurs de bogues :)
- Une première version de Waponez II (Shoot-em-up) est ajoutée pour tester les fonctions de jeu.

22Octobre 2000

PureBasic 2.00 PR 1

- Première version publique de la très attendue version Windows ! Destinée uniquement aux programmeurs expérimentés.

- On y retrouve la majorité des fonctionnalités de la version Amiga, plus quelques nouvelles. La version Amiga 2.00 sera proposée en même temps que la version Windows complète pour que leurs développements soient parfaitement synchronisés.

- Mise à jour de la version allemande de PureBasic 1.60 (AmigaOS).

- Fantaisie Software a maintenant une nouvelle adresse internet : https://www.purebasic.com