twinBASIC Update: January 9, 2022
Highlights include error messages that now match VBx, a twinBASIC Discord server, and a teaser about twinBASIC's potential as a VBA replacement.
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.
Updated Error Messages
The following VBA library functions now throw errors matching VBx (English-only for now):
- all VBA.Conversion functions
- all VBA.String functions
- all VBA.Information functions
- all VBA.DateTime functions
- all VBA.Math functions
Around the Web
twinBASIC Discord Server
There is now an official discord server for more informal twinBASIC conversations.
Things are less formal [on the Discord server], so if you want any general help with twinBASIC, or have some outrageous ideas that you want to bounce off a few people, you're very welcome to come over to the discord server to discuss.
Note, this is NOT a replacement for bug reports and feature requests. Those should still go on the GitHub issues site so that they can be tracked and closed.
Show Your Love for the twinBASIC Project
Licenses remain available for purchase at a discount prior to the official release of Version 1.0 of twinBASIC here: twinBASIC Pre-Order Information.
If you don't want/need a license at this point, but you still want to show support for the project, you can make small one-time donations at the official twinBASIC Ko-fi page: Buy a Coffee for twinBASIC Programming Language.
"All donations very much appreciated, and will be put towards the goal of world domination." A worthy goal!
Wayne Phillips: International Man of Mystery
Mark Burns posed the following question in the discussion on twinBASIC someday replacing VBA as the default Office development environment:
...but how would that actually work in practice?
vbx doesn't compile to a .exe, but to pcode that I'm guessing the VBA runtime then reads and executes alongside the ms-office apps .exe, right?
How could it work for a tB-compiled .exe/.dll to work in direct place of that VBA/p-code in practice?
Register the tB as an activeX .dll add-in? (Once again, there are some serious problems with that in enterprise configurations, as default enterprise security profiles generally lock those down.)
To which Wayne responded teasingly:
Ahh, well I might have a few tricks up my sleeve.... you'll have to wait and see 😜
Here are the updates from the past week. You can also find this information by installing the twinBASIC VS Code extension and clicking on the Changelog tab of the extension page:
[v0.13.68, 9th January 2022]
- fixed: 'The editor could not be opened due to an unexpected error' when opening an existing project [ https://github.com/WaynePhillipsEA/twinbasic/issues/623 ]
[v0.13.67, 9th January 2022]
- fixed: all VBA.Math module functions now throw errors matching VBx (ENGLISH ONLY FOR NOW). Edge cases also fixed. [ https://github.com/WaynePhillipsEA/twinbasic/issues/56 ]
- fixed: Events datatype resolver errors were not being reported to the LSP [ https://github.com/WaynePhillipsEA/twinbasic/issues/645 ]
- fixed: Stop statement was causing the linker to include parts of the debugger in the final EXE/DLL builds, causing unnecessary bloating of the executable [ Discord ]
[v0.13.66, 8th January 2022]
- fixed: all VBA.Information module functions now throw errors matching VBx (ENGLISH ONLY FOR NOW). Edge cases also fixed. [ https://github.com/WaynePhillipsEA/twinbasic/issues/56 ]
- fixed: all VBA.DateTime module functions now throw errors matching VBx (ENGLISH ONLY FOR NOW). Edge cases also fixed. [ https://github.com/WaynePhillipsEA/twinbasic/issues/56 ]
[v0.13.65, 7th January 2022]
- fixed: double-free of re-used temporary Variant in some instances, causing crash [ https://github.com/WaynePhillipsEA/twinbasic/issues/624 ]
- updated: README.md
[v0.13.64, 7th January 2022]
- fixed: comments at end of line on conditional compilation statements not correctly being handled as part of the block for semantic highlighting [ https://github.com/WaynePhillipsEA/twinbasic/issues/638 ]
- fixed: datatype hints no longer allowed on procedures that don't return a value [ https://github.com/WaynePhillipsEA/twinbasic/issues/635 ]
- fixed: intellisense issue when editing a source file containing custom defined compilation constants, affecting the global compiler state [ https://github.com/WaynePhillipsEA/twinbasic/issues/636 ]
[v0.13.63, 6th January 2022]
- fixed: VBA.Conversion.Error$() now implemented (ENGLISH ONLY FOR NOW)
- fixed: all VBA.Conversion module functions now throw errors matching VBx (ENGLISH ONLY FOR NOW). Lots of edge cases also fixed. [ https://github.com/WaynePhillipsEA/twinbasic/issues/56 ]
- fixed: all VBA.String module functions now throw errors matching VBx (ENGLISH ONLY FOR NOW). Lots of edge cases also fixed. [ https://github.com/WaynePhillipsEA/twinbasic/issues/56 ]
- fixed: Variant to Decimal conversion causing a buffer overflow (affected 64-bit only)
- fixed: linker error causing some 64-bit builds to fail randomly
[v0.13.62, 4th January 2022]
- fixed: the quick-fix for adding implementations was incorrectly prefixing ParamArray params with ByRef
- fixed: the quick-fix for adding implementations was not working correctly on internal classes (App, Collection, Clipboard)
- removed: TestCallback* members that had leaked through from debug builds
- fixed: Declare / DeclareWide declarations were being treated as Private if no access modifier was specified [ https://github.com/WaynePhillipsEA/twinbasic/issues/626 ]
- fixed: parameter data type suffix handling when a default value is supplied which is an expression containing a symbol [ https://github.com/WaynePhillipsEA/twinbasic/issues/625 ]
- fixed: param-hints alignment error with arguments split over multiple lines [ https://github.com/WaynePhillipsEA/twinbasic/issues/627 ]