Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

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.

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 benchmark
Octocat-spinner-32 bin
Octocat-spinner-32 ext
Octocat-spinner-32 framework
Octocat-spinner-32 include
Octocat-spinner-32 lib
Octocat-spinner-32 misc
Octocat-spinner-32 mspec
Octocat-spinner-32 onig
Octocat-spinner-32 rakelib
Octocat-spinner-32 sample-macruby
Octocat-spinner-32 sample committing experimental branch content March 11, 2009
Octocat-spinner-32 spec
Octocat-spinner-32 test-macruby
Octocat-spinner-32 test
Octocat-spinner-32 test_vm
Octocat-spinner-32 tool
Octocat-spinner-32 .cvsignore
Octocat-spinner-32 .document
Octocat-spinner-32 .gitignore
Octocat-spinner-32 COPYING
Octocat-spinner-32 GPL committing experimental branch content March 11, 2009
Octocat-spinner-32 HACKING.rdoc
Octocat-spinner-32 LEGAL
Octocat-spinner-32 LGPL committing experimental branch content March 11, 2009
Octocat-spinner-32 MacRuby.m
Octocat-spinner-32 README.rdoc
Octocat-spinner-32 Rakefile
Octocat-spinner-32 TODO
Octocat-spinner-32 array.c
Octocat-spinner-32 auto_zone_1060.h
Octocat-spinner-32 b.rb
Octocat-spinner-32 bench.rb
Octocat-spinner-32 bignum.c
Octocat-spinner-32 bridgesupport.cpp
Octocat-spinner-32 bridgesupport.h
Octocat-spinner-32 bs.c
Octocat-spinner-32 bs.h
Octocat-spinner-32 bs_lex.h fixed compilation on Leopard August 11, 2009
Octocat-spinner-32 bs_struct_readers.c statically generate the struct reader methods, 128 seems necessary at… April 23, 2009
Octocat-spinner-32 class.c
Octocat-spinner-32 compar.c
Octocat-spinner-32 compiler.cpp
Octocat-spinner-32 compiler.h
Octocat-spinner-32 complex.c
Octocat-spinner-32 cont.c
Octocat-spinner-32 dir.c
Octocat-spinner-32 dispatcher.cpp
Octocat-spinner-32 distruby.rb committing experimental branch content March 11, 2009
Octocat-spinner-32 dln.c
Octocat-spinner-32 dln.h .rbo files are now initialized using a gcc constructor instead of an … September 26, 2009
Octocat-spinner-32 dmydln.c committing experimental branch content March 11, 2009
Octocat-spinner-32 dmyencoding.c committing experimental branch content March 11, 2009
Octocat-spinner-32 dmyext.c committing experimental branch content March 11, 2009
Octocat-spinner-32 dmytranscode.c committing experimental branch content March 11, 2009
Octocat-spinner-32 dtrace.d removed the insn__entry and insn__return probes now that yarv is gone October 09, 2009
Octocat-spinner-32 encoding.c
Octocat-spinner-32 enum.c
Octocat-spinner-32 enumerator.c
Octocat-spinner-32 error.c
Octocat-spinner-32 eval.c
Octocat-spinner-32 eval_error.c
Octocat-spinner-32 eval_jump.c
Octocat-spinner-32 eval_safe.c
Octocat-spinner-32 file.c
Octocat-spinner-32 gc-stub.m
Octocat-spinner-32 gc.c
Octocat-spinner-32 gcd.c
Octocat-spinner-32 gem_prelude.rb
Octocat-spinner-32 gen_bs_struct_readers.rb statically generate the struct reader methods, 128 seems necessary at… April 23, 2009
Octocat-spinner-32 golf_prelude.rb committing experimental branch content March 11, 2009
Octocat-spinner-32 hash.c
Octocat-spinner-32 id.c
Octocat-spinner-32 id.h
Octocat-spinner-32 inits.c
Octocat-spinner-32 instruby.rb
Octocat-spinner-32 io.c
Octocat-spinner-32 keywords committing experimental branch content March 11, 2009
Octocat-spinner-32 lex.c.blt committing experimental branch content March 11, 2009
Octocat-spinner-32 lex.c.src committing experimental branch content March 11, 2009
Octocat-spinner-32 lgamma_r.c committing experimental branch content March 11, 2009
Octocat-spinner-32 llvm.h
Octocat-spinner-32 load.c
Octocat-spinner-32 main.cpp
Octocat-spinner-32 markgc.c
Octocat-spinner-32 marshal.c
Octocat-spinner-32 math.c
Octocat-spinner-32 numeric.c
Octocat-spinner-32 objc.h
Octocat-spinner-32 objc.m
Octocat-spinner-32 object.c
Octocat-spinner-32 pack.c
Octocat-spinner-32 parse.y
Octocat-spinner-32 prec.c
Octocat-spinner-32 prelude.rb
Octocat-spinner-32 proc.c
Octocat-spinner-32 process.c
Octocat-spinner-32 random.c
Octocat-spinner-32 range.c
Octocat-spinner-32 rational.c
Octocat-spinner-32 re.c
Octocat-spinner-32 ruby.1 committing experimental branch content March 11, 2009
Octocat-spinner-32 ruby.c
Octocat-spinner-32 rubyc.1
Octocat-spinner-32 rubytest.rb committing experimental branch content March 11, 2009
Octocat-spinner-32 runruby.rb committing experimental branch content March 11, 2009
Octocat-spinner-32 signal.c
Octocat-spinner-32 sprintf.cpp
Octocat-spinner-32 st.c
Octocat-spinner-32 string.c
Octocat-spinner-32 struct.c
Octocat-spinner-32 test_vm.rb
Octocat-spinner-32 thread.c
Octocat-spinner-32 thread_pthread.h
Octocat-spinner-32 time.c
Octocat-spinner-32 transcode.c
Octocat-spinner-32 transcode_data.h
Octocat-spinner-32 util.c
Octocat-spinner-32 variable.c
Octocat-spinner-32 version.c
Octocat-spinner-32 version.h
Octocat-spinner-32 vm.cpp
Octocat-spinner-32 vm.h
Octocat-spinner-32 vm_eval.c
Octocat-spinner-32 vm_method.c
README.rdoc

MacRuby

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 Apple Inc 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: macruby.org

Requirements

  • An Intel machine. PowerPC machines are not supported anymore, but may still work. An Intel 64-bit machine (Intel Core Duo 2) is recommended.

  • Mac OS X 10.5.6 or later.

  • LLVM ToT, compiled for both i386 and x86_64.

    LLVM is a moving target and breaks periodically. We recommend to install revision 82747.

    $ svn co -r 82747 https://llvm.org/svn/llvm-project/llvm/trunk llvm-trunk
    $ cd llvm-trunk
    $ ./configure --enable-bindings=none
    $ UNIVERSAL=1 UNIVERSAL_ARCH="i386 x86_64" ENABLE_OPTIMIZED=1 make
    $ sudo env UNIVERSAL=1 UNIVERSAL_ARCH="i386 x86_64" ENABLE_OPTIMIZED=1 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:

    $ UNIVERSAL=1 UNIVERSAL_ARCH="i386 x86_64" ENABLE_OPTIMIZED=1 make -j2

Build Instructions

You can build MacRuby by doing the following command:

$ rake

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

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

Something went wrong with that request. Please try again.