twinBASIC Update: August 19, 2025

Highlights include experimental command-line compilation, a twinBASIC-infused update to vbWatchdog, and a new twinBASIC show-and-tell thread at VBForums.

twinBASIC Update: August 19, 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 (EXPERIMENTAL)

In this week's Discord chat, Wayne noted that the next twinBASIC release is not expected until August 29. In the meantime, though, he dropped this juicy little nugget:

For those of you eagerly awaiting the next twinBASIC release, here's a highly experimental feature I haven't yet noted in the recent release notes but has some initial support in place: building from the command line.

Syntax is:

twinbasic.exe PathToProject.twinproj --buildAndExit32
twinbasic.exe PathToProject.twinproj --buildAndExit64

(note: if there are compilation errors, the IDE will stall, and you'll need to terminate it using task manager). No passing of conditional compiler arguments yet, only rudimentary support is in place. You can test this experimental feature out in the current releases.

Command-line compilation is an important feature for setting up a fully automated deployment pipeline.

And the ability to create a deployment with one click is #2 of the venerable Joel Test (hey Access developers, be sure to check out what #1 is...😉):

2. Can you make a build in one step?

vbWatchdog v5 Released (w/ help from twinBASIC)

I first learned about Wayne through his indispensable error handling tool for VB6 and VBA, vbWatchdog:

Error Handling Evolution
How you handle errors says a lot about you as a programmer. Most people evolve with experience in how they handle errors. From the most naïve to the most advanced, here is what that evolution looks like.

It's the one tool I would not want to live without as a VBA developer.

It would seem that some of the relative quiet regarding the recent twinBASIC release cycle could be explained by a big announcement he dropped in Discord:

vbWatchdog v5 (for VBA and VB6) will be released next week. If any registered users want to try the new version before the release, please get in touch.

(and some parts are now written with twinBASIC!)

Here are the release notes for the new version:

vbWatchdog v5.0.0 – Release Notes

  • ARM Compatibility: Developer Add-In and embedded ErrEx class modules are now fully compatible with ARM systems (e.g. Snapdragon / Apple M chips)
  • TwinBASIC Upgrade: Developer Add-In rewritten as a twinBASIC project for improved maintainability and better UI
  • Error Dialog Customization: Rebuilt and enhanced customization tool directly inside the twinBASIC Add-In (removed from Sample.mdb project)
  • Navigation Enhancement: Added “Go to Line Number” button (…) to the line numberer display pane
  • Performance & Stability: General stability improvements and minor performance optimizations
  • Rendering Improvements: Line numberer pane now uses double-buffering to reduce flicker
  • UI Refresh: Updated the default error dialog with a more subtle, modern color scheme
  • Flicker Fix: Resolved excessive flashing when hovering over the More Info button in error dialogs
  • New Properties in ErrEx:
    • SysInfoGDIHandlesCount (read-only)
    • SysInfoUserHandlesCount (read-only)
    • SysInfoIsARMProcessor (read-only)
  • Installer Simplification: Introduced a single, unified installer application, written in twinBASIC

Get your copy of vbWatchdog 5 here.

Discord Chat Summary

* Auto-generated via Gemini-2.5-Pro

This week's discussions centered on crucial development infrastructure topics, most notably the complexities and solutions for code signing. Waynephillipsea announced an upcoming twinBASIC release and an experimental command-line build feature, signaling major steps toward professional development workflows. Community engagement was high, with the official release of vbWatchdog v5, partially rewritten in twinBASIC, marking a significant project milestone.

twinBASIC Development & Roadmap

  • Waynephillipsea announced that the next twinBASIC release is scheduled for August 29th.
  • To deploy a new code signing certificate, BETA 870 has been re-released. Waynephillipsea encouraged regular users to install it to help test the new dual-signed IDE and compiler executables.
  • An experimental command-line build feature was revealed by waynephillipsea. The initial syntax is twinbasic.exe PathToProject.twinproj --buildAndExit32 (or --buildAndExit64), though he noted this is a preliminary implementation.
  • In response to a user question about licensing, waynephillipsea confirmed that there are no changes for existing perpetual license holders or subscribers.

Code Signing Deep Dive

  • A detailed conversation unfolded regarding the challenges and costs of modern code signing.
  • Waynephillipsea shared his new setup using Sectigo for the certificate and Google Cloud KMS as the required Hardware Security Module (HSM), describing it as a cost-effective option for developers outside the US and Canada.
  • Community experts offered their solutions: wqweto described a method for automating builds using a YubiKey, bclothier explained his reasoning for choosing a hardware dongle to avoid per-signature fees, and mansellan detailed his use of the more expensive Digicert for its seamless Azure DevOps integration.
  • The consensus, as humorously put by bclothier, is that the process is fraught with "pain and misery," with many looking forward to the broader availability of Azure's Trusted Signing service.

IDE & Usability

  • When asked about selecting multiple controls within a container, waynephillipsea advised that the current method is to start the selection rectangle outside the container and then Shift-click the container to deselect it.
  • A user reported that precise control movement using Ctrl+ArrowKeys, a familiar feature from the VB6 IDE, is not yet functioning correctly in twinBASIC.
  • Waynephillipsea addressed a user's report of a crash during debugging that did not occur in release builds, explaining it is likely a linker issue that would require a reproducible example for him to resolve.

Language & Compatibility

  • A fascinating language discovery was shared by fafalone, who found that Excel VBA implicitly supports Application.Evaluate for array-literal syntax (e.g., v = [{1, 2; 3, 4}]), a feature not present in VB6.
  • Waynephillipsea confirmed this behavior is tied to DISPID_EVALUATE and, while not yet implemented in twinBASIC, is on the feature list.
  • In a discussion about dictionary objects, bclothier recommended using twinBASIC's built-in Collection class, noting its superior performance and feature set compared to legacy VB6 replacements.

Community & Project News

  • Waynephillipsea officially announced the release of vbWatchdog v5 for VBA and VB6.
  • He revealed a significant milestone: key components of vbWatchdog v5, including the developer Add-In and the new unified installer, were rewritten in twinBASIC.
  • The community also collaborated on an issue regarding GDI+ API usage. Bclothier clarified, with reference to Microsoft's documentation, that calling GdiplusStartup and GdiplusShutdown is safe as long as the calls are balanced, even within a host application like Excel.

Conclusion

The week was characterized by foundational progress that strengthens the twinBASIC ecosystem for professional use. The introduction of command-line building and the successful use of twinBASIC in a commercial product like vbWatchdog v5 highlight the platform's increasing maturity. The collaborative, in-depth discussions on complex topics like code signing underscore the valuable expertise within the community, pushing the project closer to its goal of being a complete and modern development environment.

Around the Web

twinBASIC "Show and Tell" at VBForums

Over on VBForums, yereverluvinunclebert started a new thread to highlight projects built with twinBASIC:

This is a counterpart to the VB6 thread "Getting the ball rolling. Which VB6 projects are you working on?" that you can find here.

As TwinBasic is fast becoming the de Facto replacement for VB6, it makes sense for this part of the forum to have its own thread in the same vein.

So, I offer as the first entry, imported (with no errors) straight, from VB6 where it was originally developed using Olaf's RC6 - My U-Boat stopwatch.

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.

AI-Generated Changelog Summary

* Auto-generated via Gemini-2.5-Pro, sorted in order of its opinion of "most impactful changes."

Code signing implementation - All compiler executables are now digitally signed with the official code signing certificate, improving security and reducing installation warnings

Development hiatus announcement - Next official update scheduled for August 29th, 2025, as the team prepares a major upcoming release

Note: This was primarily a re-release focused on certificate signing rather than new language features.


WARNING: The following issues are present in BETA builds 623 - 870 (the latest build as of publication):

  • IMPORTANT: This is an interim/experimental release. It includes significant changes, so some instability is to be expected. [Editor's Note: Rolling back to BETA 622 may be necessary if any of the KNOWN ISSUES below affect your project.]
  • KNOWN ISSUE: Controls are not being destroyed properly by the form designer, causing big memory leaks (broken in this build)
  • there are known memory leaks in these versions, so memory usage will be higher than at the Version 1.0 release

BETA 870 (re-release)

  • re-release of BETA 870 with all compiler executables now signed with our new code signing certificate
  • NOTE: next official update will be on 29th August 2025. Please bear with us whilst we prepare this exciting next instalment.

Wayne posted the following request in Discord to help generate positive reputation for the new code-signing certificate:

The IDE/compiler EXEs in the re-release are actually dual-signed with the old and new signatures, for this one release only. In the next release, they will go back to being signed only with the single (new) cert.

Next twinBASIC release will be on Aug 29th. We've today re-released BETA 870 just go get our new code signing certificate into the wild. It would be helpful if all the regulars could download and use the re-release, regardless of not having any new features.

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