QB64 is een moderne versie van de programmeertaal BASIC. De code wordt gecompileerd naar machinetaal en is daardoor snel en kan er worden gelinkt naar externe C- en C++-programmeerbibliotheken. Het is nagenoeg volledig compatibel met QBasic 4.5 en biedt ondersteuning voor extensies, zoals OpenGL. QB64 is verder opensource, beschikbaar voor Windows, Linux en macOS, heeft een goede wiki en support forum. In versie 2.0 treffen we onder meer nieuwe debug features in de IDE. De changelog voor deze uitgave ziet er als volgt uit:
New features
All platformsWindows
- New
$Debugmetacommand, with added breakpoint/step abilities and real-time variable watching to the IDE.- Quick reference for commands is now shown in the status bar when syntax errors are detected.
_Sourceis now also set to_Consolewhen$Console:Onlyis used.- Allows
Ctrl+\to be used as a shortcut to repeat search (legacy QBasic shortcut).- Functions
_MK$and_CVcan now deal with_OFFSETvalues.- New "View on Wiki" button on help panel (launches equivalent wiki page using the default browser).
- New
_EnvironCountfunction to show how many environment variables are found.- Color schemes can now be set/saved individually for each running instance of the IDE.
- Automatically embeds a manifest file when compiling an exe with
$VersionInfo, so that Common Controls v6.0 gets linked at runtime.- Adds the %TEMP%, Program Files and Program Files (x86) directories to
_Dir$()folder specifications.Fixes
All platformsWindows
- Improved wiki parser.
- Contextual menu would crash when right-clicking a series of high-ascii characters.
- Fixes an issue with passing an array as a Sub/Function argument (missing parenthesis now properly detected).
- Fixes
Clearmaking$Consolemode invalid.- Fixes a syntax highlighter issue regarding scientific notation.
- Fixes an issue in Windows Vista and up with incorrect resolution returned on a scaled desktop.
- Fixes
Constparser accepting unsupported string functions and failing with some very specific const names.- Explicitly sets x87 fpu to extended precision mode.
- Removes 255-character limit for
Input/Line Inputwith strings.- Fixes
Datacommands failing to compile in some circumstances.$NoPrefix,Option _ExplicitandOption _ExplicitArraycan now be placed anywhere in a program, no longer having to be the first statement.- Fixes
MEMreverting to_MEMas a sub parameter in$NoPrefixmode.- Fixes case adjustment of array names in
UBound/LBoundcalls.- Prevents users from creating self-referencing
Typeblocks.- Fixes issue that prevented loading file names beginning with numbers.
- Fixes file open/save dialogs issue with path navigation.
- Complete rewrite of the internals for
Environ$().- Fixes evaluation of valid var/flag names for
$Let/$If- same rules for variable names now apply.- Fixes incorrect parsing of
Typeblocks with multiple elements using theAS type element-listsyntax.- Fixes issue with
Put #and variable-length strings in UDTs (Binaryfiles).- Fixes issue with recursive functions without parameters.
macOS
- Allows
$Console:Onlyprograms to return_WindowHandle.- Saving a file to the root of a drive would display double backslashes in the Recent Files list.
- Allows the "move" mouse icon to be set with
_MouseShow.Linux
- Flushes the console output so
- Allows the "cycle" mouse icon to be set with
_MouseShow.
xmessageadded to dependency list (setup script).- Fixes
InKey$acting too slow.- Fixes compilation error with
Datastatements on gcc 11.- Detects non-x86 based architectures.
- Flushes the console output so
- Allows the "cycle"/"move" mouse icons to be set with
_MouseShow.
