My next O2 related task is to clean up DLLC removing the the threaded IUP functionality. The main features of DLLC is the dynamic FFI, bstr / wide strings, C structures create / access and low level COM support.
I already have a cross platform threading extension module (SBT) and my IUP extension module allows multiple instances of the message loop to run in threads. COM/OLE automation is provided in a CallByName wrapper.
As much as I like O2 and Charles, I have a working BASIC project to facilitate and without others interest in contributing external solutions to O2, It seems to be a waste of my time. At my age, time utilization is at the top of my list.
O2 may run code faster but when the difference is under a second, I'm not willing to give up the ease of use and the unlimited functionality SB gives me.