Less is better is having adventures pusing Ruby onto the CLR:
I should have known better, but I failed to account for blittable vs. non-blittable value types in RubyCLR. I explicitly avoid boxing value types in RubyCLR by blitting the value type into memory that I explicilty allocate for the Ruby object. All of my value type marshaling tests were done on sequential layout types such as Point whose layout in managed memory is the same as they would be in unmanaged memory.
Do you get the idea that putting a dynamic language onto the CLR is kind of like trying to dress up a pig? The pig is still ugly after you're done, but it's annoyed.