Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

This is my private git mirror of the experimental branch (0.5), it might not always be up-to-date so keep that in mind.

branch: master

Fixed a problem in macruby.mspec.

latest commit 5798d9001b
pthomson@apple.com authored August 03, 2009
Octocat-spinner-32 benchmark committing experimental branch content March 11, 2009
Octocat-spinner-32 bin fixed a typo + removed some dead code July 12, 2009
Octocat-spinner-32 data committing experimental branch content March 11, 2009
Octocat-spinner-32 ext Fixed some GC problems, ensured that my new test for the VM works, an… August 03, 2009
Octocat-spinner-32 framework committing experimental branch content March 11, 2009
Octocat-spinner-32 include okay, YAML::load sort of works. August 03, 2009
Octocat-spinner-32 lib Ensured that Ranges are constructed correctly from provided YAML - th… August 03, 2009
Octocat-spinner-32 misc committing experimental branch content March 11, 2009
Octocat-spinner-32 mspec Updated MSpec to e812953 July 01, 2009
Octocat-spinner-32 onig fixed GC problems in oniguruma: make sure st.c tables are retained/re… July 27, 2009
Octocat-spinner-32 rakelib Including libyaml source in ext/libyaml, changed the rakefile, and re… August 03, 2009
Octocat-spinner-32 sample-macruby A very simple Web server written on top of Foundation's run loop and … June 29, 2009
Octocat-spinner-32 sample committing experimental branch content March 11, 2009
Octocat-spinner-32 spec Fixed a problem in macruby.mspec. August 03, 2009
Octocat-spinner-32 test-macruby Removed the half implemented RubyCocoa layer for now at least. Need t… March 16, 2009
Octocat-spinner-32 test_vm Fixed some GC problems, ensured that my new test for the VM works, an… August 03, 2009
Octocat-spinner-32 tool the great schism, part I May 23, 2009
Octocat-spinner-32 .cvsignore removed autogenerated files March 11, 2009
Octocat-spinner-32 .document removed autogenerated files March 11, 2009
Octocat-spinner-32 .gitignore Further work in making even a semi-usable YAML parser out of this code. August 03, 2009
Octocat-spinner-32 COPYING committing experimental branch content March 11, 2009
Octocat-spinner-32 GPL committing experimental branch content March 11, 2009
Octocat-spinner-32 HACKING.rdoc mention DYLD_LIBRARY_PATH May 30, 2009
Octocat-spinner-32 LEGAL added autozone.h legal information April 13, 2009
Octocat-spinner-32 LGPL committing experimental branch content March 11, 2009
Octocat-spinner-32 MacRuby.m forgot to initialize the compiler July 27, 2009
Octocat-spinner-32 README.rdoc Added extra note about compiling LLVM with make -jN. June 03, 2009
Octocat-spinner-32 Rakefile Added simple irb rake task and uncommented spec => spec:ci shortcut. April 06, 2009
Octocat-spinner-32 TODO Implemented a cleaner solution to the adding of singleton methods to … July 24, 2009
Octocat-spinner-32 array.c various unicode/bytestring fixes July 31, 2009
Octocat-spinner-32 auto_zone.h committing experimental branch content March 11, 2009
Octocat-spinner-32 b.rb committing experimental branch content March 11, 2009
Octocat-spinner-32 bench.rb enabled tail-call elimination April 08, 2009
Octocat-spinner-32 bignum.c Fixed an incorrect method declaration in bignum.c. I hate it when peo… July 22, 2009
Octocat-spinner-32 bridgesupport.cpp workaround missing 64-bit informal protocol annotations in BridgeSupport July 06, 2009
Octocat-spinner-32 bridgesupport.h better version of last commit June 20, 2009
Octocat-spinner-32 bs.c committing experimental branch content March 11, 2009
Octocat-spinner-32 bs.h the great schism, part I May 23, 2009
Octocat-spinner-32 bs_lex.h committing experimental branch content March 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 overwrite -[NSObject description] in every new subclass + optimized o… August 02, 2009
Octocat-spinner-32 compar.c optimized dummy calls to <=>: July 08, 2009
Octocat-spinner-32 compiler.cpp floating point should now work on 32 bits August 03, 2009
Octocat-spinner-32 compiler.h added support for @@foo||=42, a lot of changes for a very stupid func… August 03, 2009
Octocat-spinner-32 complex.c raise exception in case we try to divide by zero August 02, 2009
Octocat-spinner-32 cont.c committing experimental branch content March 11, 2009
Octocat-spinner-32 dir.c various unicode/bytestring fixes July 31, 2009
Octocat-spinner-32 distruby.rb committing experimental branch content March 11, 2009
Octocat-spinner-32 dln.c more work on the new objc dispatcher April 18, 2009
Octocat-spinner-32 dln.h committing experimental branch content March 11, 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 committing experimental branch content March 11, 2009
Octocat-spinner-32 encoding.c
Octocat-spinner-32 enum.c optimized dummy calls to <=>: July 08, 2009
Octocat-spinner-32 enumerator.c Enumerator should be a top-level class June 06, 2009
Octocat-spinner-32 error.c ported Kernel#warn the new runtime API July 27, 2009
Octocat-spinner-32 eval.c delay the require of -r libs until the compiler is available July 22, 2009
Octocat-spinner-32 eval_error.c committing experimental branch content March 11, 2009
Octocat-spinner-32 eval_jump.c committing experimental branch content March 11, 2009
Octocat-spinner-32 eval_safe.c committing experimental branch content March 11, 2009
Octocat-spinner-32 file.c fixed bytestring -> path conversion July 31, 2009
Octocat-spinner-32 gc-stub.m committing experimental branch content March 11, 2009
Octocat-spinner-32 gc.c fixed GC problems in oniguruma: make sure st.c tables are retained/re… July 27, 2009
Octocat-spinner-32 gem_prelude.rb committing experimental branch content March 11, 2009
Octocat-spinner-32 gen_bs_struct_readers.rb
Octocat-spinner-32 golf_prelude.rb committing experimental branch content March 11, 2009
Octocat-spinner-32 hash.c added support to delete environment variables using ENV[]=nil July 27, 2009
Octocat-spinner-32 id.c overwrite -[NSObject description] in every new subclass + optimized o… August 02, 2009
Octocat-spinner-32 id.h overwrite -[NSObject description] in every new subclass + optimized o… August 02, 2009
Octocat-spinner-32 inits.c
Octocat-spinner-32 instruby.rb force installation of static.a library July 11, 2009
Octocat-spinner-32 io.c Further work in making even a semi-usable YAML parser out of this code. August 03, 2009
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
Octocat-spinner-32 lgamma_r.c committing experimental branch content March 11, 2009
Octocat-spinner-32 load.c fixed the require of Ruby scripts where the path is fully-qualified (… June 05, 2009
Octocat-spinner-32 main.cpp introduce rb_vm_init_compiler() to initialize the shared Compiler object July 03, 2009
Octocat-spinner-32 markgc.c committing experimental branch content March 11, 2009
Octocat-spinner-32 marshal.c ported to rb_objc_define_method() March 18, 2009
Octocat-spinner-32 math.c ported the math.c apis to the new runtime May 28, 2009
Octocat-spinner-32 numeric.c optimize numeric coerce dispatch calls August 01, 2009
Octocat-spinner-32 objc.h fixing more stupid IO bugs June 10, 2009
Octocat-spinner-32 objc.m work around a crash while raising an objc exception from a ruby one August 03, 2009
Octocat-spinner-32 object.c
Octocat-spinner-32 pack.c better Array#pack taint magic June 05, 2009
Octocat-spinner-32 parse.y added support for creation of Binding local variables July 29, 2009
Octocat-spinner-32 prec.c committing experimental branch content March 11, 2009
Octocat-spinner-32 prelude.rb committing experimental branch content March 11, 2009
Octocat-spinner-32 proc.c properly save the local variables for the bindings when leaving a block June 26, 2009
Octocat-spinner-32 process.c various unicode/bytestring fixes July 31, 2009
Octocat-spinner-32 random.c ported the random.c apis to the new runtime May 29, 2009
Octocat-spinner-32 range.c optimized dummy calls to <=>: July 08, 2009
Octocat-spinner-32 rational.c adding some TODOs August 02, 2009
Octocat-spinner-32 re.c some work on unicode support (still in progress) July 20, 2009
Octocat-spinner-32 ruby.1 committing experimental branch content March 11, 2009
Octocat-spinner-32 ruby.c delay the require of -r libs until the compiler is available July 22, 2009
Octocat-spinner-32 rubytest.rb committing experimental branch content March 11, 2009
Octocat-spinner-32 runruby.rb
Octocat-spinner-32 set.c
Octocat-spinner-32 signal.c Courtesy of Jordan Breeding, a patch to build with Clang and llvm-gcc… June 23, 2009
Octocat-spinner-32 sprintf.cpp changed the way %s is implemented to behave like the ruby spec and se… August 02, 2009
Octocat-spinner-32 st.c committing experimental branch content March 11, 2009
Octocat-spinner-32 string.c removing debug printf August 03, 2009
Octocat-spinner-32 struct.c fixed several bugs in the Struct class, now it's usable again June 07, 2009
Octocat-spinner-32 test_vm.rb when loading a test file, append ./ this way it won't conflict with a… June 25, 2009
Octocat-spinner-32 thread.c
Octocat-spinner-32 thread_pthread.h committing experimental branch content March 11, 2009
Octocat-spinner-32 time.c removed the previous bytestring code and now use the new one March 16, 2009
Octocat-spinner-32 transcode.c fixed the build (sorry guys) March 30, 2009
Octocat-spinner-32 transcode_data.h committing experimental branch content March 11, 2009
Octocat-spinner-32 util.c various unicode/bytestring fixes July 31, 2009
Octocat-spinner-32 variable.c added support for @@foo||=42, a lot of changes for a very stupid func… August 03, 2009
Octocat-spinner-32 version.c committing experimental branch content March 11, 2009
Octocat-spinner-32 version.h committing experimental branch content March 11, 2009
Octocat-spinner-32 vm.cpp added support for @@foo||=42, a lot of changes for a very stupid func… August 03, 2009
Octocat-spinner-32 vm.h added support for creation of Binding local variables July 29, 2009
Octocat-spinner-32 vm_eval.c AOT compiler: added support for blocks July 01, 2009
Octocat-spinner-32 vm_method.c fix a few regressions May 22, 2009
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 trunk, compiled for both i386 and x86_64.

    In case trunk reveals to be unstable we recommend revision 72741.

    $ svn co -r 72741 https://llvm.org/svn/llvm-project/llvm/trunk llvm-trunk
    $ cd llvm-trunk
    $ ./configure
    $ 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 Dore 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.