Update on getting Goo to work on .NET.
I was unable to get the .NET garbage collector to be used for allocating Goo objects without making a large number of changes to the Goo source. Instead I compiled the Boehm collector that Goo uses as a DLL and continue to use that for Goo objects.
The result is there are three heaps used in the Goo .NET version. They are the standard C heap (malloc, free, etc), the CLR heap (managed obects) and the Boehm heap (Goo objects).
Goo objects can hold references to CLR objects by using GCHandle. So far this seems to work well although I need to do a little fine tuning before releasing the code.
I've also written a program in C# to generate Goo interfaces to .NET frameworks. It uses the reflection API to generate the Goo code which can then be added to the Goo system by rebuilding. I hope to make this possible to do without rebuilding soon.
I still need to solve the problem of getting the 'Goo to C' generator to generate function prototypes as the Managed C++ compiler requires this. But I'm working around that at this stage.