> ## Content Index
> Fetch the complete content index at: https://nolongerset.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# twinBASIC Update: October 13, 2026
- URL: https://nolongerset.com/twinbasic-update-october-13-2026/
- Published: 2026-10-14T03:59:00.000Z
- Updated: 2026-10-14T04:32:21.000Z
- Description: Highlights include a tour de force of documentation improvements and a free 2D MMORPG Maker built with twinBASIC.
- Author: Mike Wolfe
- Tags: twinBASIC Weekly Update

*On April 23, 2021, I helped* [*Wayne Phillips*](https://twitter.com/WaynePhillipsEA/) *introduce the world to* [*twinBASIC*](https://www.twinbasic.com/) *at the* [*Access DevCon Vienna*](https://www.donkarl.com/devcon/) *conference. I* [*boldly predicted*](https://nolongerset.com/devcon-2021/) *that twinBASIC (along with the Monaco editor) would replace VBA and its outdated development environment by 2025\. (And I was* [*oh so close*](https://www.youtube.com/watch?v=LCxfObwA7E8)*...) With that goal in mind, this weekly update is my attempt to keep the project fresh in the minds of the VBA development community.*

*Every ~~Sunday~~ ~~Monday~~ week, I will be providing updates on the status of the project, linking to new articles discussing twinBASIC, and generally trying to increase engagement with the project. If you come across items that should be included here, please leave a comment below.*

*Here are some links to get involved with the project:*

- [***Custom twinBASIC IDE Installation Guide***](https://nolongerset.com/how-to-install-twinbasic/)
- [*twinBASIC Discord Server*](https://discord.com/invite/UaW9GgKKuE) *(*[*chat about the project*](https://github.com/WaynePhillipsEA/twinbasic/discussions/629)*)*
- [*twinBASIC Documentation*](https://docs.twinbasic.com/) *(list of* [*new features*](https://docs.twinbasic.com/Features/) *not in VBx)*
- [*GitHub Issue Tracker (report bugs)*](https://github.com/WaynePhillipsEA/twinbasic/issues)

---

## Highlights

### twinBASIC Help Add-in from okaso

Greatness attracts greatness, it would seem.

That's the only real explanation I have for the jaw-dropping work that okaso (a.k.a., Jan Jakub Ober, I believe) has done with the automated generation of help documentation for the twinBASIC project.

The CI/CD pipeline he's built includes automated testing to verify that the documentation matches actual twinBASIC behavior (it's the [doc test concept](https://nolongerset.com/python-inspired-doc-tests-in-vba/) on steroids) and produces multiple output formats:

- A statically generated HTML help site hosted at [**docs.twinbasic.com**](https://docs.twinbasic.com)
- A 2,000-page PDF suitable for printing: [**twinBASIC\_Book.pdf**](https://github.com/twinbasic/documentation/releases/latest/download/twinBASIC.Book.pdf)
- The [**twinBASIC Documentation Help** add-in](https://docs.twinbasic.com/tB/IDE/AddIns/Help)

I would provide you with the steps to install it, but honestly, I wouldn't do as good a job as Okaso's documentation itself. 

At the risk of publishing stale information (I expect Wayne to incorporate the add-in into the stock IDE before too long), I'm reproducing an excerpt of the add-in installation instructions here so you can see the quality of this documentation firsthand. 

*Please note that I'm not showing the excerpt in a quote block so as to preserve as much formatting as possible from the original. The* [*actual help page*](https://docs.twinbasic.com/tB/IDE/AddIns/Help#getting-the-add-in) *has the link to download the project file.*

---

#### Getting the add-in

The add-in is a twinBASIC project, which the IDE builds into two DLLs, one for each bitness.

1. Download the project file, [tbDocsHelp.twinproj](https://docs.twinbasic.com/tB/IDE/AddIns/downloads/tbDocsHelp.twinproj), about 28 MB. It is made from the add-in’s source code each time this documentation is published. It holds the index of the symbols these pages document and a copy of the whole documentation.
2. Open `tbDocsHelp.twinproj` in the twinBASIC IDE and build it. Then set the build target to **win64** and build it again. The two DLLs, `tbDocsHelp_win32.dll` and `tbDocsHelp_win64.dll`, are written to a `Build` folder next to the project file.
3. Copy each DLL to the matching `win32` or `win64` add-ins folder, as [Add Ins](https://docs.twinbasic.com/tB/IDE/AddIns/) describes, and restart the IDE.

An add-in built this way serves the pages itself, from the copy of the documentation in its DLL, so the pane needs no internet connection. **Open in browser** still opens the page on the website, [docs.twinbasic.com](https://docs.twinbasic.com).

---

### Scripted Screenshot Annotations

As okaso continues iterating and improving upon the documentation, he's adding ever-more-impressive automations into the pipeline.

The latest is his quest for auto-generated, annotated screenshots like this one:

![](https://storage.ghost.io/c/eb/d7/ebd732c1-5f03-4f07-b386-5d08557e15c9/content/images/2026/10/image-2.png)

From okaso:

> On the docs front, I've tackled another long-time annoyance of mine: tB IDE screenshots. I'm automating them, so there's a single script that runs the IDE as many times as needed, adds SVG annotations where needed for the screenshot, and writes out the PNGs.   
>  
> Keeping the screenshots up-to-date with IDE's progress should now be minimum effort. This work hasn't been merged yet, but it's well along now.  
>  
> This is one of the auto-generated screenshots:

![](https://storage.ghost.io/c/eb/d7/ebd732c1-5f03-4f07-b386-5d08557e15c9/content/images/2026/10/image-5.png)

> Since the screenshot generator reads the DOM of the IDE, the annotations should track changes in the layout, to an extent.

But even that wasn't enough for okaso, apparently. 

Why create automated annotated *rasterized* PNG screenshots like some sort of Neanderthal, when you can create automated annotated *vector-based* SVG screenshots that allow you to zoom in infinitely with no loss of sharpness (*NOTE: these are PNG screenshots of the original SVG*):

![](https://storage.ghost.io/c/eb/d7/ebd732c1-5f03-4f07-b386-5d08557e15c9/content/images/2026/10/image-3.png)

![](https://storage.ghost.io/c/eb/d7/ebd732c1-5f03-4f07-b386-5d08557e15c9/content/images/2026/10/image-4.png)

More from okaso:

> The SVG-first documentation preview is at <https://kubao.github.io/twinBASIC-docs/>. A good place to start is <https://kubao.github.io/twinBASIC-docs/Features/Compiler-IDE/IDE-Features>. I'm looking for potential rendering problems caused by those SVGs, as they are a bit special. Each one embeds its font subset(s) - similarly to how PDFs do it. They are self contained, and they are accurate vector screenshots of the IDE. I'll add a click-to-zoom feature to all of them, as they deserve.

Here's a screenshot of the IDE-Features page zoomed in at 500% in Firefox:

![](https://storage.ghost.io/c/eb/d7/ebd732c1-5f03-4f07-b386-5d08557e15c9/content/images/2026/10/image-6.png)

And, finally, this guy [thought of *everything*](https://discord.com/channels/927638153546829845/1021635324809596988/1558546145008025651)*:*

> And the screenshot process automatically falls back to a high-resolution PNG if the rendered SVG isn't essentially pixel-identical to the PNG. So if the SVG render magic comes short, we should not have broken SVGs because of that, since PNGs will be used instead.

### twinBASIC Package Documentation

OK, you need to slow down, okaso. It's not supposed to take me this long to write a twinBASIC weekly update article.

At the same time, I can't *not* write about this latest documentation *tour de force*. The twinBASIC docs page now shows generated documentation for all the community packages currently available on the TWINSERV package manager (well, almost all–WinDevLib is not yet covered).

[Packages![](https://storage.ghost.io/c/eb/d7/ebd732c1-5f03-4f07-b386-5d08557e15c9/content/images/icon/favicon-8b42dbf5-9b0c-4bb5-bf74-fe8ba643aa65.png)twinBASIC Documentation](https://docs.twinbasic.com/tB/Packages/)

The documentation breaks down packages into four categories (descriptions and links below are from the above help page):

1. [**Default Packages**](https://docs.twinbasic.com/tB/Packages/Default/) – VB, VBA, and VBRUN – included in every project by default
2. [**Built-In Packages**](https://docs.twinbasic.com/tB/Packages/Built-In/) – 10 optional packages shipped with twinBASIC, always available offline
3. [**Contributed Packages**](https://docs.twinbasic.com/tB/Packages/Contributed/) – community-authored packages published through TWINSERV, the twinBASIC package registry
4. [**Experimental Packages**](https://docs.twinbasic.com/tB/Packages/Experimental/) – community-authored packages from TWINSERV that are not yet ready for use in a program

## Discord Chat Summary

\* *Auto-generated via Claude Sonnet 5.5*

### Overview

The week began with a code-signing fix, and the project then moved past BETA 1000\. Two threads dominated the discussion. In #general, newcomers with large VB6 codebases talked about migration blockers and static linking. In #docs, okas\_o shipped an IDE Help add-in, an automated vector-screenshot pipeline and `peloader`, a PE loader that can compile tB projects on Linux. Engagement was high on weekdays and quieter on the weekend, and waynephillipsea took part in both channels.

#### Releases & Stability

- waynephillipsea confirmed that releases from BETA 998 onward are code signed again. The certificate had lapsed, and the project now uses an EV certificate in place of the previous OV one.
- twinBASIC crossed into four-digit build numbers, and BETA 1005 was in use by week's end.
- One user reported a "licence not found" prompt on first compile or load. It often followed an idle IDE or an upgrade or downgrade in the same folder, and restarting the compiler cleared it. waynephillipsea said he would ask TwinSight to investigate.
- Users suggested turning off the "keep LLVM cache alive" IDE option to avoid lingering IDE processes. One user also reported a thumbnail-drawing regression somewhere between BETA 997 and 1005, and a bug report is pending.

#### Docs Tooling & Help Add-In

- okas\_o's Help add-in is pure tB with no dependencies. It has a detachable help pane and context-sensitive F1 help, and it is now available as a `.twinproj` (see `docs.twinbasic.com/tB/IDE/AddIns/Help`). waynephillipsea's feedback on a visual separator and detached-window theming was fixed within days.
- A single command regenerates the IDE screenshots on a private desktop in about two minutes. About 160 of 201 captures were done at the last report.

```
node scripts/shoot_docs.mjs

```

- Annotations are positioned from the IDE's DOM, so they follow layout changes. Each screenshot is also converted to a self-contained SVG with embedded fonts, with an automatic fallback to PNG if the two don't match. waynephillipsea called the results "very sharp".
- The IDE chapters were redrafted: Writing Code, Running and Debugging, Customising the IDE, IDE reference and Add-Ins. The docs repo passed 200 merged pull requests. The PDF book has grown to about 3,700 pages, and a layout tightening is coming.
- Every docs code snippet is compiled, and many are run in both tB and VB6 for comparison. okas\_o also proposed a docs "dialect" switch (tB, VB6, VBA, VBScript), possibly in November. This is a **proposal**.

#### peloader: Linux Builds & Sandboxing (Experimental)

- okas\_o's `peloader` reimplements the WinAPIs the tB compiler DLL uses. It allows command-line builds of EXE and DLL projects on Linux, so the Help add-in can be built on CI without Windows runners or Wine.
- It currently builds only COM-less projects, because the typelib writer isn't finished. It is 64-bit first and expected to stay under about 5,000 LOC. Console tB executables could later run on Linux too.
- A sandbox mode is in progress. It restricts file access, blocks new executable memory and IAT modification, and uses a static analyzer for raw `Emit` assembly. ROP protection is not yet addressed.
- waynephillipsea said a sandboxed compiler would let the TwinSight auditor safely compile and test its findings.

#### VB6 Compatibility & Migration

- Teams with large codebases, one of about 500,000 lines, have started testing tB. They were directed to the #bugs channel and the GitHub tracker.
- saturnian\_91483 listed blockers that were stopping their team from testing tB:  
  - Docked controls lose their docking on import.
  - Docking order isn't respected for third-party controls.
  - Copy and paste of third-party controls loses their configuration and graphics.
- waynephillipsea could not reproduce the toolbar issue with the TXWords sample until it was clarified that the problem appears when docking controls in the form designer.
- fafalone said property pages should now be supported, so Krool's controls need a fresh re-import. He also listed his own long-standing irritants: derived-interface method overloads, alias-of-alias breakage, no mouse events on windowless UserControls, control-object passing to OCXs, and PictureBox flashing and lag.
- fafalone argued that LLVM was essential for v1 so that tB apps aren't slower than VB6\. Other participants cautioned that tB is still beta and not yet recommended for production.

#### Language, Compiler & Static Linking

- fafalone proposed a dedicated `#` syntax for compiler hints, such as `#LLVM Unroll`, instead of regular-looking code. This is a **proposal**.
- Asked whether the compiler should reject `Dim variable As Byte = -1` at compile time, waynephillipsea said tB will do more static analysis in future, giving better diagnostics. Today it raises an overflow at runtime.
- Static linking (`Import Library`) remains **experimental**. fafalone said static libs can't pull in other static libs, and system libs such as user32 and kernel32 aren't importable (use WinDevLib instead). One attempt to bundle SFML/CSFML produced hundreds of linker errors, and the user shelved it.
- `LoadResData` isn't available in console or standard DLL projects by default. Adding the built-in "VB Compatibility Package (Forms)" reference fixes it for about 3 KB. fafalone noted an open issue to add the LoadRes functions to the `App` object.
- VBG-style multi-project support is planned but not expected for v1.0\. Two smaller findings: tB classes don't implement `IExternalConnection` (VB6 classes do), and the tB `Collection` accepts UDTs but fails when retrieving them at runtime.

#### Controls, Packages & Community Projects

- fafalone got animated GIFs working in RichEdit. His upcoming ucRichEditD2D adds `UseLocalRichEdit`, automatic math formulas, auto-resize, independent DirectWrite hints, pinch-to-zoom and autocomplete without an edit control. It is still in development.
- For plain GIF display, fafalone says ucAniGifEx remains the better choice. He also said there is no x64 PhotoDemon port yet, because many third-party components need rebuilding and waynephillipsea expects it to need Tanner's help.
- okas\_o documented 16 contributed and 10 experimental packages, including tbRegExp and TBMANLIB\_Dialog. Seven remain, excluding WinDevLib, which will get a `coverage.md` page and auto-generated Microsoft documentation links. An indexer bug that surfaced old package versions, caught by gcuser99, was fixed.
- fafalone clarified that only packages marked `[BUILT-IN]` ship with tB. Third-party packages are uncompiled projects, are not endorsed, and cannot run `[RunAfterBuild]`.
- okas\_o is also building a growing regression test suite in the docs project. bclothier stressed that regression testing is essential given tB's backward-compatibility goals.

### Conclusion

This week combined a code-signing fix, the move past BETA 1000, and a major push on documentation tooling and compiler infrastructure. Designer docking and control copy/paste remain the biggest hurdles for VB6 migrators. Next steps include the GDI-to-SVG screenshot path, WinDevLib linking, `peloader` sandboxing and, longer term, more static analysis. Krool's remark that it still feels surreal that tB is real drew strong community appreciation.

### 

## Around the Web

### XtremeWorlds: Free 2D MMORPG Maker

From the project's [GitHub page](https://github.com/necrotree/XtremeWorlds/):

> XtremeWorlds is a free 2D MMORPG maker based on the classic PlayerWorlds development experience. It includes a Windows game client, a multiplayer server, and editors for building your own world.  
>  
> The project includes twinBASIC projects alongside legacy Visual Basic 6 projects and exported source files. Some project metadata still uses the Playerworlds Lite name.  
>  
> The programming language is Visual Basic 6 with TwinBasic IDE: <https://twinbasic.com/>

Screenshot [posted](https://discord.com/channels/927638153546829845/1557417998556336249) to the show-and-tell Discord channel by Nickeltare:

![](https://storage.ghost.io/c/eb/d7/ebd732c1-5f03-4f07-b386-5d08557e15c9/content/images/2026/10/image-1.png)

The [initial commit](https://github.com/necrotree/XtremeWorlds/commit/3b285ad9e5357acab030700ae51421651edd6644) to the repo was posted just a few weeks ago, on September 25, 2026, by project lead Seth Jones (aka, Nickeltare).

### Sunderland Ober Consulting: Documentation Gurus

From what I can tell, the aforementioned Okaso's company is "Sunderland Ober Consulting." Sometime within the past week or so, the company's website published a [twinBASIC documentation landing page](https://sunderlandober.no/en/twinbasic/), with insights into the technology behind the fantastic tB help ecosystem.

[twinBASIC documentation — Sunderland Ober ConsultingWe maintain docs.twinbasic.com — the documentation for the twinBASIC language — and build it with a from-scratch static-site generator of our own.![](https://storage.ghost.io/c/eb/d7/ebd732c1-5f03-4f07-b386-5d08557e15c9/content/images/icon/favicon-52ddc0f7-8020-4e60-9c77-7b1f775df38f.png)](https://sunderlandober.no/en/twinbasic/)

The testimonial from Wayne Phillips says it all:

> Jan's work on the twinBASIC documentation has been hugely important, and I really can't thank him enough. Without his help, our documentation would still be rudimentary and, frankly, nowhere near good enough. He's delivered a full-scale online manual, a downloadable PDF, and all the build infrastructure around it so that he and our community can maintain it and keep improving it. It's an enormous contribution to the project, and one that I appreciate a great deal.  
>  
> He is incredibly thorough and professional, and never seems to be content with what he's already achieved. He's always looking at what could be better, always pushing for perfection, and that shows in the quality of his work. He's also a thoroughly nice person, which makes working with him a real pleasure. We're very lucky to have him involved in our project.  
>  
> \- Wayne Phillips, creator of twinBASIC

### 

## Changelog

Here are the updates from the past week. You can also find this information by visiting the GitHub [twinBASIC Releases page](https://github.com/WaynePhillipsEA/twinbasic/releases).

[Releases · WaynePhillipsEA/twinbasicContribute to WaynePhillipsEA/twinbasic development by creating an account on GitHub.![](https://github.githubassets.com/favicons/favicon.svg)GitHubWaynePhillipsEA![](https://opengraph.githubassets.com/13bf5f13278e5633e644e312c6a75cfe0baf97f01dd45660573b36f5de0ee945/WaynePhillipsEA/twinbasic)](https://github.com/WaynePhillipsEA/twinbasic/releases)

### AI-Generated Changelog Summary

\* *Auto-generated via Claude Sonnet 4.6, sorted in order of its opinion of "most impactful changes.* *"*

- **Better debugging tools:** Watch expressions now support UDTs (user-defined types). Invalid Watch expressions no longer print linker errors to the debug console. The IDE hover box is also less likely to close by accident. Breakpoint fixes cover breakpoints at the top of a procedure, "Clear All Breakpoints" not persisting after a restart, and stepping missing the final `End` statement.
- **More VB6 compatibility and LLVM support:** The array `Not Not` VB6 hack now compiles with LLVM enabled. LLVM builds also support `As New` on type-library CoClass types and now catch more FPU overflow errors. A regression with `As New` on fixed-size arrays is fixed too.
- **Stronger compiler error checking:** The compiler now reports a clear error instead of crashing on invalid global `Const` definitions. It reports errors for `New <Interface>`, for public constants in classes, and for global `Const` arrays passed to a `ParamArray`. Specifying multiple calling conventions now raises error TB5258.
- **More reliable COM and runtime behavior:** `PropertyBag` now works through late-bound `IDispatch`. `IConnectionPoint` is more robust, with `Advise` guarded against null pointers and `Unadvise` returning the right error for an invalid cookie. Error code mapping is corrected, and the WebView2 header's `IEnumVARIANT::Clone` implementation is repaired. Running code in the IDE no longer corrupts the x87 FPU state, which could cause false runtime errors.
- **Fixes for regressions and stability:** `Len()` expressions failing in recent builds are fixed, as is a compiler crash when loading some files. Importing from a VBP no longer causes an IDE error. Memory leaks in very large source files (over 32,767 lines) and build failures when several IDE sessions build at once are also fixed.
- **Release and build polish:** All release executables are now signed. Built executables' unhandled-error message boxes use `App.Title` as their caption. The command-line import command now reports errors when the Settings file or Sources folder is missing. Scrolling in the Debug Console is smoother.

---

**WARNING:** The following issues are present in each of the releases below:

- This is a BETA release under active development. It is not recommended for production use.

### BETA 998

- fixed: memory leak when editing a source document >32767 lines in length
- fixed: (regression) As-New bug with fixed-arrays in some circumstances \[ kimpos, discord \]
- fixed: (regression) setting a breakpoint at the very top of a procedure would not trigger a breakpoint
- fixed: scrollbar bug in the DEBUG CONSOLE where scrolling was not smooth and sometimes got stuck
- fixed: all release executables are now signed

### BETA 999

- fixed: the array Not-Not VB6 hack was not compiling when LLVM is enabled \[ kimpos, discord \]

### BETA 999a

- fixed: (regression in PETA 998) potential compiler crash in loading some files \[ p5, discord \]

### BETA 1000

- fixed: missing LLVM support for As-New on type-library CoClass types \[ kimpos, discord \]
- fixed: broken tbIEnumVARIANT::Clone implementation for WebView2 headers [\[#2496\]](https://github.com/twinbasic/twinbasic/issues/2496)
- fixed: tweaked scope resolution rules to allow for procedures named the same as their containing module [\[#2494\]](https://github.com/twinbasic/twinbasic/issues/2494)
- fixed: command line import command does not report error info when Settings file or Sources folder are missing [\[#2493\]](https://github.com/twinbasic/twinbasic/issues/2493)
- fixed: OOB call to IDisptach::GetTypeInfo() implementation returns E\_UNEXPECTED rather than DISP\_E\_BADINDEX [\[#2489\]](https://github.com/twinbasic/twinbasic/issues/2489)
- fixed: hardened IConnectionPoint::Advise against nullptrs being passed [\[#2488\]](https://github.com/twinbasic/twinbasic/issues/2488)
- fixed: IConnectionPoint::Unadvise now returns CONNECT\_E\_NOCONNECTION if the passed in cookie is invalid [\[#2487\]](https://github.com/twinbasic/twinbasic/issues/2487)

### BETA 1001

- fixed: REVERTED DUE TO REGRESSIONS IN BETA 1000: tweaked scope resolution rules to allow for procedures named the same as their containing module [\[#2494\]](https://github.com/twinbasic/twinbasic/issues/2494)

### BETA 1002

- fixed: tweaked scope resolution rules to allow for procedures named the same as their containing module [\[#2494\]](https://github.com/twinbasic/twinbasic/issues/2494)
- fixed: (regression) importing from a VBP (not migration) can sometimes cause an IDE error \[ fafalone, discord \]
- fixed: (regression) some `Len()` expressions failing in recent builds of tB [\[#2507\]](https://github.com/twinbasic/twinbasic/issues/2507)
- improved: added a border tolerance area to the IDE monaco hover box to prevent it being hidden accidentally
- fixed: IDE monaco hover box will close if mouse goes over a dock resizer bar [\[#2506\]](https://github.com/twinbasic/twinbasic/issues/2506)

### BETA 1003

- fixed: potential build failure when multiple IDE sessions are building at the same time [\[#2505\]](https://github.com/twinbasic/twinbasic/issues/2505)
- fixed: built executables unhandled error MsgBox now uses App.Title for its caption [\[#2501\]](https://github.com/twinbasic/twinbasic/issues/2501)
- fixed: PropertyBag class did not support accessing its methods via latebound IDispatch
- fixed: some potential codegen issues in EXE/DLL entry points
- fixed: "Clear All Breakpoints" not persistent when restarting the compiler [\[#2502\]](https://github.com/twinbasic/twinbasic/issues/2502)
- fixed: mapping of DISP\_E\_UNKNOWNNAME to error 438 [\[#2490\]](https://github.com/twinbasic/twinbasic/issues/2490)
- fixed: missing compile error for `New <Interface>` [\[#2486\]](https://github.com/twinbasic/twinbasic/issues/2486)
- fixed: invalid Watch expressions will no longer print linker errors to the debug console [\[#2485\]](https://github.com/twinbasic/twinbasic/issues/2485)
- improved: watch expressions now support UDTs [\[#2485\]](https://github.com/twinbasic/twinbasic/issues/2485)
- fixed: (regression) stepping through code would miss the final End proc statement

### BETA 1004

- fixed: running code in the IDE can cause x87 FPU state to be incorrect leading to potential invalid runtime errors [\[#2497\]](https://github.com/twinbasic/twinbasic/issues/2497)
- fixed: setting invalid color values (all controls) now handled appropriately [\[#2484\]](https://github.com/twinbasic/twinbasic/issues/2484)
- improved: specifying multiple calling conventions now raises error TB5258 [\[#2480\]](https://github.com/twinbasic/twinbasic/issues/2480)
- fixed: potential buffer overrun in handling `#ERROR <val>` in file read operations (Variant)
- fixed: some FPU overflow errors not being detected in LLVM builds [\[#2477\]](https://github.com/twinbasic/twinbasic/issues/2477)

### BETA 1005

- fixed: compiler crash instead of compiler error on an invalid global Const definition in some circumstances [\[#2475\]](https://github.com/twinbasic/twinbasic/issues/2475)
- improved: global Const array compiler error hardening [\[#2474\]](https://github.com/twinbasic/twinbasic/issues/2474)
- fixed: compile error 'Constants in a class cannot be Public' was missing on global Const arrays [\[#2471\]](https://github.com/twinbasic/twinbasic/issues/2471)
- fixed: passing a global Const array to a ParamArray was not triggering a compiler error until codegen [\[#2470\]](https://github.com/twinbasic/twinbasic/issues/2470)

###