public
Description: a ruby-to-pyc compiler
Clone URL: git://github.com/why/unholy.git
Search Repo:
why (author)
Mon May 05 07:52:52 -0700 2008
commit  a37e77f42aa3bfb1a9645b7826ee7b738dd225e5
tree    4180e59d81b2ba2de7a9b822f03e97e8a272a865
parent  ef3799c41bcd58e74b876fa03f1ef28cbd02a8b6
unholy /
name age message
folder README Mon May 05 02:34:41 -0700 2008 * README: idea for potion. [why]
folder bin/ Mon May 05 02:13:31 -0700 2008 * lib/unholy.rb: require the tiny `pickle` lib. [why]
folder decompyle/ Mon May 05 07:52:52 -0700 2008 * decompyle/: remove verbose debugging output,... [why]
folder lib/ Mon May 05 02:13:31 -0700 2008 * lib/unholy.rb: require the tiny `pickle` lib. [why]
folder python/ Mon May 05 02:11:15 -0700 2008 * lib/: initial checkin [why]
README

          $ UNHOLY $

  Compile Ruby to Python bytecode.
  And, in addition, translate that
  bytecode back to Python source
  code using Decompyle (included.)


         $ INSTALL $

  First, install decompyle:

  > cd decompyle
  > python setup.py build
  # python setup.py install

  Then, in the main directory, use
  the tools.

            ---

  To compile Ruby to a .pyc:

  > bin/unholy test.rb
  > python test.rb.pyc
  
            ---

  To translate to Python:

  > decompyle test.rb.pyc > test.py

            ---

  And, to view the disassembled
  bytes:
  
  > bin/py-dis test.rb.pyc

  Thanks to Ned Batchelder for his
  rather juicy posts on dissecting
  Python bytecode.  It is only too
  bad that a Rubyist got a hold of
  them. :(

        $ POTION $

  Now, image if Ruby and Python
  were to combine into something
  new.  Let's call it "potion":

  > potion test.py
  HELLO FROM PYTHON
  > potion test.rb
  KONNICHIWA FROM RUBY

  You know, it's crazy that Python
  and Ruby fans find themselves
  battling so much.  While syntax
  is different, this exercise
  proves how close they are to
  each other!  And, yes, I like
  Ruby's syntax and can think much
  better in it, but it would be
  nice to share libs with Python
  folk and not have to wait forever
  for a mythical VM that runs all
  possible languages.