Skip to content

v3.14.0

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 08 Aug 16:13
· 9 commits to main since this release

Enhancements

  • #499 - Reliably enable window defocus on Linux. - @flukiluke
  • #501 - Modifies _FILES$ to default to the * pattern rather than *.* when fileSpec$ is empty, enabling _FILES$ to retrieve all directory entries rather than omitting files and directories that lack an extension. - @a740g
  • #502 - Optimize IDE internal string concatenation somewhat to reduce IDE lag. - @SteveMcNeill
  • #503 - Allow _UPRINTSTRING to render directly into any image, which can be specified as an optional argument. - @a740g
  • #506 - Added Metacommands and Variable Types items to the Help menu for quick access to these essential help pages. - @RhoSigma-QB64
  • #508 - Introducing the brand new Format Mode as command line switch. - @flukiluke
    • The -y command line option will format the input instead of compiling it.
    • Formatting is performed either according to the current IDE settings (Options > Code Layout...) or by overriding those settings using the new -f flags, e.g. ./qb64pe -y source/qb64pe.bas -f:autolayout=true -f:keywordcapitals=true -f:autoindent=true -f:autoindentsize=4 -f:indentsubs=true -o source/qb64pe.bas
  • #510 - Optimizes _DEFLATE$ and _INFLATE$ to eliminate unnecessary buffer copies. This results in a nice speed boost of upto 15% in some cases. - @a740g
  • #517 - Stabilized and updated MIDI support. - @a740g
    • MIDI support in QB64-PE is finally out of the $UNSTABLE state now.
    • The compiled executable will no longer include an embedded soundfont.
    • To address this issue discussed in the forum, ymfmidi, Opal, and a tiny FM bank are now used.
    • Soundfonts can be loaded using the _MIDISOUNDBANK command.
    • Depending on the sound bank type, a suitable MIDI rendering backend is selected.
    • The available backends are primesynth (SF2), TinySoundFont (SF3, SFO), and Opal (AD, OPL, OP2, TMB, WOPL).
    • For Windows users, a VSTi 2.x based renderer that is configurable by the user is also provided.
    • Multiple MIDI file formats are supported: MUS, HMI, HMP, HMQ, KAR, LDS, MDS, MIDS, RCP, R36, G18, G36, RMI, MID, MIDI, XFM, XMI
    • The use of $UNSTABLE:MIDI and $MIDISOUNDFONT triggers an appropriate "deprecated feature" warning message now.
  • #519 - Various IDE improvements. - @RhoSigma-QB64
    • Changing certain toggle settings in the Options Menu no longer causes your code to be marked as "changed".
    • IDE related config and workfiles were moved out of internal/temp into settings directly under the qb64pe folder.
    • Note the folder does not exist in the release archives, but is created on the first IDE run, at this time the user has a choice to import his settings from another QB64-PE installation or to continue with default settings.
    • The recent files and search string histories are globally shared now by all running IDE instances, limits can be set in the Undo/History... dialog (Options Menu).
    • We've added 4 new preset color schemes, Cornfield, Broadcast, X11 SgiColors by me (@RhoSigma-QB64) and VS Code curtesy to @a740g. If you use your own custom scheme, then it's ID will be automatically adjusted when importing your settings.
  • #520 - _LOADIMAGE and _SAVEIMAGE improvements. - @a740g
    • Added support to load ICO (icon) and CUR (cursor) files.
    • Added support to save ICO (icon) and single GIF (not animated ones) files.
  • #525 - Improving IDE Option dialogs. - @RhoSigma-QB64
    pic1
    pic2

Lib/MinGW Updates

  • #513 - Updated nanosvg and stb_image to latest available versions. - @a740g
  • #522 - Update to LLVM-MinGW 20240619 with LLVM 18.1.8 for WoA. - @a740g

Bug Fixes

  • #497, #527 - Properly initialise memory when REDIMming with UDT, fix #331, #524. - @flukiluke
  • #500 - Allow setting environment variables with space in values on Linux, fix #386. - @flukiluke
  • #503 - Font fixes, in some fonts the underscore was clipped away with _UPRINTSTRING. - @a740g
  • #506 - IDE Help fixes. - @RhoSigma-QB64
    • Select All (CTRL-A) in the help text actually didn't select ALL after text was selected manually once before, because some internal variables were not reset correctly (bug dates back to the ancient SDL versions).
    • Fixed Definition Lists eating the first text char, if the list introducer is followed by a space.
  • #513 - Fixed the PCX image loader issues reported in the forum. - @a740g
  • #515 - Avoid eating 0-argument functions used after L/UBOUND, fix #244. - @flukiluke
  • #523 - Fixing a bug in the KILL command, which would previously terminate and fail to process the remaining files if the user opted to continue after an error condition. - @a740g

Full Changelog: v3.13.1...v3.14.0

Developer Notice

We are probably going to deprecate the $NOPREFIX feature sooner or later in the future. Nothing is finally decided yet, but as we have more and more efforts to keep new things compatible with $NOPREFIX it's a decision we've to make. Especially CONST and the pre-compiler metacommands show bad interactions with $NOPREFIX over and over again and make implementations overcomplicated.

With this notice we wish to get your attention for the issue and recommend to adapt your coding habits to no longer rely on $NOPREFIX right now, so it becomes an easy transition when we finally drop it.