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
$Debug
metacommand, 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.
_Source
is now also set to_Console
when$Console:Only
is used.- Allows
Ctrl+\
to be used as a shortcut to repeat search (legacy QBasic shortcut).- Functions
_MK$
and_CV
can now deal with_OFFSET
values.- New "View on Wiki" button on help panel (launches equivalent wiki page using the default browser).
- New
_EnvironCount
function 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
Clear
making$Console
mode 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
Const
parser 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 Input
with strings.- Fixes
Data
commands failing to compile in some circumstances.$NoPrefix
,Option _Explicit
andOption _ExplicitArray
can now be placed anywhere in a program, no longer having to be the first statement.- Fixes
MEM
reverting to_MEM
as a sub parameter in$NoPrefix
mode.- Fixes case adjustment of array names in
UBound
/LBound
calls.- Prevents users from creating self-referencing
Type
blocks.- 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
Type
blocks with multiple elements using theAS type element-list
syntax.- Fixes issue with
Put #
and variable-length strings in UDTs (Binary
files).- Fixes issue with recursive functions without parameters.
macOS
- Allows
$Console:Only
programs 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
.
xmessage
added to dependency list (setup script).- Fixes
InKey$
acting too slow.- Fixes compilation error with
Data
statements on gcc 11.- Detects non-x86 based architectures.
- Flushes the console output so
- Allows the "cycle"/"move" mouse icons to be set with
_MouseShow
.