426 karma · joined April 4, 2011
A lot of hard work! I do the hard work so you don't have to :)
Sorry I don't know anything about the internals of Smalltalk, Python or Perl and can't comment on them.
But for today:
1. str2 = str doesn't actually create a new string. RString represents a string value, not a string object. So str2=str creates a new RString because that essentially defines what str2's value refers to… Think of RString as an internal pointer to the value that str or str2 is referring to. Sorry - not a good explanation :(
2. How are shared RStrings modified? Not sure yet, but I'm curious to find out. Will let you know on my site somehow.
3. Yes, simply calling str2 = str or in a variety of other ways will do it.
Yes, the inner unions/structs are used to tell the C compiler exactly where the different data values should go. They are in fact not anonymous: e.g. "heap" and "aux" - the names appear right after the closing brace.
I really appreciate your feedback and encouragement. I definitely will continue working on scaffoldhub; probably my next step will be to open source the web site code (gem is already open) so others can help out on this. I really see this as a community resource - not a private project.
All I can hope for is that with some community involvement, ScaffoldHub might become something useful in the middle: not in depth tutorials, not a code repository, but a series of helpful working examples.
I certainly can’t do it alone!