First things first, we have moved development to a new GitHub repository. Follow us at
https://github.com/QB64Team/qb64.
Although we don't follow a strict schedule regarding updates to QB64, every once in a while a feature that's been requested gets implemented or a new bug is found and then fixed, and eventually we have enough for a new release.
We have named the upcoming release QB64 v1.4, and it's already available in the development channel (accessible at
http://www.qb64.org/devbuilds.php). Although you can follow development by checking out our repository on GitHub (
https://github.com/QB64Team/qb64/commits/development), the time for us to compile a more concise changelog has finally come.
One big change worth mentioning first, since it affects QB64 code from now on in a big way, is the new $NOPREFIX metacommand.QB64-specific keywords, those that expand on the original set of keywords from QBasic/QuickBASIC 4.5, which we aim to replicate, are those that start with an underscore. It has been designed that way so that, in the event that you want to load an older program you wrote back in the day that had variables or procedures with identical names, they would not collide with the new keywords, making it possible to use QB64 entirely as you did with QBasic but also add the new functionality without breaking anything.
However, we have over the years been following our userbase create more and more programs that have no dependency whatsoever on older code, which means these aren't just QBasic programs with benefits, but actually QB64-native programs, written from scratch with QB64 in mind.
All that said, the new $NOPREFIX metacommand allows you, for the first time ever, to write QB64 programs without having to add the leading underscore to use the modern keywords.
That will allow code like this:
To be written as:
COLOR RGB32
(255), RGB32
(255, 0, 255) m$ = "Hello, world!"
PRINTSTRING
((WIDTH - PRINTWIDTH
(m$
)) \
2, (HEIGHT
- FONTHEIGHT
) \
2), m$
DISPLAY
LIMIT 30
With the new metacommand in use, a program can both use _DISPLAY and DISPLAY, for example. User variables and procedures still cannot start with a single underscore (double underscores are accepted).
Here's the complete changelog, for now.
We invite you to try the development build and help us test (and try to break) the new features, so that we can polish everything for release as soon as possible:https://www.qb64.org/portal/changelog-of-v1-4/