QB64 Changelog

What's new in QB64 2.0.2

Nov 7, 2021
  • QB64 v2.0.2:
  • Fix issue with LBound/UBound calls in complex expressions.
  • Fix issue preventing compilation in macOS versions prior to Catalina.

New in QB64 2.0.1 (Oct 17, 2021)

  • New features:
  • 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:
  • 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 and Option _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 the AS type element-list syntax.
  • Fixes issue with Put # and variable-length strings in UDTs (Binary files).
  • Fixes issue with recursive functions without parameters.
  • Fix "Duplicate definition" error with Static arrays in Subs/Functions with active On Error trapping.
  • Fix internal UDT arrays not resetting when a new file is loaded.
  • Fix issue preventing $Debug from working in Windows versions prior to Windows 10.
  • 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.

New in QB64 2.0 (Oct 10, 2021)

  • New features:
  • All platforms:
  • 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.
  • Windows:
  • 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 platforms:
  • 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 and Option _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 the AS type element-list syntax.
  • Fixes issue with Put # and variable-length strings in UDTs (Binary files).
  • Fixes issue with recursive functions without parameters.
  • Windows:
  • 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.

New in QB64 1.4 (Apr 26, 2020)

  • New features:
  • All platforms:
  • New $NOPREFIX metacommand.
  • New _DEFLATE$() and _INFLATE$() functions, that can be used to compress and decompress text or data strings using zlib, which has been added to our parts system.
  • New $ASSERTS metacommand and _ASSERT macro.
  • More bit-related functionality has been added: _READBIT, _SETBIT, _RESETBIT and _TOGGLEBIT.
  • You can now use _PUTIMAGE to place a portion of an image onto itself (source and destination can now be the same).
  • New $COLOR metacommand, which adds preset color constants based on HTML color names (per program).
  • Enhanced support for &B prefixed numbers, so the notation can now also be used in DATA lines and read by INPUT (from file & keyboard).
  • Windows:
  • Enhancements to $CONSOLE: you can now use statements and functions you are already familiar with for SCREEN 0 but for console output. CSRLIN, POS(0), LOCATE, COLOR, _WIDTH, _HEIGHT, WIDTH (statement), CLS, SLEEP and END have all been reworked to deal with terminal output.
  • It is now possible to read input while working in $CONSOLE windows using _CONSOLEINPUT (for both keyboard and mouse support) and _CINP (to read individual key strokes).
  • You can now read the states of _CAPSLOCK, _NUMLOCK and _SCROLLLOCK keys, as well as set their states.
  • macOS:
  • Basic detection of Retina displays has been implemented and programs should now render properly.
  • Fixes and improvements:
  • All platforms:
  • The warnings functionality can now be disabled (Options menu).
  • Numbers expressed in scientific notation now get properly colorized.
  • Enhanced "Open" and "Save as..." dialogs with added file list (save dialog) and support for wildcard filtering (* and ?).
  • Fixes a bug that would cause $INCLUDE lines to be duplicated in some scenarios.
  • Fixes a bug that wouldn't restore VIEW PRINT settings when RUN was called.
  • Linux:
  • The IDE won't become unresponsive when the mouse pointer leaves the window anymore.
  • Windows:
  • Fixes a bug that would prevent compilation when $EXEICON was used with $CHECKING:OFF set.
  • Fixed $VERSIONINFO so the embedded data gets properly displayed in newer versions of Windows.