MacRuby

MacRuby is an implementation of Ruby 1.9 directly on top of Mac OS X core technologies such as the Objective-C runtime and garbage collector, the LLVM compiler infrastructure and the Foundation and ICU frameworks.

1817
200
Ruby

== MacRuby

Note: Due to Apple’s abandonment of the Objective-C Garbage Collector
(libauto) which MacRuby relied heavily on, future development of MacRuby is on an
indefinite hiatus. If you would like to develop applications for iOS and OS X
please check out RubyMotion, the spiritual successor to the MacRuby project.

MacRuby is a Ruby implementation based on Mac OS X technologies, such as the
Objective-C runtime and garbage collector, the CoreFoundation framework and the
LLVM compiler infrastructure.

It is the goal of MacRuby to enable the creation of full-fledged Mac OS X
applications which do not sacrifice performance in order to enjoy the benefits
of using Ruby.

MacRuby is copyrighted free software by the MacRuby team and covered by the
terms of the Ruby license. Please refer to the COPYING file for more
information.

The project website contains more documentation, such as tutorials and guides:
http://macruby.org

=== Requirements

  • An Intel 64-bit machine. PowerPC and Intel 32-bit machines are not supported
    anymore, but may still work.

  • Mac OS X 10.6 or later.

  • LLVM ToT, compiled for x86_64.

    LLVM is a moving target and breaks periodically. We recommend to install
    revision 127367 of branch 2.9, being sure to specify the correct C and
    C++ compilers through environment variables.

    $ svn co https://llvm.org/svn/llvm-project/llvm/branches/release_29@127367 llvm-2.9
    $ cd llvm-2.9
    $ env CC=/usr/bin/gcc CXX=/usr/bin/g++ ./configure --enable-bindings=none --enable-optimized --with-llvmgccdir=/tmp
    $ env CC=/usr/bin/gcc CXX=/usr/bin/g++ make
    $ sudo env CC=/usr/bin/gcc CXX=/usr/bin/g++ make install

    Note that compiling LLVM can take quite a while. If you have a machine with
    multiple cores, which is quite likely, you might want to speed up the process
    by using all/more cores. However, doing this can make your machine
    unresponsive during compilation. To use multiple cores pass the -j N' option, where N’ stands for the number of cores you’d like to use. So for a
    Core Duo the command would look like:

    $ env CC=/usr/bin/gcc CXX=/usr/bin/g++ make -j2

    If you would prefer to update an existing LLVM Subversion working copy you
    need to be careful to remove any previous build files before you compile:

    $ svn status --no-ignore | awk ‘{print $2}’ | xargs rm -rf
    $ svn revert -R .
    $ svn switch

=== Note for using Xcode 4.3 (or later)

If you use the Xcode 4.3 (or later), you might need to configure Xcode path
before installing MacRuby:

$ sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer/

=== Build Instructions

You can build MacRuby by doing the following command:

$ rake

Or, as with LLVM, you can specify the amount of jobs to run simultaneously:

$ rake jobs=2

Once done, you can run the RubySpec-based regression tests as well as the
performance suite:

$ rake spec:ci
$ rake bench:ci

To install MacRuby on your machine:

$ sudo rake install # --quiet

Then you should be all set! Please report us any problem you will find (the
http://macruby.org website has pointers). Thanks!

=== Contribute

Once you’ve made your great commits:

  1. Fork[http://help.github.com/fork-a-repo] MacRuby
  2. Create a topic branch - git checkout -b my_branch
  3. Push to your branch - git push origin my_branch
  4. Create a pull request: https://github.com/USERNAME/MacRuby/pull/new/master
  5. That’s it!