Here’s the first drop of RubyCLR.
I think this version is usable for folks who are interested in playing around with the current state of the bits. It supports constructor and method overloading, static and instance methods, properties, indexers, static and instance fields, events, multi-dimensional arrays, primitive (ints, floats, bools) value-type marshaling, and reference-type marshaling. Look at the tests2.rb unit test file to see the evidence.
Notable are the things that this release does not support. There is no support for generics, nor is there support for marshaling user-defined value types like Point.
There’s a rakefile in this project too if you want to compile the bits. I’ve included a compiled DLL for folks who don’t have MS C++ 14.0 installed on their computer.
This release requires the RTM version of .NET 2.0.
I haven’t tried to build anything using these bits yet outside of the unit tests, but I wanted to provide a drop for the curious.
I’m really interested in getting feedback about the implementation of the bridge. If folks have the time and could do a code review of either the C++ or Ruby code (or both!) I would greatly appreciate it.
Bug reports in the form of a unit test that can repro the bug would also be greatly appreciated.
The state of error messages in this release is more-or-less non-existent. I plan on fixing this once I tackle the next two hard problems: marshaling user defined value types and handling generics.