twinBASIC Update: April 16, 2023

Highlights include a steady dose of bug fixes and and a brief recap of twinBASIC's standing in's list of "best BASIC-like programming languages."

twinBASIC Update: April 16, 2023

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, 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, tweet me @NoLongerSet or email me at mike at nolongerset dot com.

Here are some links to get involved with the project:


Various Bug Fixes

No new major features as far as I could tell this week, though Wayne continues playing Whac-A-Mole with bug reports in GitHub and Discord (see Changelog below for details).  As the project continues to mature, the bug fixes are getting less interesting to mention to a general audience as they increasingly represent edge and corner cases rather than core functionality.  

This is a Good Thing™ as it means 1) the major issues have mostly been handled and 2) people are starting to use twinBASIC in complex enough projects to flush out these esoteric problems.

Around the Web

Best BASIC-like programming languages

twinBASIC seems to be steadily climbing the ranks of "best BASIC-like programming languages" at comparison site  Amusingly, twinBASIC currently has more recommendations (25) than Visual Basic .NET (23), though I think it's safe to say that says more about the popularity of than the relative popularity between twinBASIC and VB.NET 😂.

Even so, the early feedback on twinBASIC continues to be positive and bodes well for its future as it approaches a v1 release.


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.

WARNING: The following issue is present in BETA builds 202 - 297 (the latest build as of publication):

  • there are known memory leaks in these versions, so memory usage will be higher than normal

BETA 293

  • fixed: For-Next with array control variable element parser bug [ ]
  • fixed: For-Next with array control variable runtime edge cases

BETA 294

  • fixed: Erase statement on a ByRef array that points to a fixed array was incorrectly nullifying the temporary SAFEARRAY wrapper [ ]
  • fixed: LoadPictureSizeConstants now evaluate to runtime system metrics in LoadPicture() rather than hardcoded values

BETA 295

  • fixed: TextBox SelStart/SelLength now also ensure the caret is scrolled into view [ ]
  • fixed: edge cases involving With blocks and arrays where locks could previously be left on the array [ ]

BETA 296

  • fixed: ActiveX control toolbox icons were missing if the ToolboxBitmap32 registered path was contained in quotes
  • fixed: forms using Microsoft Script Control (msscript.ocx) would not import correctly from VBP projects [ ]
  • improved: auto redirection for MSVBVM50.dll declares now matching the existing MSVBVM60 internal redirections [ fafalone, discord ]

BETA 297

  • fixed: LongPtr was sometimes shown as the resolved LongLong type on x64 when hovering over types [ fafalone, discord ]
  • added: warning TB0014: "The inline ByVal attribute is ignored on User Defined Types"
  • added: error "Arrays cannot be Optional" to match VBx procedure declaration error
  • added: error "User-defined-types cannot be Optional" to match VBx procedure declaration error
  • fixed: (regression) passing wrong UDT to a procedure should be a compile error [ bclothier, discord ]

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