Hi there!,
It is great to hear that it is being useful. Currently I am taking some vacations, so I will probably be without Internet access for some days.
Currently the most missing parts are documentation, which I am going to write when having some time.
Here are some early details, before I start properly documenting them:
�This is heavily based in the C# bindings. There are additional typemaps
such as nbtype, nbin and nbout. They are similar to the cstype, csin
and csout typemaps presents the C# generator.
�They are two Smalltalk class and some common superclasses generated. One Smalltalk class contains all the NB-FFI callout methods, another contains wrappers for all the global C/C++ stuff.
�For each C++ a Smalltalk class is generated.
�The common superclass provides a destroy method for destroying an object.
�The extra overhead in new are to register properly with the GC.
�The C pointer is wrapped in a reference object that contains things for properly interact with the GC and destroying C++ object avoiding crashing the VM.
Swig usually makes some kind of opaque type for some pointers. If they
are intended to be an Array, maybe some extra typemaps has to be added.
More information about typemaps is on the SWIG manual.
I took that kind of approach because it gives more flexibility, but
it provides probably a reduced performance in comparison with placing
the callouts directly in the wrapped classes. Some people that saw this
when developing this did not like this approach.
I will document all of this more properly later, but I have to go now because I am in a hurry.