QB64 is een moderne versie van de programmeertaal BASIC. De code wordt gecompileerd naar machinetaal en is daardoor snel en er kan worden gelinkt naar externe C- en C++-programmeerbibliotheken. Het is nagenoeg volledig compatibel met QBasic 4.5 en biedt ondersteuning voor extensies, zoals OpenGL. Nadat Fellippe Heitor drie jaar geleden plotseling bij QB64 vertrok werd het erg stil rondom dit project. Een nieuwe groep ontwikkelaars heeft met QB64 Phoenix Edition echter een doorstart gemaakt. Net als QB64 is QB64 Phoenix Edition opensource, beschikbaar voor Windows, Linux en macOS, en heeft het een goed supportforum. Versie 4.4.0 is uitgekomen en de changelog daarvan kan hieronder worden gevonden.
EnhancementsLibrary Updates
- #670 - Allow interleaving SUB/FUNCTIONs with main program, fixing #504
- This renders the error
Statement cannot be placed between SUBs and FUNCTIONsobsolete.- It also makes building libraries easier, as everything (CONST, TYPE, DIM, SUB, FUNCTION) can go into the same file now.
Bug Fixes
- #674 - Miniaudio rolled back to the previous version
- This is now the same version we had in QB64-PE v4.2.0, as the updated version in v4.3.0 had issues with music streaming when tailing at the same time (writing more data to the stream while it is playing).
- #665 - Export As... fixes
- Now auto-closing strings at line end if required.
- Fixed look-ahead logic to avoid partly name matches causing wrong output.
- #666 - Restore IDE behavior when Autobrackets is disabled
- With the change to autobrackets in v4.3.0, the IDE suddenly started to just skip over end bracket type symbols if one were to type them and the next character was an end bracket. This makes sense with the autobracket enabled, but when it's turned off, those keystrokes should be processed as before, without skipping that next character.
- #671 - Do not over-apply auto-semicolon insertion, fixing #575
- String literals in a PRINT statement may be subject to automatic semicolon insert on either side. For instance,
PRINT "abc"123, 123"abc"is equivalent toPRINT "abc"; 123, 213; "abc". The logic was not accounting for the possibility of a comparison operator before/after a string literal, and soPRINT "abc" = "def"gets turned into the invalidPRINT "abc"; <>; "def". These operators are now checked for.Full Changelog: v4.3.0...v4.4.0
