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.