PureBasic 5.30 beta 1 released

The first public beta version of the upcoming PureBasic version is available for download on your download account.

Some notable new features include:

  •  A new JSON library including functions to serialize complex data structures directly from PB code to JSON and back. The same functionality has also been added to the XML library.
  • New functions for the 3D engine.
  • The IDE and debugger are now full unicode programs
  • Improvements for the IDE such as a “plain-text” editing mode, the highlighting of repeated occurrences of the current selection, a new ‘Issues’ tool to track TODOs in the source code and more.
  • A new /PREPROCESS compiler flag which will generate a PB code with all compiler directives and macros resolved.
  • … and much more!

The english documentation is already up to date for the new features, so you can find a description and examples there.

This version also includes some changes that may break compatibility with existing code:

  • The (X)IncludeFile and IncludeBinary have changed their behavior for relative paths.
  • The #PB_Event_SizeWindow and #PB_Event_MoveWindow events are no longer reported in realtime in the main event loop. This is to reduce problems with flickering on resize. To get realtime events you have to use the BindEvent() function and a callback in the future.
  • CreateXMLNode() has a new mandatory parameter.[/list]

This is regular release which means it brings new features and will have the regular support cycle. The 5.2x LTS release will continue to be maintained and a 5.23 LTS release is planned for shortly after this release becomes final.

Here is the full list of changes:

Added: New "Issue" tool for IDE to build todo/issue lists easily from comments.
Added: JSON library
Added: ParseXML(), ComposeXML(), InsertXMLArray/List/Map/Structure(), ExtractXMLArray/List/Map/Structure() to XML lib
Added: OpenGLGadget() with native opengl commands ande constants support for Windows, OSX and Linux
Added: ExamineRegularExpression() and related commands to process regex matches step by step (with group support)
Added: ClipOutput(), UnclipOutput(), SetOrigin(), GetOriginX(), GetOriginY()
Added: GetWindowData(), SetWindowData()
Added: AllocateStructure(), FreeStructure()
Added: #PB_Default support to WindowsBound() to reset min/max size
Added: 'Format' parameter to Read/WriteProgramString(), WriteProgramStringN() and ReadProgramError()
Added: /PREPROCESS compiler flag to create a big single source with all macros, compilerif and file include resolved. Can be combined with /COMMENTED to get the original source with comments as well.
Added: optional '#Server' parameter to NetworkServerEvent() to check events only on a specific server
Added: #PB_String_NoZero flag support to PokeS() to avoid writting the ending null character
Added: #PB_Enumeration support for Defined()
Added: Optional 'Type' parameter to CreateBillboardGroup()
Added: BillboardGroupCommonDirection(), BillboardGroupCommonUpVector()
Added: #PB_Entity_MinVelocity and #PB_Entity_ForceVelocity to SetEntityAttribute()
Added: SetMaterialAttribute() with #PB_Material_DepthCheck and #PB_Material_DepthWrite constants
Added: #PB_Material_DepthCheck support for GetMaterialAttribute().
Added: Engine3DStatus() with these constants: #PB_Engine3D_NbRenderedTriangles, #PB_Engine3D_NbRenderedBatches
       #PB_Engine3D_CurrentFPS, #PB_Engine3D_MaximumFPS, #PB_Engine3D_MinimumFPS, #PB_Engine3D_AverageFPS, #PB_Engine3D_ResetFPS
Added: #PB_Absolute / #PB_Relative support to CameraDirectionX/Y/Z(), CameraX/Y/Z(), EntityX/Y/Z(), LightX/Y/Z(), LightDirectionX/Y/Z()
       BillBoardGroupX/Y/Z(), NodeX/Y/Z(), ParticleEmitterX/Y/Z() and FetchOrientation()
Added: ParticleSpeedFactor(), DisableParticleEmitter()
Added: GetEntityCollisionMask(), GetEntityCollisionGroup(), SetEntityCollisionFilter()
Added: WaterHeight(), FreeWater()
Added: Fully unicode IDE
Added: Highlighting of repeated occurrences of the currently selected word in the IDE
Added: Plain-text editing mode to edit non-PB files in the IDE
Added: 'Issues' IDE tool to collect and display TODO/FIXME markers inside the code
Added: Ctrl+E and Ctrl+Shift+E shortcut to align/shift comments in a selected code block
Added: Ctrl+M and Ctrl+Shift+M shortcut to select the current code block (repeated presses select the next code block)
Added: PopupMenu to IDE error log for clear/copy operation
Added: %HOME and %PROJECT to IDE tool commandline options, added PB_TOOL_Project to available env vars
Added: Automatic code indentation can align comments at the end of code lines in the IDE
Added: AutoComplete remembers last selection for Structure/Module AutoComplete
Added: Context sensitivity for current module/procedure for variable display and expression eval in the debugger

Changed: FormatXML() with #PB_XML_ReFormat no longer adds newlines inside single-line elements for a more readable output
Changed: DeleteElement() now returns the data pointer to the new current element (if any)
Changed: SetXMLAttribute() to accept newline characters in attributes (will be encoded as character entities)
Changed: Added a mandatory "name" parameter to CreateXMLNode() as some parser needs it at node creation time
Changed: The way (X)IncludeFile and IncludeBinary works: it's now relative to the file which contains these statements (which is easier to handle)
Changed: #PB_Event_SizeWindow and #PB_Event_MoveWindow are no more realtime on Windows, use BindEvent() to get real time update. It should fixes ugly flickering when realtime resizing on Windows.
Changed: DataSection label within Procedure are now local labels.
Changed: ASM local label prefix has been changed from "l_" to "ll_" ("ll" for local label), to avoid possible clash with main labels.
Changed: #PB_LinkedList constant has been renamed to #PB_List for better consistancy
Changed: Removed the "Billboard" parameter from AddBillboard() as it was not used. Now returns the new billboard index.
Changed: Updated Scintilla to version 3.4.2

Removed: MaterialDepthWrite() (replaced by SetMaterialAttribute())
Removed: CountRenderedTriangles() and Engine3DFrameRate(), replaced by Engine3DStatus()

9 thoughts on “PureBasic 5.30 beta 1 released

  1. TI-994A

    Clearly, the team has been very busy. Great work with the new features and improvements; especially love the new PREPROCESS directive. Really cool!

    Thank you guys.

  2. diaaannnas

    право осужденных на обращение в суд с целью взыскания в судебном порядке материального и морального вреда причиненного им во время содер

    http://potolokd.xyz/

    основные проблемные вопросы и пути совершенствования системы пенсионного обеспечения граждан проходивших военную службу

    mwetyu

  3. StevenImasp

    Write My Paper – EssayErudite.com

    Looking for an expert to [url=https://essayerudite.com/write-my-paper/]write my paper[/url] for you? You are at the right place.
    Providing superior writing service appears to be our main specialization and passion.
    Our website is the best destination for every English-speaking student who calls for assistance when handling his or her daily academic tasks.

    write my paper

    Write My Paper – https://essayerudite.com/write-my-paper/

  4. Rogercoism

    Essay Writing Service – EssayErudite.com

    Our [url=https://essayerudite.com]essay writing service[/url] provides a full-scale writing assistance accessible online 24/7.
    Apart from many other writing companies, we are rather picky when forming a professional staff of experts.
    Moreover, we try to make our every customer feel safe and pleased with the service.

    essay writing service

    Essay Writing Service – https://essayerudite.com

  5. JamesGen

    Best Essay Writing Service – EssayErudite.com

    Looking for the [url=https://essayerudite.com/best-essay-writing-service/]best essay writing service[/url] can turn into a pain in the neck especially if you are not an experienced essay buyer.
    EssayErudite.com is well known among students from the USA, UK, Canada and Australia.
    We provide a superior writing assistance and handle all types of academic papers ranging from dissertations and thesis statements to reviews and coursework.
    Whatever the challenge is, you can always count on us.

    Best Essay Writing Service – https://essayerudite.com/best-essay-writing-service/

  6. Haroldlok

    Write My Essay For Me – EssayErudite.com

    Can You [url=https://essayerudite.com/write-essay-for-me/]Write Essay For Me[/url] ? How many times do students worldwide ask this question without finding an answer?
    We’d rather not check the official statistics. At the same time, essays appear to be probably among the most popular academic assignments.
    Students from various education establishments need to complete them constantly. If you are among those lucky ones, feel free to contact our customer service department and opt for an essay writing help.

    Write Essay For Me

    Write My Essay For Me – https://essayerudite.com/write-essay-for-me/

  7. WilliamWic

    Buy Essay – EssayErudite.com

    Where to [url=https://essayerudite.com/buy-essay/]buy essay[/url] online ? Our experienced writers can boast higher degrees in addition to exceptional writing skills.
    You now have a great chance to buy essay papers online with only a couple of clicks.

    Buy Essay

    Buy Essay Online – https://essayerudite.com/buy-essay/

  8. ZlobCulse

    If you’re interested in winning millions, then I’m here to help!
    At [url=skyliteboom.com]Casino[/url] you can play over 450 world-class games and I’m giving you an exclusive Welcome Bonus to get you stuck into winning.
    Use it today to increase your chances of hitting our jackpots.
    All you have to do is [url=skyliteboom.com]sign up today[/url] and watch the rewards come rolling in.
    skyliteboom.com
    [url=skyliteboom.com]Prepare to hit the big time[/url]
    [url=skyliteboom.com]Hacer giros para ganar millones[/url]
    [url=skyliteboom.com]Holen Sie sich spinnen, um Millionen zu gewinnen[/url]
    [IMG]http://i63.tinypic.com/ofdmds.jpg[/IMG]

Leave a Reply