top | item 5042373

Ruby inline assembler

64 points| lawl | 13 years ago |github.com | reply

14 comments

order
[+] api|13 years ago|reply
This is like putting NOS on a school bus.
[+] JonnieCache|13 years ago|reply
That's ironic because it was written on a bus.

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.

[+] kgo|13 years ago|reply
I wrote a similar thing a while ago for python:

http://www.grant-olson.net/python/pyasm

It even mapped all the exported symbols from the python API so you could do stuff like:

    CALL PySys_WriteStdout "Hello, World!\n\0"
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.
[+] donavanm|13 years ago|reply
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.
[+] helper|13 years ago|reply
Cool. Looks similar to ronin: https://github.com/ronin-ruby/ronin-asm.

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
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.
[+] artellectual|13 years ago|reply
Hats off to you! This is simply amazing!
[+] lawl|13 years ago|reply
I didn't write it. I just found it. Maybe should have mentioned that. But I thought it was clear. Sorry.