IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PureBasic Discussion :

PureBasic 5.40 beta 1 est disponible sur votre compte


Sujet :

PureBasic

  1. #1
    Responsable Purebasic

    Avatar de comtois
    Inscrit en
    Avril 2003
    Messages
    1 258
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 1 258
    Points : 9 754
    Points
    9 754
    Billets dans le blog
    8
    Par défaut PureBasic 5.40 beta 1 est disponible sur votre compte
    La version 5.40 beta 1 est disponible sur votre compte. Je mettrai la liste des nouveautés traduites en français pour la version finale.

    Hello folks,

    It has been a while since the last PureBasic update, but it's now ready to roll ! It brings some important changes, but also a lot of new features:


    • - Added new Vector 2D library
    • - Added new CGI library with standard and FastCGI support
    • - Added Literal string escape support with the '~' operator (ex: a$ = ~"Hello\nWorld\n")
    • - Added EscapeString()/UnescapeString() function to allow escaping operation on any strings (variables etc.)
    • - Added EnumerationBinary to create bitmask enumeration automatically
    • - Added database parameter binding to ease request construction
    • - Added SetDatabaseBlob(), SetDatabaseFloat(), SetDatabaseDouble(), SetDatabaseLong()
    • - Added SetDatabaseQuad(), SetDatabaseString(), SetDatabaseNull()
    • - Added SHA2 and SHA3 (224/256/384/512-bit) support to Cipher library
    • - Added StringFingerprint()
    • - Added CRC32 support for StartFingerprint()
    • - Added ReceiveHTTPMemory(), IsJoint()
    • - Added RefreshDialog() to recalc dimension after a text change or similar
    • - Added "group" XML attribute for 'option' dialog gadget, to specify explicitly a group
    • - Added HTTPS and simple auth support for ReceiveHTTPFile() and GetHTTPHeaders()
    • - Added Auto redirect support for ReceiveHTTPFile() and ReceiveHTTPMemory()
    • - Added ASynchronous mode for ReceiveHTTPFile() and ReceiveHTTPMemory()
    • - Added HTTPProgress(), AbortHTTP() and FinishHTTP() to control async mode
    • - Added HTTPS/TLS support for SendMail()
    • - Added FlushPreferenceBuffers()
    • - Added CopyDebugOutput() to copy the debug output to the clipboard from code
    • - Added 7z archive creation
    • - Added tar (gz and bzip2) archive support for creation and decompression
    • - Added Full path in IDE recent files menu
    • - Added #PB_ProgressBar_Unknown for SetGadgetState() to indicate unknown progress
    • - Added #PB_UTF8/Ascii/Unicode support to ReadCharacter() and WriteCharacter()
    • - Added #PB_UTF8 support to URLEncoder() and URLDecoder (now the default mode)
    • - Added Windows 8.1/10 and OS X 10.9/10/11 support to OSVersion()
    • - Added #PB_Editor_xxx constants when using the 'Version' info on Windows
    • - Added #PB_Program_Ascii/Unicode/UTF8 support to RunProgram()
    • - Added linux/osx style flags for the commandline compiler on Windows to ease cross-platform scripts
    • - Added: #PB_File_SharedWrite support to ReadFile() and CreateFile()
    • - Added: 'IMPORTLIST' compiler interface to get all the predefined API functions
    • - Added: #Null$ special string constant to affect a real null value to a string (to free it completely). It can be
    • used as well for API function which sometimes accept NULL instead of a string address.
    • - Updated the Linux printer lib to use native GtkPrint instead of GnomePrint
    • - Updated the Windows compiler to VC++ 2013 for better code generation
    • - Updated SQLite to 3.8.10.2
    • - Fixed Zip archive support
    • - Fixed send mail and http request issues
    • - The default GTK version is now GTK3 on Linux. A gtk2 subsystem has been added for backward compatibility.
    • - The default string format for RunProgram() read/writestring is not UTF8 instead of Unicode
    • - Changed the Cipher lib to be modular (now UseMD5Fingerprint() and such commands needs to be used)
    • - Renamed ExamineFingerprint() to StartFingerprint()
    • - Renamed NextFingerprint() to AddFingerprintBuffer()
    • - Removed RemovePackFile()
    • - Changed: the SendMail() 'Asynchronous' parameter has been replaced by the #PB_Mail_Asynchronous flag.
    • - Removed: #PB_Packer_CompressedSize support for ZIP and 7z archives with PackerEntrySize()
    • - Removed: AvailableScreenMemory()
    • - Fixed: 'CONSTANTLIST' compiler interface, now string constants are returned as escaped strings.
    • - Changed: DLLImporter has been removed and .pbl files are no more supported. New 'import library' files can be
    • created using the '/IMPORT' switch of the pbcompiler.


    The english documentation is up-to-date, and please check the new "Migration from and older PureBasic version" doc page to see all changes needed to update easily. This version introduce a new "import" resident file format, which uses an Import/EndImport block and create a file from it. It replaces the old ".pbl" format which is no more supported, and allow imported function arguments to be typed with pseudotype and more. We also published all the API imports file on the same SVN than the documention (available for all in read-only), so if you want to help to improve them (by putting the right type where needed, or changing the argument names to be more explicits) you can check out it and publish the patches: svn://svn.purebasic.fr/home/svn/Documentation/v5.40

    This will be the last version supporting the ASCII mode, and will be maintained until 1 september 2017.

    Have fun with PureBasic !

    The Fantaisie Software Team
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

  2. #2
    Responsable Purebasic

    Avatar de comtois
    Inscrit en
    Avril 2003
    Messages
    1 258
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 1 258
    Points : 9 754
    Points
    9 754
    Billets dans le blog
    8
    Par défaut
    Starting with 5.40, we changed the way of importing API functions (now it's much more robust and flexible), so we need to have strong typing of every args (especially strings). If you encounter one API call which is incorrectly declared, just paste it here and we will fix it.
    La façon d'importer les fonctions de l'API change à partir de la 5.40. Le typage est plus strict que dans les versions précédentes, aussi si vous constatez que la déclaration d'une fonction n'est pas correcte, n'hésitez pas à signaler le problème ici pour qu'il soit corrigé.

    Source de l'information
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

  3. #3
    Responsable Purebasic

    Avatar de comtois
    Inscrit en
    Avril 2003
    Messages
    1 258
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 1 258
    Points : 9 754
    Points
    9 754
    Billets dans le blog
    8
    Par défaut
    Explications de Fred pour utiliser la biblio CGI :

    To test CGI on Windows, I installed "easyphp" http://www.easyphp.org/ , which install all needed tools, then added this to the apache conf file:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ProxyPass /testfcgi/ fcgi://localhost:5600/
    and uncommented the lines:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
    Once restarted, apache should redirect the url http://localhost/testfcgi to the port 5600

    Then compile the example found in WaitFastCGIRequest() doc and it should work.

    On linux, you need to do the same (installing apache and enabling mod proxy fastcgi)
    Source de l'information
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

  4. #4
    Responsable Purebasic

    Avatar de comtois
    Inscrit en
    Avril 2003
    Messages
    1 258
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 1 258
    Points : 9 754
    Points
    9 754
    Billets dans le blog
    8
    Par défaut
    Un utilisateur a comparé les différents formats de compression disponibles avec la 5.40, voici son test et ses résultats :

    Purebasic spoils us with 5 different built-in compression codecs (6 if you count the uncompressed bundling of TAR, or 7 if you count the deprecated x86-only JCALG1)
    These are: ZIP, LZMA, BriefLZ, TAR.GZip, and TAR.BZip2 (ps. Fred it would be nice if BZIP2 and GZIP were available on their own, rather than having to use TAR bundling! TAR is ewww but BZIP2 is awesome!)

    So here's a simple test program to help find out which of Purebasic's built-in packers is best suited to the data we want to compress/decompress.

    The variables are PACK TIME, UNPACK TIME, PACK SIZE/RATIO, and PB EXE SIZE. Each packer of course has its own strengths and weaknesses!

    Here's the results of a 91 megabyte SQL dump (UTF8 textfile). Tested with Purebasic x86 5.40 LTS in Windows XP. I havent had a chance to do x64 test.
    I ran each test twice and only recorded the 2nd result to ensure 'even caching':

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
                    ZIP        LZMA       BriefLZ    TAR        TAR.GZ     TAR.BZ2       "Winning" order (TAR excluded):
                    --------------------------------------------------------------       ----------------
    PACK TIME       3175ms     67647ms    1653ms     1141ms     3325ms     9464ms        BriefLZ, ZIP, TAR.GZ, TAR.BZ2, LZMA
    UNPACK TIME     1532ms     2254ms     2273ms     1252ms     1332ms     3145ms        TAR.GZ, ZIP, LZMA, BriefLZ, TAR.BZ2
    PACK SIZE       25218579   18887882   34247532   94030848   25218522   19782588     
    PACK RATIO      26.820%    20.087%    36.422%    100.002%   26.820%    21.039%       LZMA, TAR.BZ2, TAR.GZ, ZIP, BriefLZ
    PB.EXE SIZE     207,872    291,328    15,872     219,648    219,648    219,648       BriefLZ, ZIP, TAR.GZ/TAR.BZ2, LZMA
    So, from this one test with this dataset, we can summarize:
    ZIP: A great balance of compression and speed.
    LZMA: Extremely slow compression, but thats the price you pay for the very best compression ratio.
    BriefLZ: Extremely good performance in both packing & unpacking, and the resulting exe is still TINY unlike the others. 36% compression to ZIPs 26% means it's not great, but still pretty good.
    TAR.GZ: On par with ZIP.
    TAR.BZ2: Compression ratio so very close to LZMA yet compression speed is 7x faster. Decompression 1.4x slower than LZMA however.

    Quite a nice menu to choose from, depending on ours projects individual needs
    One of the nice surprises I found was that the BriefLZ codec only adds 10kb to the exe - thats with full compress + decompress support! And its speed of both is very good, especially compression but still respectable decompress speed. Its compression ratio is also quite respectable too, compressing my 91mb sample file to 36%. Compared to ZIPs 27% its not great but still pretty good, and overall I think it makes an excellent packer for executable resources!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    #PACKER = 1  ;1=ZIP  2=LZMA  3=BriefLZ  4=TAR  5=TAR.GZ  6=TAR.BZ2
     
    sFileToPack.s = "c:\temp\91mb.txt"            ;Test file to compress. Ensure you have write access to c:\temp\
    sFileToSave.s = "c:\temp\mytemparchive"       ;Save to this archive file (minus extension)
     
    CompilerIf #PB_Compiler_Debugger = 1
      MessageRequester("Disable the debugger first", "Error": End   ;in future ill use CompilerError
    CompilerEndIf
     
     
    CompilerIf #PACKER = 1
      UseZipPacker()
      sSaveFile.s = sFileToSave + ".zip"
      PackerId = #PB_PackerPlugin_Zip
      sResult.s = "Packer: ZIP" + #CRLF$
    CompilerElseIf #PACKER = 2
      UseLZMAPacker()
      sSaveFile.s = sFileToSave + ".lzma"
      PackerId = #PB_PackerPlugin_Lzma
      sResult.s = "Packer: LZMA" + #CRLF$
    CompilerElseIf #PACKER = 3
      UseBriefLZPacker()
      sSaveFile.s = sFileToSave + ".brieflz"
      PackerId = #PB_PackerPlugin_BriefLZ
      sResult.s = "Packer: BriefLZ" + #CRLF$
    CompilerElseIf #PACKER = 4
      UseTARPacker()
      sSaveFile.s = sFileToSave + ".tar"
      PackerId = #PB_PackerPlugin_Tar 
      sResult.s = "Packer: TAR" + #CRLF$
    CompilerElseIf #PACKER = 5
      UseTARPacker()
      sSaveFile.s = sFileToSave + ".tar.gz"
      PackerId = #PB_PackerPlugin_Tar | #PB_Packer_Gzip   
      sResult.s = "Packer: TAR.GZ" + #CRLF$
    CompilerElseIf #PACKER = 6
      UseTARPacker()
      sSaveFile.s = sFileToSave + ".tar.bz2"
      PackerId = #PB_PackerPlugin_Tar | #PB_Packer_Bzip2   
      sResult.s = "Packer: TAR.BZ2" + #CRLF$
    CompilerElse
      MessageRequester("Invalid packer id","Error"): End
    CompilerEndIf
     
     
    DeleteFile(sSaveFile)
    OrigSize.i = FileSize(sFileToPack)
    hPack.i = CreatePack(#PB_Any, sSaveFile, PackerId)
    If hPack = 0
      MessageRequester("Error","CreatePack failed")
    Else
      Time1.i = GetTickCount_()
      AddPackFile(hPack, sFileToPack, "packed.dat") 
      TimePack.i = GetTickCount_() - Time1
      ClosePack(hPack) 
     
      hPack.i = OpenPack(#PB_Any, sSaveFile, PackerId)
      If hPack = 0
        MessageRequester("Error","OpenPack failed")
      Else   
        DeleteFile("c:\~extract.dat")
        Time1.i = GetTickCount_()
        Result = ExaminePack(hPack)
        NextPackEntry(hPack)
        Unpacked.i = UncompressPackFile(hPack, "c:\~extract.dat")
        TimeUnpack.i = GetTickCount_() - Time1
        ClosePack(hPack)
      EndIf
     
      sResult = sResult + "Packed in " + Str(TimePack) + "ms" + #CRLF$ +
                "Unpacked in " + Str(TimeUnpack) + "ms" + #CRLF$ +
                "Packsize=" + Str(FileSize(sSaveFile)) + " (" + StrF((FileSize(sSaveFile)/ OrigSize) * 100,3) + "%)" + #CRLF$ +
                "Origsize=" + Str(OrigSize) + "  Unpacked=" + Str(Unpacked) + #CRLF$ +
                "Executable size=" + Str(FileSize(ProgramFilename()))
      MessageRequester("Result", sResult)
      SetClipboardText(sResult) 
    EndIf
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

  5. #5
    Responsable Purebasic

    Avatar de comtois
    Inscrit en
    Avril 2003
    Messages
    1 258
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 1 258
    Points : 9 754
    Points
    9 754
    Billets dans le blog
    8
    Par défaut
    Fred vient de mettre en place un WebSVN pour consulter les fichiers de la doc sans Subversion.

    I just setup a WebSVN to browse the public PureBasic SVN:

    http://svn.purebasic.fr:8080/websvn

    You can find all the Windows API imports in Imports/Windows
    C'est utile pour ceux qui veulent contribuer à l'amélioration des déclarations des fonctions API, voir l'exemple de ts-soft ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Import "Advapi32.lib"
      RegCloseKey_(hKey)
      RegConnectRegistry_(lpMachineName.s, hKey, *phkResult)
      RegCreateKey_(hKey, lpSubKey.s, *phkResult)
      RegCreateKeyEx_(hKey, lpSubKey.s, Reserved, lpClass.s, dwOptions, samDesired, lpSecurityAttributes.s, *phkResult, *lpdwDisposition)
      RegDeleteKey_(hKey, lpSubKey.s)
      RegDeleteValue_(hKey, lpValueName.s)
      RegEnumKey_(hKey, dwIndex, *lpName, cchName)
      RegEnumKeyEx_(hKey, dwIndex, *lpcName, lpReserved, *lpClass, *lpcClass, *lpftLastWriteTime)
      RegEnumValue_(hKey, dwIndex, *lpValueName, *lpcchValueName, lpReserved, *lpType, *lpData, *lpcbData)
      RegFlushKey_(hKey)
      RegGetKeySecurity_(hKey, SecurityInformation, *pSecurityDescriptor, *lpcbSecurityDescriptor)
    EndImport
    Source de l'information
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

  6. #6
    Responsable Purebasic

    Avatar de comtois
    Inscrit en
    Avril 2003
    Messages
    1 258
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 1 258
    Points : 9 754
    Points
    9 754
    Billets dans le blog
    8
    Par défaut PureBasic 5.40 beta 2 est disponible
    Une nouvelle beta est disponible sur votre compte, elle corrige pas mal de bogues et comporte quelques nouvelles fonctions 3D.

    Beta 2 is out ! It should include all fixed bugs since beta 1 and add some 3D related commands:


    • - Added: CreateCone(), CameraCustomParameter(), ResizeCamera()
    • - Added: #PB_Entity_DisableContactResponse and #PB_Entity_EnableContactResponse for SetEntityAttribute()
    • - Added: #PB_Entity_ConeBody, #PB_Entity_PlaneBody
    • - Added: FreeEntityBody(), FreeTerrainBody()
    • - Added: ApplyEntityTorque(), ApplyEntityTorqueImpulse()
    • - Added: Added 'CollisionGroup' and 'CollisionMask' parameter for RayCollide()
    • - Renamed: EntityPhysicBody() to CreateEntityBody()
    • - Renamed: TerrainPhysicBody() to CreateTerrainBody()


    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

  7. #7
    Responsable Purebasic

    Avatar de comtois
    Inscrit en
    Avril 2003
    Messages
    1 258
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 1 258
    Points : 9 754
    Points
    9 754
    Billets dans le blog
    8
    Par défaut PureBasic 5.40 beta 3 est disponible
    Une nouvelle beta est disponible sur votre compte, elle corrige pas mal de bogues et comporte quelques nouveautés.

    Beta 3 is available ! It should include all fixed bugs since beta 2 and add a few stuffs:


    - Added: #PB_Ascii, #PB_UTF8 and #PB_Unicode support to Create/Open/ReadFile() to set the default write/read mode
    - Added: #PB_ByteLength flag for PeekS() and #PB_UTF8 (only)
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

  8. #8
    Responsable Purebasic

    Avatar de comtois
    Inscrit en
    Avril 2003
    Messages
    1 258
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 1 258
    Points : 9 754
    Points
    9 754
    Billets dans le blog
    8
    Par défaut PureBasic 5.40 beta 7 est disponible
    J'ai laissé passer quelques bêtas, nous en sommes à la beta 7, elle est disponible sur votre compte.

    Hello folks,

    Beta 7 is out and should bring more fixes, especially on OS X. Have fun !

    OK, the quick fix was half baked, so hopefully beta 6 will solve it completely. Happy testing !

    Beta 5 is out and only fix one bug with API and string concatenation (which could prevent further testing). On a side note, we have signed the OS X apps since the 5.40 beta, can OS X users tests if it works with gatekeeper activated ? The IDE should open after displaying a warning message without changing the default security features.

    Beta 4 is available ! It should include many bug fixes since beta 3. Also some minor additions:

    - Added: #Empty$ constant
    - Added: #PB_ByteLength support to MemoryStringLength()

    - Changed: The DotPath(), DashPath() & CustomDashPath() commands now have an optional 'StartOffset' parameter
    - Changed: The 'Distance' parameter of DotPath() has been changed: It now refers to the distance between the center of each dot (not the space between the dots)
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

  9. #9
    Responsable Purebasic

    Avatar de comtois
    Inscrit en
    Avril 2003
    Messages
    1 258
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 1 258
    Points : 9 754
    Points
    9 754
    Billets dans le blog
    8
    Par défaut PureBasic 5.40 beta 8 est disponible sur votre compte
    La beta 8 est disponible sur votre compte, la version finale ne devrait pas tarder.
    Beta 8 is out and brings more fixes, especially on Linux and libcurl. Don't hesitate to test it with your projects, as we are getting closer to release, thanks !
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

  10. #10
    Responsable Purebasic

    Avatar de comtois
    Inscrit en
    Avril 2003
    Messages
    1 258
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 1 258
    Points : 9 754
    Points
    9 754
    Billets dans le blog
    8
    Par défaut PureBasic 5.40 beta 10 est disponible sur votre compte
    La beta 10 est disponible sur votre compte, c'est le moment de tester à fond, la version finale ne devrait plus tarder.

    Beta 10 is out and should iron out the lastest important fixes before the release. Don't hesitate to test it with your projects, thanks !

    Beta 9 is out and brings more fixes. Don't hesitate to test it with your projects, as we are getting closer to release, thanks !
    Vous souhaitez participer à la rubrique PureBasic (tutoriels, FAQ, sources) ? Contactez-moi par MP.

Discussions similaires

  1. PureBasic 5.30 (beta) est disponible sur votre compte
    Par comtois dans le forum PureBasic
    Réponses: 10
    Dernier message: 09/07/2014, 20h50
  2. PureBasic 5.22 LTS beta 1 est disponible sur votre compte
    Par comtois dans le forum PureBasic
    Réponses: 1
    Dernier message: 10/03/2014, 18h16
  3. PureBasic 5.21 LTS beta 1 est disponible sur votre compte
    Par comtois dans le forum PureBasic
    Réponses: 2
    Dernier message: 18/11/2013, 19h40
  4. PureBasic 5.20 bêta 1 est disponible sur votre compte
    Par comtois dans le forum PureBasic
    Réponses: 21
    Dernier message: 15/09/2013, 13h10
  5. PureBasic 5.11 beta 1 est disponible sur votre compte
    Par comtois dans le forum PureBasic
    Réponses: 2
    Dernier message: 13/03/2013, 16h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo