PureBasic 5.10 is released !

Developed or developing a new product in PureBasic? Tell the world about it.
Fred
Administrator
Administrator
Posts: 16581
Joined: Fri May 17, 2002 4:39 pm
Location: France
Contact:

PureBasic 5.10 is released !

Post by Fred »

Hello everyone,

Yes, it finally mades its way between all the beta ! We are very proud to annonce PureBasic 5.10 which brings a lot of new features. It brings enhancements in every domains, including the compiler, libs, 3D and the IDE ! Thanks to Polo, we now have a built-in form designer, which proves to be very valuable. We have reviewed about 3700 topics in 'Features and wish list' forum, and 763 are now implemented, which is around 20% ! It's not bad considering than all the posts are not unique and/or suitable for PB. Yes, we listen to you, even if we don't comunicate much about it. We also spend a lot of time fixing old issues, to have a still better overall product.

Warning, some changes are breaking backward compatibility, but most should be easy to migrate (except the new packer commands which will requiers some work). We are really excited with the change log:

Code: Select all

- Added: Form designer is now integrated to the IDE ! 
- Added: Fully reworked Packer library with ZIP, BriefLZ, 7z (unpacker only), LZMA and JCALG1 (Windows x86 and UncompressMemory() only) support. JCALG1 support has been dropped. Archives formats for BriefLZ have been changed. 
- Added: full IPv6 support to the network library. 
- Added: System library: ComputerName(), UserName(), MemoryStatus(), CountCPUs() 
- Added: Line continuation feature, with the following operands: ',' '|' '+' And Or Xor 
- Added: Constant string comparisons are now handled at compile time, allowing use in CompilerIf for example. 
- Added: CocoaMessage() for OS X 
- Added: 'Check syntax' to only compile the code without build/running an executable (/CHECK switch or in the IDE compiler menu) 
- Added: Array/List/Map parameter support to Interface methods 
- Added: Support for dynamic array/list/map support in structure/interface in Residents. 
- Added: #PB_Character, #PB_Unicode, #PB_Ascii and #PB_Integer flag support to FillMemory() 
- Added: #PB_RegularExpression_NoCase support to CreateRegularExpression() 
- Added: EncodeImage() with PNG, JPEG and JPEG2000 support 
- Added: #PB_Memory_NoClear support to Re/AllocateMemory() 
- Added: ImageFormat() 
- Added: #PB_Editor_WordWrap to EditorGadget() 
- Added: Multicharacter comparison in StringField() 
- Added: NbOccurrences parameter for ReplaceString() 
- Added: PostEvent(), EventData() 
- Added: return value to SetCurrentDirectory() 
- Added: #PB_String_NoCase mode parameter to FindString() 
- Added: #PB_Preference_NoSpace and #PB_Preference_GroupSeparator flags for OpenPreferences() and CreatePreferences() 
- Added: DatabaseColumnIndex() 
- Added: #PB_Cipher_URL and #PB_Cipher_NoPadding for Base64Encoder(), added URL compatibility to Base64Decoder() 
- Added: SetGadgetItemImage() for all gadget supporting item gadget image 
- Added: #PB_Gadget_ScreenCoordinate and #PB_Gadget_WindowCoordinate flag for GadgetX/Y() 
- Added: #PB_File_SharedRead (no effect on Linux/OSX), #PB_File_SharedWrite (no effect on Linux/OSX), #PB_File_Append and #PB_File_NoBuffering for OpenFile(), ReadFile() and CreateFile() 
- Added: #PB_Event_RightClick, #PB_Event_LeftClick and #PB_Event_LeftDoubleClick events 
- Added: Optional title parameter to OpenConsole() 
- Added: #PB_ScrollArea_ScrollStep added for ScrollAreaGadget() 
- Added: #PB_Ignore for ResizeImage() 
- Added: Bind a specific IP to CreateNetworkServer() 
- Added: Timeout, LocalIP$ and LocalPort parameter to OpenNetworkConnection() 
- Added: #PB_NetworkEvent_Disconnect support for NetworkClientEvent() 
- Added: #PB_Unicode, #PB_Ascii and #PB_UTF8 support to SendNetworkString() 
- Added: #PB_String_MaximumLength attribute for StringGadget() 
- Added: #PB_Event_DeactivateWindow support 
- Added: #PB_EventType_Change support for EditorGadget() 
- Added: #PB_Relative/#PB_Absolute flag for FileSeek() 
- Added: 'Offset' and 'Length' parameters to SHA1/MD5/CRC32FileFingerprint() 
- Added: GetSoundPosition(), SetSoundPosition(), SoundLength(), PauseSound(), ResumeSound(), SoundStatus(), GetSoundFrequency() 
- Added: #PB_All support for SoundVolume() 
- Added: SetGadgetItemState() support for ExplorerListGadget() 
- Added: InputRequester add close 
- Added: InputRequester() added #PB_InputRequester_Password flag 
- Added: Random() added optional minimum value 
- Added: SetGadgetItemText() for ListIconGadget(): handling of chr(10) as in AddGadgetItem() 
- Added: made OpenWindowedScreen() stretch parameters optional 
- Added: ScreenWidth(), ScreenHeight(), ScreenDepth() 
- Added: SMTP AUTH support to mail library 
- Added: optional parameters to RemoveMailRecipient(), ability to remove all recipients 
- Added: ReadString(#File [, Flags [, Length]]) : length and #PB_File_IgnoreEOL support 
- Added: #PB_Window_InnerCoordinate support to WindowX/Y() 
- Added: #PB_Window_FrameCoordinate support to WindowWidth()/Height() 
- Added: #PB_Image_Raised support to ImageGadget() 
- Added: Support for FreeXXX(#PB_All) for all free commands 
- Added: Compiler Constants: #PB_Compiler_LineNumbering, #PB_Compiler_InlineAssembly, #PB_Compiler_EnableExplicit 
- Added: Compiler Constants: #PB_Compiler_ExecutableFormat (with #PB_Compiler_DLL, #PB_Compiler_Console, #PB_Compiler_Executable) 
- Added: Compiler Constant: #PB_Compiler_IsIncludeFile, #PB_Compiler_IsMainFile, #PB_Compiler_Filename (filename without path) 
- Added: Bool() compiler operator. Boolean operations are now forbidden without Bool(). 
- Added: MacroExpandedCount internal keyword 
- Added: UndefineMacro 
- Added: Now XIncludeFile also take in account the main file, to avoid double inclusion if the main file is included from another file 
- Added: TypeOf() for variable, structure and fields 
- Added: Defined(Label, #PB_Label) support 
- Added: CompilerElseIf 
- Added: Local labels 
- Added: Define now behave like Global and accept Dim(), NewMap() and NewList() on the same line 
- Added: 'Align' keyword support for structure, with a special #PB_Structure_AlignC value to mimic C structures padding 
- Added: autocast of numeric values when string are involved, allowing to concatenate string and numeric in constants 
- Added: 'CONSTANTLIST' to Compiler interface 
- Added: editing history recording in the IDE to recover previous code states and for crash recovery (see File -> Session History) 
- Added: AffectedDatabaseRows(), CheckDatabaseNull() to database library 
- Added: new Text3D library 
- Added: 'Mode' optional parameter to all ...Yaw/Roll/Pitch() functions 
- Added: 'Type' and 'Mode' optional parameter to CreateMesh() 
- Added: RayCast(), MouseRayCast(), NormalX(), NormalY(), NormalZ() 
- Added: UpdateMesh(), EnableManualEntityBoneControl(), MoveEntityBone(), RotateEntityBone(), MeshIndex() 
- Added: 'Type' optional parameter to AddSubMesh() 
- Added: 'Type' parameter to FinishMesh() 
- Added: ScaleNode(), GetMaterialColor(), GetMaterialAttribute(), ConvertLocalToWorldPosition(), ConvertWorldToLocalPosition() 
- Added: MaterialCullingMode(), FetchOrientation(), SetOrientation(), GetX(), GetY(), GetZ(), GetW(), GetLightColor() 
- Added: AttachEntityObject(): bone name can be empty, so the object is added directly to the entity 

- Changed: renamed SoundFrequency() to SetSoundFrequency() 
- Changed: renamed AddMeshVertex() to MeshVertexPosition() 
- Changed: renamed LightColor() to SetLightColor() 
- Changed: removed all MaterialXXXXColor() replaced by SetMaterialColor() 
- Changed: removed all XXXXLocate() replaced by #PB_Absolute flag for MoveXXXX() commands 
- Changed: removed ResizeEntity(), replaced by #PB_Absolute flag for ScaleEntity() command, done also for ScaleNode() and ScaleText3D()
- Changed: replaced #PB_Sort_<Type> with #PB_<Type> to avoid possible errors 
- Changed: disallow native type for pointers 
- Changed: StrF/D(), trailing zeros are now automatically removed if no decimals are specified 

- Updated: OGRE core has been updated to 1.8.2 
- Updated: SQLite updated to 3.7.15.2 
- Updated: User-guide: new chapters about dynamic numbering and handling multiple windows added by spikey 

- Removed: SendNetworkFile(), ReceiveNetworkFile(), #PB_NetworkEvent_File to avoid possible security hole 
- Removed: DirectX7 and NT4 subsystem on Windows 
- Removed: SDL subsystem on Linux 
- Removed: PowerPC version for OS X 

- Optimized: FindString() is up to twice as fast 

- Fixed: Many bugs
Grab it while it's hot ! I would like to do a special thanks to Andre and Mesa for the awesome work on the German and French documentation. And indeed Jassing who spell-checked the english doc. It's a behind the scene work, but it is indeed very important for PureBasic.

Have fun on this Valentine Day !

The Fantaisie Software Team
Little John
Addict
Addict
Posts: 4519
Joined: Thu Jun 07, 2007 3:25 pm
Location: Berlin, Germany

Re: PureBasic 5.10 is released !

Post by Little John »

Fred wrote:Grab it while it's hot !
After only 6 minutes, it's still pretty hot, I think. :-)
Awesome! Many thanks to the team!
User avatar
luis
Addict
Addict
Posts: 3876
Joined: Wed Aug 31, 2005 11:09 pm
Location: Italy

Re: PureBasic 5.10 is released !

Post by luis »

Many thanks to all the people involved :)
"Have you tried turning it off and on again ?"
A little PureBasic review
Inf0Byt3
PureBasic Fanatic
PureBasic Fanatic
Posts: 2236
Joined: Fri Dec 09, 2005 12:15 pm
Location: Elbonia

Re: PureBasic 5.10 is released !

Post by Inf0Byt3 »

luis wrote:Many thanks to all the people involved :)
Ditto :D.
None are more hopelessly enslaved than those who falsely believe they are free. (Goethe)
User avatar
ts-soft
Always Here
Always Here
Posts: 5756
Joined: Thu Jun 24, 2004 2:44 pm
Location: Berlin - Germany

Re: PureBasic 5.10 is released !

Post by ts-soft »

Image Thanks :D
PureBasic 5.73 | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Old bugs good, new bugs bad! Updates are evil: might fix old bugs and introduce no new ones.
Image
User avatar
bamsagla
User
User
Posts: 62
Joined: Sat Jan 30, 2010 10:10 am
Location: Laufen, Bavaria, Germany

Re: PureBasic 5.10 is released !

Post by bamsagla »

Great news!
Unfortunately didn't have much time to test because of vacation but I'm very excited viewing this huge changelog!
Doesn't only look like a "feature and wishlist" upgrade, but like extending and expanding many of the "classic" functions. :shock:
Thank you Fred, Freak, Polo, Andre - whole team - for all your awesome work!
- Sherlock Holmes - "When you have eliminated the impossible, whatever remains, however improbable, must be the truth."
In my opinion, he must have been a programmer.
IdeasVacuum
Always Here
Always Here
Posts: 6425
Joined: Fri Oct 23, 2009 2:33 am
Location: Wales, UK
Contact:

Re: PureBasic 5.10 is released !

Post by IdeasVacuum »

What? I'm getting too old, I only just got the last Beta up and running :mrgreen:
IdeasVacuum
If it sounds simple, you have not grasped the complexity.
User avatar
Kiffi
Addict
Addict
Posts: 1346
Joined: Tue Mar 02, 2004 1:20 pm
Location: Amphibios 9

Re: PureBasic 5.10 is released !

Post by Kiffi »

Thanks a lot for your hard work! Image

Greetings ... Kiffi
Hygge
c4s
Addict
Addict
Posts: 1981
Joined: Thu Nov 01, 2007 5:37 pm
Location: Germany

Re: PureBasic 5.10 is released !

Post by c4s »

Thanks! I'll have to review a lot of code to implement the new simplifications & handy features! 8)
If any of you native English speakers have any suggestions for the above text, please let me know (via PM). Thanks!
Fred
Administrator
Administrator
Posts: 16581
Joined: Fri May 17, 2002 4:39 pm
Location: France
Contact:

Re: PureBasic 5.10 is released !

Post by Fred »

There is new (small) form designer doc, to explain how it should be used: http://www.purebasic.com/documentation/ ... _form.html
User avatar
Shield
Addict
Addict
Posts: 1021
Joined: Fri Jan 21, 2011 8:25 am
Location: 'stralia!
Contact:

Re: PureBasic 5.10 is released !

Post by Shield »

Cool. :)
Image
Blog: Why Does It Suck? (http://whydoesitsuck.com/)
"You can disagree with me as much as you want, but during this talk, by definition, anybody who disagrees is stupid and ugly."
- Linus Torvalds
deeproot
Enthusiast
Enthusiast
Posts: 269
Joined: Thu Dec 17, 2009 12:00 pm
Location: Llangadog, Wales, UK
Contact:

Re: PureBasic 5.10 is released !

Post by deeproot »

Many thanks to everyone in the team for all the hard work :D
eesau
Enthusiast
Enthusiast
Posts: 589
Joined: Fri Apr 27, 2007 12:38 pm
Location: Finland

Re: PureBasic 5.10 is released !

Post by eesau »

Awesome new version, thanks for all your hard work once again :)
rob6523
User
User
Posts: 59
Joined: Sat Sep 25, 2004 2:02 pm
Location: Netherlands (Ophemert)
Contact:

Re: PureBasic 5.10 is released !

Post by rob6523 »

Great!
Thank you so much!!!
gavindi
User
User
Posts: 41
Joined: Mon Jan 21, 2013 12:57 am

Re: PureBasic 5.10 is released !

Post by gavindi »

+1 your awesomeness! Thanks team!
Using Ubuntu 14.04 x64, Intel4700HD Graphics, 16GB RAM
Post Reply