Published 2006-03-20 @ 23:55
Tagged ruby2c, zenobfuscate
Awesome hacking session tonight. Our ruby obfuscator is now actually on track to be generally usable by the end of the month. (Although we still need documentation–badly)
We have an awesome architecture to write these types of tools in, but there are several things that get complicated and having an overly clean architecture actually gets a bit hard to deal with. The biggies are that C and Ruby disagree on what is an expression vs statement… as such, we often have to rearrange the order of things, and the way our architecture works, sometimes that is easy, sometimes not.
Today we got things like
map working. More specific iteration has worked for some time, but now we can do more general iterations with blocks. There are restrictions currently, like we don’t even remotely honor block closure semantics (and, I’m not sure we ever will), but we’re actually doing a fair amount now and it is going pretty smoothly.
Next up will be extending our splat arg support to convert to C var-args so they actually work and generalizing our block support (where possible).
P.S. I should mention, the work on the obfuscator is also a nice forcing function for solidifying ruby2c and ParseTree.