Seite 1 von 6

PureBasic 5.40 LTS beta 10

Verfasst: 31.08.2015 15:35
von ts-soft

Code: Alles auswählen

- 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. 
weitere Infos unter: http://www.purebasic.fr/english/viewtop ... 14&t=62963

Re: PureBasic 5.40 LTS beta 1

Verfasst: 31.08.2015 15:48
von RSBasic
Strings escapen ohne manueller Chr()-Aufruf, HTTPS für SendMail(), echte NULL, ...
Coole neue Funktionen, nicht schlecht. :allright:

Re: PureBasic 5.40 LTS beta 1

Verfasst: 31.08.2015 15:56
von Kiffi
RSBasic hat geschrieben:Strings escapen ohne manueller Chr()-Aufruf

Code: Alles auswählen

myString.s = ~"hallo \"hallo\" hallo"
Debug myString
nicht übel...

Re: PureBasic 5.40 LTS beta 1

Verfasst: 31.08.2015 16:21
von NicTheQuick
Endlich weniger Leute, die so viel bemängeln, was heutzutage nicht fehlen darf. :allright:

Hier meine Favoriten:

Code: Alles auswählen

- 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 SHA2 and SHA3 (224/256/384/512-bit) support to Cipher library
- Added ReceiveHTTPMemory(), IsJoint()
- Added HTTPS and simple auth support for ReceiveHTTPFile() and GetHTTPHeaders()
- Added ASynchronous mode for ReceiveHTTPFile() and ReceiveHTTPMemory()
- Added HTTPProgress(), AbortHTTP() and FinishHTTP() to control async mode
- Added HTTPS/TLS support for SendMail()
- Added 7z archive creation
- Added tar (gz and bzip2) archive support for creation and decompression
- Added #PB_UTF8/Ascii/Unicode support to ReadCharacter() and WriteCharacter()
- Added linux/osx style flags for the commandline compiler on Windows to ease cross-platform scripts
- 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
- The default GTK version is now GTK3 on Linux. A gtk2 subsystem has been added for backward compatibility.
- Changed the Cipher lib to be modular (now UseMD5Fingerprint() and such commands needs to be used)
Das sind so viele wie schon lange nicht mehr. :allright: :allright:

Re: PureBasic 5.40 LTS beta 1

Verfasst: 01.09.2015 01:37
von Bisonte
Sind viele langersehnte Dinge bei... besonders Network HTTPS usw.
Allerdings find ich diese Beta (auch wenn es die erste ist) ziemlich wackelig (IDE schmiert öfters weg unter Win10x64/PBx64)
und die Dokumentation zu den neuen Funktionen (Help) ist noch recht dürftig (bzw. für mich unverständlich)... aber das ist am Anfang ja immer so ;)

Und nun beginnt die fröhliche Wanz... äh Bugjagd :mrgreen:

Re: PureBasic 5.40 LTS beta 1

Verfasst: 01.09.2015 01:43
von Andreas21
Bei CGI->CGIVariable() sind die ganzen constanten noch nicht bei.

Code: Alles auswählen

[01:41:04] [COMPILER] Line 13: Constant not found: #PB_CGI_AuthType$.
[01:41:32] [COMPILER] Line 14: Constant not found: #PB_CGI_ContentLength$.
[01:41:36] [COMPILER] Line 15: Constant not found: #PB_CGI_HeaderContentType$.
[01:41:41] [COMPILER] Line 16: Constant not found: #PB_CGI_DocumentRoot$.
[01:41:46] [COMPILER] Line 17: Constant not found: #PB_CGI_GatewayInterface$.
[01:41:50] [COMPILER] Line 18: Constant not found: #PB_CGI_PathInfo$.
[01:41:54] [COMPILER] Line 19: Constant not found: #PB_CGI_PathTranslated$.
....

Re: PureBasic 5.40 LTS beta 1

Verfasst: 01.09.2015 02:07
von Bisonte
Nicht nur das... ich kriegs es ums verbiegen nicht hin, irgendeines dieser Beispiele zum laufen zu kriegen.
Die einzige Anzeige die ich bekomme lautet : Error 500 - Premature end of script headers...

Re: PureBasic 5.40 LTS beta 1

Verfasst: 01.09.2015 02:17
von Andreas21
Jup, habe ich auch. Ich will es auch mal unter Linux testen.

Re: PureBasic 5.40 LTS beta 1

Verfasst: 01.09.2015 08:35
von STARGÅTE
Unter "- Added new Vector 2D library" hatte ich ja erst irgend was mathematisches erwartet, aber das es eine VectorDrawing Library ist, ist natürlich um so besser.
Mal sehen was ich Zeit finde, diese neue große Lib ausgiebig zu testen.

Re: PureBasic 5.40 LTS beta 1

Verfasst: 01.09.2015 11:18
von Kiffi
Andreas21 hat geschrieben:Bei CGI->CGIVariable() sind die ganzen constanten noch nicht bei.

Code: Alles auswählen

[01:41:04] [COMPILER] Line 13: Constant not found: #PB_CGI_AuthType$
...
Da ist ein '$' zu viel:

Code: Alles auswählen

#PB_CGI_AuthType$ -> #PB_CGI_AuthType
ansonsten bekomme ich auch den von Dir und Bisonte geposteten "Error 500 - Premature end of script headers..." (mit XAMPP).

Grüße ... Peter

Edit:

Habe rausgefunden, wie man den 'Premature end of script headers' - Fehler umgeht.

Die letzte Header-Angabe soll mit dem Flag #PB_CGI_LastHeader versehen werden, damit ein zusätzlicher Zeilenumbruch eingefügt wird.
Allerdings scheint das momentan noch keinen Effekt zu haben. Wenn man den Zeilenumbruch manuell hinzufügt, klappt es:

Code: Alles auswählen

If Not InitCGI() Or Not ReadCGI()
	End
EndIf

WriteCGIHeader(#PB_CGI_HeaderContentType, "text/html", #PB_CGI_LastHeader)

WriteCGIString(#CRLF$) ; <--- hier

WriteCGIString("<html><title>PureBasic - test</title><body>" +
               "Hello from PureBasic CGI<br>" +
               "Actual time: <b>"+FormatDate("%hh:%ii", Date()) + "</b>" +
               "</body></html>")