PlayBasic Blog  Donations Are Here  (2023-01-02)
Are you a fan of PlayBasic? Do you rely on this software for your daily needs? If so, consider supporting its ongoing development by making a donation.
Every donation, no matter how small, can make a big difference in helping to fund the continued development of PlayBasic. From bug fixes and new features to performance improvements, your support can help ensure that this software stays up-to-date and continues to meet the needs of its users.
There are many ways you can donate to support PlayBasic. You can make a one-time contribution, or you can opt for a recurring donation to provide ongoing support. You can also consider setting up a crowdfunding campaign to raise money for the development of the software.
No matter how you choose to contribute, your support can make a real difference in the future of PlayBasic. So if you value this software and want to see it continue to thrive, please consider making a donation today. Together, we can help ensure that PlayBasic remains a valuable tool for years to come.
PlayBasic V1.65C2 _Retail Upgrade_ Now Available (10th July, 2021)
The PlayBasic V1.65C2 package includes updates of PlayBasic Compiler, Release / Debug Runtimes, SLIBS, DOCS & IDE V1.17b.
The V1.65C2 release is the fourth major release of the next generation of the PlayBasic virtual machine. This is a stabilization release, encompassing the last two years of bug fixes into the upgrade.
Reminder: The new runtime doesn't support reading from types that don't exist, which can cause old programs to fail at runtime. For a full V1.65C2 development story read the PlayBasic V1.65 blogs and for V1.65 related errors, post them in the V1.65 bug reporting thread on the forums.
PlayBasic V1.65C _Retail Upgrade_ Now Available (21st Oct, 2018)
The PlayBasic V1.65C package includes updates of PlayBasic Compiler, Release / Debug Runtimes, SLIBS, DOCS & IDE V1.17b.
The V1.65C includes third major release of the next generation of the PlayBasic virtual machine. In this build 100% of the commands now executed on the new VM side, giving much higher execution performance than V1.64 and previous legacy builds. The main objective of V1.65C revision was to catch the last remaining problems or missing functionality from the previous V1.65 releases, which I thing we've about covered now. There's still some features missing from the V1.64 era of the runtime that are not in v1.65c such as sequential type access optimizations, but that will reappear in the later build.
Reminder: The new runtime doesn't support reading from types that don't exist, which can cause old programs to fail at runtme. For a full V1.65B development story read the PlayBasic V1.65 blogs and for V1.65 related errors, post them in the V1.65 bug reporting thread on the forums.
PlayBasic V1.65C BETA #41 (Retail Compiler Only Beta) - (Avail for Registered Users ONLY) (29th July,2018)
V1.65C Beta #41 includes support for building EXE's - thus it includes the release and debug runtimes in the BIN folder. So in order to test, you copy the files into your PlayBasic folder, so that they replace your existing files. You might not want to break your 'official retail install, so what I generally go is just make a clone of my PlayBasic folder somewhere and then drop the beta files into it. This allows me to play without ever worrying about damaging my retail install.
PlayBasic V1.65C BETA #20 (Retail Compiler Only Beta) - (Avail for Registered Users ONLY) (29th Dec,2017)
V1.65C Beta #20 virtually concludes the V1.65 clean up. In this build we are running on the new VM only. Which means all new instruction set and all new inner workings of PlayBasic... In this last build we're reconnected the Vm with the legayc debugger, which was previously rigidly hooked to the legacy VM making it break in later builds. In this version is almost back to normal, I say almost as the old interfaces are still there and there many be some routines still using them, but I'll tackle that in the clean up when building a release version in the new year.
The new runtime brings us more number crunching performance, standard instruction set and is now separate from most of the command sets (some are built into the VM.. like strings or array commands) the generally command sets could be swapped without needing to constantly update the runtime. There's some features of V1.64P that are NOT in the new VM, which are mainly some of the compiler optimizations that it would make to user byte code, one that comes to mind is the serialization of the Type / Structure accesses.. Which can give a massive performance benefit in code that focuses it's accessed on one structure of data.. I'm going to include this in V1.65, but wanted to get it working first.. then we can add some of my list of tricks
Anyway, have fun.. there's bound to be some DEBUG messages etc in this.. but it's the future !
PlayBasic V1.65B _Retail Upgrade_ Now Available (23rd, June, 2017)
The PlayBasic V1.65B package includes updates of PlayBasic Compiler, Release / Debug Runtimes, SLIBS, DOCS & IDE V1.17b.
The V1.65B includes the second release of the next generation of the PlayBasic virtual machine. In this build 99.99% of the commands now executed upon the new VM side, giving much higher execution performance. There are still some 'commands' tied to the legacy VM such as the debugger commands and few text commands such as Print and TEXT and the Sync command which is actually a VM TRIGGER, but they'll be moved in the next build..
Performance wise this is easily the fastest edition of PlayBasic to date, even though the runtime is missing some of the byte code optimization modes found in V1.64 builds, which will tackled in the next revision of the 1.65, but for now get stuck into it.
Reminder: The new runtime doesn't support reading from types that don't exist, which can cause old programs to fail at runtme. For a full V1.65B development story read the PlayBasic V1.65 blogs and for V1.65 related errors, post them in the V1.65 bug reporting thread on the forums.
Unfortunately, real life has got in the way of PlayBasic development over the past month. While life is starting to get back on track, V1.65 development has taken a real back seat for the time being. While is frustrating for everyone, I would rather get a version of this out sooner, than later. So starting tonight I’ll be kicking into building a release version. Now this will mean it’ll have a few missing VM changes, but I feel they’ll take some time to perfect. So it’s probably best to get a version out there and find all the existing hiccups, before introducing another big change…
Anyway, thanks for your patience and kick back and get coding… Just one bit at a time, that's all it takes
Hopefully you’ve been following the development of PlayBasic V1.65 in the WIP thread on the forums, but for those that haven’t V1.65 is the introduction of the brand new, highly optimized virtual machine (VM) backend for the PlayBasic. The VM is the code that actually executes your program, so the faster it is the faster your programs execute.
The replacement process has been a daily grind throughout our winter, but the I’m now extremely pleased to say that there is some very light at the end of the tunnel, with the project entering beta testing at the start of this month. With each passing day we’re replacing missing or fixing broken functionality and squashing it. Build 54 (Beta54) was released to the forums a matter of hour ago. So if want to help out test it, you can download it from the forums.
Why replace the PBVM now ?
That’s valid question, as the existing back end works well enough, but the reasoning goes well behind functionality of the it, the problem with the V1.64 editions and older editions of PBVM is they don’t have static instruction sets. Now I know this sounds like gibberish to most people, but in simple terms what this means is that the internal codes between revisions of the PBVM are often different. Internally this doesn’t matter, but since we want to produce more add conversion tools like PB2DLL (Which is already released btw), then this can be nightmare to support. As changes to the PlayBasic compiler would break those tools..
So really the motivation behind replacing all the PBVM is not actually speed (although it’s always nice to have more speed), it’s to make the development of conversion tools easier.
What’s left on the To DO List ?
Those that read the maintenance blogs would know that things move slowly with limited time. There’s lot of things I’d love to do, but don’t have the human resources to do, when I’d like. So often we need to manage expectations and aim for smaller goals that are achievable rather than sky high thinking.
The main goals this year has been to replace the PBVM, PB WebSite and moving into conversion phase..