twinBASIC Update: June 16, 2026
Highlights include the upcoming release of long-awaited LLVM support, along with a community Camera Capture project using WinRT in twinBASIC.
On April 23, 2021, I helped Wayne Phillips introduce the world to twinBASIC at the Access DevCon Vienna conference. I boldly predicted that twinBASIC (along with the Monaco editor) would replace VBA and its outdated development environment by 2025. (And I was oh so close...) 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
- twinBASIC Discord Server (chat about the project)
- twinBASIC Documentation (list of new features not in VBx)
- GitHub Issue Tracker (report bugs)
Highlights
LLVM Support On Track for June Release
From Wayne in Discord:
To give everyone a small update: LLVM optimizing compiler support is progressing well. We're at about 70% coverage of codegen right now. Looking on track for a release with the new LLVM support later this month.

I'm not an expert, but LLVM (as I understand it) is a language-agnostic optimizing compiler. In other words, it will improve the performance of your twinBASIC binaries without you having to change any of your source code.
While some twinBASIC programs have been able to outperform compiled VB6 programs, most have not simply because the VB6 compiler is applying optimizations while the current twinBASIC compiler is not.
The tl;dr? LLVM support will make twinBASIC apps faster.
Discord Chat Summary
* Auto-generated via Claude Sonnet 4.6
Overview
This week's general channel was dominated by a significant LLVM compiler progress announcement from waynephillipsea, the discovery and diagnosis of an x64 codegen bug involving negative array indexes, and the arrival of a new community member planning to migrate a large-scale VB6 AI project to twinBASIC. Community engagement was lively, with several onboarding discussions and a few off-topic tangents kept in check by the development team.
LLVM Compiler Progress
- waynephillipsea announced that LLVM optimizing compiler support has reached approximately 70% codegen coverage, with a release on track for later in June.
- The upcoming LLVM release will target both x86 and x64 simultaneously, delivering performance improvements expected to exceed fully optimized native VB6 output.
Bug Fixes & Investigations
- fafalone discovered an access violation in x64 builds when accessing arrays with negative lower bounds while array bounds checking was disabled. After isolating the issue through a ported VBForums game project, a minimal reproduction was produced for the bug report; shifting arrays to positive indexes served as a workaround to restore full playability.
- waynephillipsea confirmed the root cause as a codegen bug specific to negative array indexes when bounds checking is disabled in x64 builds. He also confirmed a related secondary bug: the
[ArrayBoundsCheck(True)]attribute does not currently override project-level bounds checking settings when that setting is off.
Roadmap & Feature Planning
- waynephillipsea confirmed that vbg-style project groups are planned for the v1.0 release, with external file support coming first. Packages remain the recommended approach for sharing code across projects in the interim.
- CEFBrowser (Chromium-based) is in active development as a future replacement for the WebView2-based IDE, with build 981 already referencing it explicitly.
VB6 Migration & Community Support
- New member ultrahal joined as a recently retired engineer intending to migrate Ultra Hal — a VB6-based AI project exceeding one million lines of code — to twinBASIC.
- fafalone highlighted key migration advantages: tB's WinDevLib API package provides pre-made x64 declarations for virtually all Win32 APIs, and tB supports 32-bit ActiveX controls running inside 64-bit processes, significantly easing large legacy migrations.
- For VB6 projects using ASM thunk-based self-subclassing, fafalone recommended switching to
SetWindowSubclassusing tB's nativeAddressOfon class members as a cleaner, supported alternative. - Grid control compatibility was also addressed: VBFlexGrid and iGrid have tB-specific x64-compatible versions, and vhGrid works after a straightforward subclassing method switch.
Community Highlights
- Animated GIF support was discussed; while not natively supported, fafalone has published a tB-native, x64-compatible accelerated animated GIF control (
ucAniGifEx) on GitHub. - Cross-platform Linux support was confirmed as planned for a future twinBASIC release.
- deletedewd shared a live camera preview implementation inside a PictureBox, drawing positive community reaction.
- Claude AI was noted as capable of generating twinBASIC code directly, including making use of newer tB-specific features when explicitly prompted.
- waynephillipsea stepped in to ask a new community member to reduce GIF spam in the channel.
Conclusion
The week delivered on two fronts: a meaningful compiler milestone with the LLVM backend on track for a June release across both x86 and x64, and the identification of a confirmed codegen bug affecting negative-index arrays in x64 builds. The arrival of ultrahal and their substantial VB6 AI project further illustrates twinBASIC's growing appeal as a real-world migration target for long-lived legacy codebases. With LLVM optimization and v1.0 project group support both on the near-term horizon, the project continues its steady march toward a full production release.
Around the Web
Camera Capture - WinRT Edition
Posted by VanGoghGaming in show-and-tell:
I've originally posted this as a VB6 project on vbForums and thought I'd try it in twinBASIC as well. Unsurprisingly it ran just fine out of the box.
This Camera Capture project shows a live video preview from your webcam in a PictureBox. A ComboBox lists all available resolutions and video encoding properties supported by your camera and you can switch between them. The aptly named Snapshot button saves a JPG snapshot in the current folder.
The form is resizable and the live preview will be automatically resized accordingly. My Windows tablet has a crappy camera so that's what you see in the screenshot above. Professional webcams should support more advanced formats and video compression properties.

Check out the Discord post to download the sample code.
Changelog
Here are the updates from the past week. You can also find this information by visiting the GitHub twinBASIC Releases page.
- Nothing new this week.