twinBASIC Update: October 27, 2025

Highlights include a reminder about the command-line compilation feature and a shout-out to twinBASIC at the recent UK Access User Group conference.

twinBASIC Update: October 27, 2025

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. 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:


Highlights

Command-Line Compilation (Resurfaced)

There's nothing new to report this week. No new releases. No major announcements. No insightful revelations.

So, to hold you over until next week, I thought I'd share this post from the Discord questions channel. Command-line compilation is not a new feature, but it's one that I had forgotten about.

Q: Will twinBASIC compile from the command line? Can twinBASIC be used with automated CI/CD processes like VB6?

fafalone (who else?) provided the answer:

A: there's basic command line compilation now...it's still preliminary so if there's an error it will just crash
twinbasic.exe PathToProject.twinproj --buildAndExit32
twinbasic.exe PathToProject.twinproj --buildAndExit64
there's some addin infrastructure, and a very useful new feature VB6 doesn't have... you can make a function with the attribute [RunAfterBuild] – full access to the language/project code to automatically run when you build to do things like run signtool, run any command lines you want like git or copying files, etc

Discord Chat Summary

* Auto-generated via Claude-Sonnet-4.5

Overview

This week saw extensive technical discussions spanning antivirus false positives affecting twinBASIC executables, deep dives into LLVM optimization capabilities, and passionate debates about language design philosophy. The community explored advanced topics including type punning, cross-platform UI strategies, and XAML integration, while also addressing practical concerns about VB6 compatibility and migration paths.

Bug Fixes & Development Tools

  • Multiple users reported Windows Defender flagging newly compiled twinBASIC executables as potentially unwanted programs, with issues appearing around BETA 892-893
  • Community recommended using VirusTotal API to proactively test binaries and anticipate client complaints
  • waynephillipsea confirmed custom border styles currently only implemented for Label controls, not yet available for PictureBox
  • Discussion of transparent form implementation revealed alpha blend issues when using cyan as transparency key color
  • VB6 leaves thin visible border remnants on transparent forms that twinBASIC handles more cleanly

Language Features & LLVM

  • fafalone demonstrated LLVM's assembly code inspection feature - hovering over compiled function names displays the generated assembly, a capability praised as superior to Visual Studio 2022's workflow
  • LLVM support currently limited to 32-bit standard module methods without strings/classes/interfaces/variants in paid versions
  • Compiler can target specific instruction sets like AVX2 using attributes: [ CompilerOptions ("+llvm,+optimize,+optimizesize") ]
  • waynephillipsea confirmed CType(Of UDT)(Ptr) performs type punning without memory copying, enabling powerful in-place optimizations
  • Community discussed alignment concerns for type punning, particularly for future ARM/RISC-V support where misaligned access can cause faults

Cross-Platform & UI Strategy

  • Significant discussion about cross-platform UI approaches: Cairo (maintenance mode), Skia, Avalonia, and web-based solutions
  • wqweto noted reimplementing something like Avalonia (Skia-based UI toolkit) represents as much effort as the compiler itself
  • bclothier suggested web-based UI kits as cheaper, more portable option for cross-platform needs
  • mansellan advocated for Avalonia as spiritual successor to WPF, cleaner and cross-platform
  • deletedewd demonstrated extensive XAML/WinRT integration work in twinBASIC, though acknowledged steep learning curve without IDE/compiler support

VB6 Compatibility & Migration

  • waynephillipsea stated early conversations with Olaf about RC6 revealed fundamental disagreement - Olaf believed twinBASIC shouldn't support ActiveX controls at all
  • waynephillipsea emphasized: "if you're not fully targeting VBx back compat, then you're just another BASIC that won't stand out from the crowd"
  • Discussion of RichClient6 64-bit migration uncertainty, with fafalone suggesting "unwrapping" to use Cairo directly as safer migration path
  • Community debated control arrays - xelniya passionately criticized them as breaking OO consistency, while others defended their utility for grouped event handling
  • Intellisense mode options discussed: LEGACY mode for VB6-style behavior vs MODERN mode with broader autocomplete features

Community Insights

  • xelniya (Niya) rejoined community discussions, sharing ambitious plans for new scripting language project partially in C#
  • Strong consensus that .NET's modern RyuJIT compiler represents massive improvement over early .NET Framework
  • mansellan emphasized need for beginner-friendly languages: "We absolutely need BASIC in 2025 - B is the very first letter. Everyone begins as a beginner"
  • LLMs praised as invaluable for learning new technologies, translating C/C++ to twinBASIC, and understanding assembly code
  • timbald reported twinBASIC mentioned at UKAUG conference for successful 64-bit conversion of iGrid commercial system

Conclusion

The week highlighted twinBASIC's growing maturity with LLVM optimization capabilities drawing particular excitement, while practical deployment challenges like antivirus false positives reminded the community of real-world friction points. Philosophical discussions about language design, backward compatibility, and cross-platform strategies revealed the careful balance Wayne must strike between VB6 heritage and modern capabilities. The community's technical depth shone through in discussions of type punning, XAML integration, and UI framework choices, demonstrating both the sophistication of twinBASIC users and the project's potential to serve as a true VB6 successor while incorporating cutting-edge compiler technology.

Around the Web

twinBASIC Name-Checked at UK Access User Group Conference

timbald posted the following in Discord:

I'm at UKAUG conference Https://www.ukaug.co.uk and @WaynePhillipsEA , tB, Igor and 10tec just got a name check for the 64bit conversion of iGrid used in 64bit conversion of the presenter's commercial system. Only took 2.5 hours before tB got mentioned.

Changelog

Here are the updates from the past week. You can also find this information by visiting the GitHub twinBASIC Releases page.

Releases · WaynePhillipsEA/twinbasic
Contribute to WaynePhillipsEA/twinbasic development by creating an account on GitHub.
  • No new releases this week.

All original code samples by Mike Wolfe are licensed under CC BY 4.0