QBasic64 Phoenix 4.3.0 发布
QBasic64 Phoenix 4.3.0 Released

原始链接: https://qb64phoenix.com/forum/showthread.php?tid=4244

## QB64-PE v4.3.0 更新总结 本次 QB64-PE 版本带来了一些增强和修复。主要新增功能包括 **`$USELIBRARY` 元命令**,以便更轻松地与新的 QB64-PE 库包集成(可选,`$INCLUDE` 仍然有效)。 IDE 获得了可用性改进,包括 **自动括号/引号闭合**、**行/块复制 (Ctrl+D)** 和 **行/块移动命令 (Alt+Shift+Up/Down)**。用户现在还可以 **定义自定义 EXE 输出文件夹**,覆盖默认行为,即保存到源文件夹或 'qb64pe' 目录。 已实施重要的库更新和重构,包括更新版本的 `nanosvg`、`miniaudio` 和 `libcurl`,并修复了错误和安全漏洞。构建已切换到 **C++20** 以实现未来的兼容性。ALIAS 名称验证已放宽,以允许更多 C++ 运算符。 最后,解决了一些错误,包括搜索期间 IDE 中的一个微妙错误,以及 `UTF32::ConvertUTF16()` 字体库函数中的一个修复。 有关完整更改列表,请参阅完整更改日志:[https://github.com/QB64-Phoenix-Edition/...0...v4.3.0](https://github.com/QB64-Phoenix-Edition/...0...v4.3.0)

Hacker News 新闻 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 QBasic64 Phoenix 4.3.0 发布 (qb64phoenix.com) 13 分,由 jandeboevrie 发表于 38 分钟前 | 隐藏 | 过去 | 收藏 | 2 条评论 starik36 发表于 0 分钟前 | 下一个 [–] 非常好。它生成的二进制文件相当小 - 以今天的标准来看。回复 gt 发表于 3 分钟前 | 上一个 [–] 请注意这条评论:谢谢你。对之前的不耐烦表示歉意。 我想贡献一个库。但我现在还没有想法。我需要透露我的真实姓名。这对我很危险,因为我没有使用 VPN 或任何其他互联网安全方案来保护我的隐私。但这只是我的想法。圣诞快乐,节日快乐,希望明年有更好的体验。 ... 开源维护者需要处理的事情。回复 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:
相关文章

原文
Download from GitHub

Enhancements
- #647, #648, #649, #650, #652 - Implements the $USELIBRARY meta-command and functionality - @RhoSigma-QB64
  - For use of our brand new QB64-PE Libraries Pack add-on.
  - The add-on is optional to ease library usage, but the traditional way of $INCLUDEing libraries still works without changes.

- #651 - Implements three new IDE editing features - @FellippeHeitor
  - Auto-closing of brackets and quotes.
  - Ctrl+D for line/selection block duplication (Edit -> Duplicate lines).
  - Alt+Shift+Up and Alt+Shift+Down to move lines/selection blocks up and down.
[Image: 19ae5c79-28c4-48a2-96d6-3bee33e12e72]  [Image: 638b49d0-c705-4fca-bf25-8b533f7822ca]

- #662 - Implements a feature request by @Bhsdfa to define another EXE output folder, this closes issue #661 - @RhoSigma-QB64

Code: (Select All)

    Where is my EXE saved?
    Master behavior determined by IDE config as follows:
    |
    +-> Save EXE to Source Folder?
          |        |
        OFF        ON
          |        |
          |        +-> EXE goes to source folder, except new unsaved code,
          |            which goes to default location (no known source
          |            path yet), hence always save new code before first
          |            compiling to avoid the default location fallback.
          |
          +-> Default EXE location set?    (IDE Run menu > Set Default EXE Folder...)
                |              |
              YES              NO
                |              |
                |              +-> EXE goes to 'qb64pe' folder.
                |
                +-> EXE goes to the user chosen location if existing,
                    else fallback to 'qb64pe' folder. The exist check is
                    performed once at start time, hence a removable USB
                    drive or virtual RAM DISK must be accessible at start
                    of QB64-PE. However, the fallback is temporary, if the
                    user location is accessible at next start, then it is
                    used again.

      Command line compiling follows the logic above, except if the '-o'
      option is used, in fact the only method to override this logic.
      A given absolute path here will save the EXE exactly there, any
      relative path assumes _STARTDIR$ as root.

      To change the default location from command line use the new switch:
        -s:ExeDefaultDir=<path>  (quotes may be required)
      The path may be absolute or relative assuming _STARTDIR$ as root.
      Note the new location is saved and will be used by the IDE too then.
   


Library Updates
- #645, #654 - Update and refactoring of various libraries - @a740g
  - Replaces `image_log_error` with `image_log_warn` to reduce unnecessary error-level log output.
  - Reorders image format loading sequence to: `stb_image`, `sg_pcx`, `qoi`, `sg_curico`, and finally `nanosvg`.
  - Updates `nanosvg`, `miniaudio`, `libcurl`, `FreeType`, and `clip` to their latest versions. These updates include important bug fixes and security patches.
  - Removes obsolete logging code in `libqb`, now superseded by the recently added logging system.
  - Switches the build to `C++20`, preparing for upcoming features that will rely on the newer standard.

- #655 - Further relaxing ALIAS name validation, building on the work introduced in #535 - @a740g
  - The previous update did not account for several critical C++ operators, which are essential for leveraging the underlying C++ compiler in more advanced and novel ways. By including these operators, developers can now use techniques that enable direct use of the C++ compiler without the need for additional header libraries.

Bug Fixes
- #615 - Fixed a rather subtle IDE module error - @RhoSigma-QB64
  - Reported at Discord
  - If there was a program with a line count close below the next 1000s boundary and a search was performed, then if the found position was close to the program end and the IDE window height was bigger than the remaining program lines after the found match, then empty line padding could lead to a "subscribt out of range" error in an internal array in case the number of empty padding lines was bigger than the difference of the next 1000s boundary minus total program lines.

- #657 - Fixes a bug in the font library function `UTF32::ConvertUTF16()`  - @a740g
  - The function incorrectly attempted to consume a UTF-16 BOM even when none was present.

Full Changelog: https://github.com/QB64-Phoenix-Edition/...0...v4.3.0

联系我们 contact @ memedata.com