You guys do understand this is a joke, right? It's a (cool) example of stupid things that you can get up to in ruby. See the ruby con talk for other examples. Enterprise Ruby is my personal favorite.
However, it's a bit odd that it parses the intended-for-humans NASM documentation instead of the machine-readable insns.dat that NASM actually uses to generate opcodes: http://repo.or.cz/w/nasm.git/blob/HEAD:/insns.dat
I'm curious if there are equivalent tools for doing this sort of thing for other cpu families. Specifically, what do people use for MIPS and ARM architectures?
What's different (from a quick look at ronin) is that this actually runs the assembled code within the currently running ruby interpreter. That's a lot more than a DSL for creating assembly.
[+] [-] nathell|13 years ago|reply
https://github.com/nathell/lithium
http://blog.danieljanus.pl/blog/2012/05/14/lithium/
[+] [-] api|13 years ago|reply
[+] [-] JonnieCache|13 years ago|reply
See the following rubycon talk, "worst idea ever!" which covers this and several other even more horrendously ill-advised gems:
http://www.confreaks.com/videos/198-rubyconf2009-worst-ideas...
It includes a way to rescue from segfaults, which goes quite nicely with the inline assembly :)
If you are a rubyist you should watch this. It's hilarious. If you think this wilson gem is crazy wait until you see the other shit they get up to.
[+] [-] unknown|13 years ago|reply
[deleted]
[+] [-] kgo|13 years ago|reply
http://www.grant-olson.net/python/pyasm
It even mapped all the exported symbols from the python API so you could do stuff like:
About every three months I get an email from someone where I have to explain it was a proof-of-concept and never intended for production use.[+] [-] jbarnette|13 years ago|reply
[+] [-] donavanm|13 years ago|reply
[+] [-] tzumby|13 years ago|reply
"Let’s convert that crappy ruby code to XML"
[+] [-] drv|13 years ago|reply
However, it's a bit odd that it parses the intended-for-humans NASM documentation instead of the machine-readable insns.dat that NASM actually uses to generate opcodes: http://repo.or.cz/w/nasm.git/blob/HEAD:/insns.dat
[+] [-] helper|13 years ago|reply
I'm curious if there are equivalent tools for doing this sort of thing for other cpu families. Specifically, what do people use for MIPS and ARM architectures?
[+] [-] sokrates|13 years ago|reply
[+] [-] artellectual|13 years ago|reply
[+] [-] lawl|13 years ago|reply