PureBasic 5.30 is out !

That’s it, PureBasic 5.30 final version is out ! The beta phase was longer than usual and even if it’s holiday and summer time, it’s not a valid excuse ;). So let’s jump a bit in PureBasic development internals, so you can better understand why.

First of all, the IDE is now fully unicode. It looks like a no brainer as in PureBasic it’s more or less a checkbox to enable to have your program working in unicode, right ? Well, not this time. The (new) IDE is around for almost 10 years now (09/21/2005) and it grew out of proportion by including tons of features. We heavily use raw pointers to process string buffers quickly, and when switching to unicode, all the strings went to UCS-2 (16-bit character). The stuff here is Scintilla is working internally in UTF-8, so all our comparisons between PB strings and Scintilla internal
didn’t work anymore as one side was UTF-8 and the other UCS-2. Also, all the Scintilla commands which needed a buffer as parameter needed to be changed as we mostly used a pointer to a PB string for this. We also had API calls here and here which required some adaptation work, and there was no compiling error or runtime warning, so usually a nice crash was awaiting us when missing one and reaching this code section. To be honest, it was quite a bit depressing to see a solid IDE get back to a shacky shape. This looks brighter now, and the unicode switch allowed us to fix long standing IDE issues which is cool. It was a needed update, especially for the internal debugger which can now handle unicode programs. There is will be probably some quicks left but it should be ironed out in future versions.

We also made important internal compiler changes to enable runtime serialization trough the XML and new JSON lib. It doesn’t seem like a big deal from the user point of view, but actually it is. What is runtime serialization ? In a nutshell: you have your nice linked list of complex structured elements (which can contain dynamic map, array etc.) and you want to save it, so when you quit your program, you wont loose these data. To do that, you had mostly only one way until now: walk the list, write all the fields of your structure to either a file or a database. It can be time consumming to write this, and if you add a new field in your structure, you have to update both your load and save routines. With 5.30 serialization functions, you can do that with only one command. The compiler will flag your structure as a runtime one so it gets all needed information (like fieldname, fieldtype etc.) and build special information table to allow full recursive analysing and dumping of the structure data. We made this change generic in the compiler, so any command (even user libs) can use this feature. To allow this, we needed to support ‘shadow parameters’ in PB function call. Basically, when we declare a command parameter as “Runtime Structure” like in InsertJSONStructure(), one hidden parameter is added to the function call to add more information to the structure. The same is done to when a runtime list, map or array is need like in InsertJSONList/Map/Array(). Adding such a core feature in the compiler is always tricky and can creates new hard to track issues (like stack mis-aligment), and that’s why the IDE didn’t started anymore on some Windows x64 computers.

And finally, a word about LTS (Long Time Support). The 5.30 is the first version which is released in parallel than an LTS version. That means than we had to update our build servers and deployment tools to handle 2 concurrents versions (when building and when releasing). The website also needed some update to handle this properly. It’s small things but it does add-up and it in the end, it takes time to get everything right and properly working.

As a side note, all the doc are now updated to the new format in every languages and I would like to thank Andre and Mesa for the huge work done on this. A programming langage without a good doc is not a good programming langage.

I hope you didn’t fell asleep when reading this, enjoy the new version !

9 thoughts on “PureBasic 5.30 is out !

  1. TI-994A

    Great work guys! As always!

    I have not yet tried it, but the runtime serialization feature would seem to be an invaluable and indispensable addition to PureBasic.

    Thank you for your continued support.

  2. diaaannnas

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

    http://poddelka.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. 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/

  6. 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/

  7. 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/

  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