Skip to content

0.8.0 Release

Compare
Choose a tag to compare
@boxgaming boxgaming released this 20 Jan 14:38
· 64 commits to main since this release

Try out the release online here: https://qbjs.org

Release Highlights

Language Support

A major focus of this release was improvements to QB/QB64 language support and compatibilty. This includes many compiler improvements as well as adding support for over 30 additional keywords. Some highlights include:

  • Support for SOUND
  • QB64 string compression: _Deflate$, _Inflate$
  • Support for STATIC variables in functions and subs
  • QB64 keywords can be used with or without leading underscore.

IDE Enhancements

Numerous fixes and enhancements to the IDE were included in this release. There is now a shortcut key for stopping the running application (SHIFT+F5). Files can now be uploaded to the virtual file system via an upload link in addition to the already supported drag and drop method. The largest and most visible change is the inclusion of a new integrated help tab to the console. This includes content directly from the github wiki.

2D Graphics Library

New methods were added to the extended 2d graphics library to apply dashed line style to any line drawing method as well as the ability to draw an inverted rect.

Release Notes

Enhancements

  • Added support for Sound keyword including new optional decay and gain parameters. (#53, #43, #44)
  • Added support for Static variable definitions. (#49)
  • Added support for Shared variable declarations in functions and subs. (#50)
  • Added support for new extended 2D graphics features InvertRect and LineDash(Off). (#99)
  • QB64 keywords can be used with or without leading underscore "_". (#68)
  • Support new QB64 way of defining multiple variables of the same time on a line for custom type declarations (#56)
  • Display flashing prompt when Input command is accepting user input. (#94)
  • Add support for QB64 string compression methods _Deflate$ and _Inflate$. (#74)
  • Text screen scrolling not working with Input after recent font support changes. (#93)
  • Added support for QB64 keyword modifier key functions: _NumLock, _CapsLock, _ScrollLock. (#77)
  • IDE Enhancements
    • Added integrated Help tab (#70)
    • Stopping program execution in the IDE should halt all playing sounds. (#91)
    • New IDE Theme - QB64 VSCode. (#51)
    • Always show Export button on Share dialog. (#87)
    • Implemented shortcut key to stop the running program (SHIFT+F5). (#90)
    • Add upload button to Files tab as an alternative to drag-and-drop. (#86)
    • Automatically set focus to code editor when in IDE mode. (#52)

Fixes

  • Amount of delay by _Limit not consistent between browsers (#55)
  • Render issue with PSet optimizations when changing _Dest image (#80)
  • Various tweaks and improvements to file operations. (#47)
  • Fixed Firefox specific text placement issues (#88)
  • Explicitly convert value when passing floating point values to integer method parameters. (#81)
  • Fixed parser error when IF statement follows a multi-line separator ":". (#79)
  • Fixed parser error for conditional keywords (if, elseif, while, until) with no space between keyword and open parenthesis. (#85)
  • Fixed parser error for subs and functions which contain "." in the name. (#83)
  • Subs with coordinate-style parameters with no space between the method name and first parameter were not correctly being identified as subs by the parser. (#54)
  • IDE Fixes
    • Fixed fullscreen link in exported html. (#96)
    • Reduced size of QBJS logo in exported html (#95)
    • Zip files created when saving or exporting the project were not compressed. (#100)
    • Prevent program from starting multiple times when pressing the run shortcut key (F5). (#89)

Added Keywords

  • QB
    • Environ, Environ$, Error, Loc, Static
  • QB64
    • Arccot, _Arccsc, _Arcsec, _CapsLock, _CommandCount, _Cot, _Csc, _Deflate$, _DesktopHeight, _DesktopWidth, _Dir$, _Echo, _EnvironCount, _Inflate$, _Sec, _MouseHide, _MouseShow, _NumLock, _ScreenMove, _ScreenX, _ScreenY, _ScrollLock, _Title$
  • QBJS
    • G2D.InvertRect, G2D.LineDash, G2D.LineDashOff