PureBasic 4.50 Beta 1 released!

Posted by – April 1, 2010

Hello everybody!

… this is not an april fools joke… or is it? :P

We are proud to announce the first public beta of the upcoming PureBasic 4.50 release. As promised, the release cycle is much shorter than that of the 4.40 release which means that also the feature list is shorter. Nontheless, some long requested features have been implemented in this release which we hope you will enjoy very much.

The most notable are:

  • Support for Array, List and Map in structures:  These can be nested as much as you want, so you can have a Map-in-List-in-List if you want to. There is no need to call NewList, NewMap or Dim on these elements. They are created as soon as the outer structure is created. Dim can of course still be used to change the size of a dynamic array. Arrays inside structures can only have one dimension for the moment. The debugger has full support for this too. Embedded Arrays, Lists or Maps can be easily viewed by right-clicking on them in the Variable Viewer.
  • Image Library changes: We decided to abandon the support for images with depths below 24bit. Support for images with a palette was Windows-only anyway and had quite a number of bugs as well. The library now stores images internally only in 24bit or 32bit format which makes things a lot simpler. Images can still be loaded (and now also saved) at lower bit depth, so you can still work with them if you need to.
  • IDE Improvements:  The ability to select the used compiler in the compiler options allows to easily switch between different versions from the same IDE. It also allows to easily build and debug 32bit and 64bit applications from one IDE. Furthermore, some longer requested options like keyword sensitive indentation and indent guides have been added.
  • Debugger improvements: There is a brand new ‘Purifier’ tool in the debugger. It adds special ‘cookie’ values around variables, strings and allocated memory blocks to detect when the program accidentally writes past its intended target buffer. As this requires support from the compiler, it has to be activated in the compiler options to be available in the debugger. Furthermore, the already discussed network support and data breakpoints are now available.
  • Up to date documentation:  The english help file has already been updated with all documentation for these new features. The other languages will follow in the final release.

The feature list:

PureBasic 4.50 Beta 1
- Added support for Array, List, Map inside structures
- Added CopyList(), CopyMap(), CopyArray() commands
- Added FreeList(), FreeMap(), FreeArray() commands
- Added CopyStructure() and InitializeStructure() commands
- Added volume support to PlaySournd()
- Changed: The Image library now keeps images only in 24bit or 32bit (loading and saving works with other bit depths)
- Added Depth parameter to SaveImages()  (default is the original depth when the image was loaded)
- Added ImageDepth() flag to get the original or current image depth
- Added #PB_Image_Transparent flag for CreateImage()
- Added 32bit support to TGA image decoder
- Added 32bit support to BMP image encoder
- Added RoundRect() command to the 2DDrawing library
- Added #PB_2DDrawing_AllChannels mode for DrawingMode() (modifies all channels without blending)
- Added image support for the ComboBoxGadget command (not supported for editable ComboBox on Mac OSX)
- Added AbortFTPFile()
- Added graphical console functions to linux
- Added large file support to File lib on Linux/OSX
- Added RandomData() command
- Added CryptRandom(), CryptRandomData(), OpenCryptRandom(), CloseCryptRandom() commands
- Added many more Math functions: Exp(), ATan2(), Radian(), Degree(), [A]CosH(), [A]SinH(), [A]TanH(), IsNaN(), IsInfinity(), NaN(), Infinity()
- Added 'Debugger' Library to control some debugger actions from code

IDE/Debugger:
- Added Keyword underline for Break, Continue, ProcedureReturn
- Added StatusBar help for prototypes and interfaces
- Added Keyword sensitive indentation (block mode is still available)
- Added "Format indentation" option in the edit menu
- Added indentation guides and whitespace options
- Added the ability to select multiple compilers in the compiler options
- Added Purifier tool for the debugger
- Added full debugger compatibility between all OS and processors
- Added network debugging for the standalone debugger
- Added data breakpoints for the debugger
- Added maximize button to Variable-, Memory-, Library Viewer and Callstack
- Added support for structured items in the 'View Array/List/Map' tab of the Variable Viewer
- Changed: The Array, List or Map name in the Variable viewer should be entered with a "()" now to display their elements.
       (It is automatically corrected if the () is missing)

As always thank you to everyone who helps test these beta versions and reports bugs. Have fun with this new version and tell us any problems that you have. As usual, this version can be downloaded on your personal account on http://www.purebasic.com/

Oh, and Happy Birthday Fred!  :mrgreen:

The PureBasic Team

Leave a Reply