Developpez.com - Rubrique PureBasic

Le Club des Développeurs et IT Pro

PureBasic 5.40 LTS est disponible

De nombreuses nouveautés vous attendent.

Le 2015-10-16 16:20:00, par comtois, Responsable Purebasic
PureBasic 5.40 LTS est disponible sur votre compte ou en version démo :
Télécharger

Il y a 3 nouveaux contributeurs dans l'équipe PureBasic :
- Vera, qui aide à la rédaction de la doc
- bbanelli, qui aide à l'import des fonctions GTK pour la version Linux
- wilbert, qui aide à l'import des fonctions Cocoa pour la version OS X

Pour avoir un aperçu, visitez le répertoire import à cette adresse.
http://svn.purebasic.fr:8080/websvn

Pour finir vous trouverez sûrement votre bonheur dans la longue liste des nouveautés :

16 Octobre 2015 : Version 5.40

- Ajouté: Nouvelle bibliothèque Vectorielle 2D
- Ajouté: Nouvelle bibliothèque CGI supportant le CGI standard et le FastCGI
- Ajouté: Echappement de chaînes de caractères en utilisant l'opérateur '~' (ex: a$ = ~"Salut\n le 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) pour 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 archive 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 inndiquer 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écialepour affecterune vraie valeur Null à une chaîne (pour la libérer complètement). Peut être utilisée aussi pour les fonction 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 et #PB_Entity_EnableContactResponse 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ée '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 utiilise GtkPrint au lieu de GnomePrint
- Mise à jour: Windows, compilateur VC++ 2013 pour une meilleure génération du code
- Mise à jour: SQLite version 3.8.10.2

- Corrigé: Support des archives Zip
- Corrigé: Envoi 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é: RemovePackFile()
- Supprimé: #PB_Packer_CompressedSize pour les archives ZIP et 7z dans PackerEntrySize()
- Supprimé: AvailableScreenMemory()
Hi all,

The new version of PureBasic is finally out ! Thank you all for your testing, and I would like to welcome 3 new contributors which helped a lot for this release:

- Vera, who helps on the doc
- bbanelli, who helps on the GTK imports in the Linux version of PureBasic
- wilbert, who helps on Cocoa imports in the OS X version of PureBasic

This is a LTS version (Long Term Support), which will be supported for bug fixes for 2 years, until october 2017. The previous LTS (5.24) is now deprecated and won't receive any new fixes.

It's quite a lot of stuff, and we really pleased to improve PureBasic further ! You can get it right now on your online account

Have fun,

The Fantaisie Software Team

Quelques infos grappillées durant la phase de test bêta
  Discussion forum
5 commentaires
  • comtois
    Responsable Purebasic
    En attendant que l'aide en ligne soit mise à jour (elle est à jour dans l'archive à télécharger)
    http://www.purebasic.com/documentation/index.html

    Voici un aperçu des commandes disponibles pour la bibliothèque vectorielle :
    • AddPathArc
    • AddPathBox
    • AddPathCircle
    • AddPathCurve
    • AddPathEllipse
    • AddPathLine
    • AddPathText
    • BeginVectorLayer
    • ClipPath
    • ClosePath
    • ConvertCoordinateX
    • ConvertCoordinateY
    • CustomDashPath
    • DashPath
    • DotPath
    • DrawVectorImage
    • DrawVectorParagraph
    • DrawVectorText
    • EndVectorLayer
    • FillPath
    • FillVectorOutput
    • FlipCoordinatesX
    • FlipCoordinatesY
    • IsInsidePath
    • IsInsideStroke
    • IsPathEmpty
    • MovePathCursor
    • NewVectorPage
    • PathCursorX
    • PathCursorY
    • PdfVectorOutput
    • ResetCoordinates
    • ResetPath
    • RestoreVectorState
    • RotateCoordinates
    • SaveVectorState
    • ScaleCoordinates
    • SkewCoordinates
    • StartVectorDrawing
    • StopVectorDrawing
    • StrokePath
    • SvgVectorOutput
    • TranslateCoordinates
    • VectorFont
    • VectorOutputHeight
    • VectorOutputWidth
    • VectorParagraphHeight
    • VectorResolutionX
    • VectorResolutionY
    • VectorSourceCircularGradient
    • VectorSourceColor
    • VectorSourceGradientColor
    • VectorSourceImage
    • VectorSourceLinearGradient
    • VectorTextHeight
    • VectorTextWidth
    • VectorUnit


    et un aperçu des commandes de la bibliothèque CGI :
    • CGIBuffer
    • CGICookieName
    • CGICookieValue
    • CGIParameterData
    • CGIParameterDataSize
    • CGIParameterName
    • CGIParameterType
    • CGIParameterValue
    • CGIVariable
    • CountCGICookies
    • CountCGIParameters
    • FinishFastCGIRequest
    • InitCGI
    • InitFastCGI
    • ReadCGI
    • WaitFastCGIRequest
    • WriteCGIData
    • WriteCGIFile
    • WriteCGIHeader
    • WriteCGIString
    • WriteCGIStringN
  • comtois
    Responsable Purebasic
    Envoyé par Fred
    For those having issue with Windows x64 version, just redownload it from your user account, it should be solved.

    La version windows x64 plantait, la correction est faite, vous pouvez télécharger à nouveau l'archive.
  • comtois
    Responsable Purebasic
    Apparemment Fred a fait une mise à jour de dernière minute de la lib SQLite, dans l'historique il indique Mise à jour: SQLite version 3.8.10.2

    Mais si j'en crois ce code, il a mis la version 3.8.11.1 :
    Code :
    1
    2
    3
    4
    5
    6
    7
    ImportC "sqlite3.lib" 
      sqlite3_libversion() 
      sqlite3_version.s{20}
    EndImport 
    
    Debug PeekS(sqlite3_libversion(), #PB_Any, #PB_Ascii) 
    Debug sqlite3_version
  • comtois
    Responsable Purebasic
    La doc française est en ligne :
    http://www.purebasic.com/french/documentation

    Avec un aperçu sur la nouvelle bibliothèque vectorielle :
    Bibliothèque vectorielle

  • comtois
    Responsable Purebasic
    La commande CompilerWarning n'était pas documentée :
    Code :
    CompilerWarning "Hi there"
    Timo, le co-développeur de PureBasic indique à son sujet :
    Please note that what was implemented here is a compiler warning. This means the warning is triggered at compile-time and you have to use things like CompilerIf if you want to show it conditionally.
    What ts-soft posted is code to trigger a debugger warning. This warning is issued by the debugger at run-time, and it will only show if the statement is actually executed (so you can show it conditionally using a regular if). There seems to be some confusion between the two at times.

    Je ne traduis pas, votre anglais est bien meilleur que le mien.

    Et il en profite pour annoncer quelques nouveautés de la version à venir 4.50 :
    For completeness, i just added two functions DebuggerError(Message$) and DebuggerWarning(Message$) to trigger debugger errors (in essence what ts-soft showed as an official function). This will be in v5.50.
    Et voici le code de ts-soft
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    CompilerIf #PB_Compiler_Debugger
      CompilerSelect #PB_Compiler_OS
        CompilerCase #PB_OS_Windows
          Import ""
             PB_DEBUGGER_SendWarning(Message.p-ascii)
           EndImport
        CompilerDefault
          ImportC ""
             PB_DEBUGGER_SendWarning(Message.p-ascii)
           EndImport
       CompilerEndSelect
    CompilerEndIf
    
    Macro CompilerWarning(error)
      CompilerIf #PB_Compiler_Debugger
        PB_DEBUGGER_SendWarning(error)
      CompilerEndIf
    EndMacro
    
    CompilerWarning("A warning should appear in the IDE.")