| name | age | message | |
|---|---|---|---|
| |
.cvsignore | Mon Feb 25 22:40:53 -0800 2008 | |
| |
.document | Mon Feb 25 22:40:53 -0800 2008 | |
| |
.gitignore | Mon Jan 11 15:16:36 -0800 2010 | |
| |
COPYING | Wed Mar 11 14:14:13 -0700 2009 | |
| |
GPL | Mon Feb 25 12:18:21 -0800 2008 | |
| |
HACKING.rdoc | Mon Feb 08 12:49:53 -0800 2010 | |
| |
LEGAL | Mon Apr 13 13:25:07 -0700 2009 | |
| |
LGPL | Mon Feb 25 12:18:21 -0800 2008 | |
| |
MacRuby.m | Tue Feb 09 22:38:36 -0800 2010 | |
| |
MacRubyDebuggerConnector.h | Sun Jan 17 22:04:25 -0800 2010 | |
| |
MacRubyDebuggerConnector.m | Sun Jan 17 22:04:25 -0800 2010 | |
| |
NSArray.m | Sat Feb 06 20:51:44 -0800 2010 | |
| |
NSDictionary.m | Sat Feb 06 20:51:44 -0800 2010 | |
| |
README.rdoc | Tue Feb 09 17:06:55 -0800 2010 | |
| |
Rakefile | Tue Nov 24 17:22:35 -0800 2009 | |
| |
TODO | Sat Feb 06 20:58:45 -0800 2010 | |
| |
array.c | Mon Feb 08 17:08:20 -0800 2010 | |
| |
array.h | Sat Feb 06 20:51:44 -0800 2010 | |
| |
auto_zone_1060.h | Tue Jan 19 17:54:14 -0800 2010 | |
| |
b.rb | Wed Mar 11 14:14:13 -0700 2009 | |
| |
bench.rb | Tue Apr 07 18:24:23 -0700 2009 | |
| |
benchmark/ | Wed Mar 11 14:14:13 -0700 2009 | |
| |
bignum.c | Thu Oct 15 18:37:01 -0700 2009 | |
| |
bin/ | Thu Feb 04 16:26:35 -0800 2010 | |
| |
bridgesupport.cpp | Tue Jan 19 17:54:14 -0800 2010 | |
| |
bridgesupport.h | Tue Jan 19 17:54:14 -0800 2010 | |
| |
bs.c | Tue Jan 19 17:54:14 -0800 2010 | |
| |
bs.h | Tue Jan 19 17:54:14 -0800 2010 | |
| |
bs_lex.h | Tue Aug 11 04:40:10 -0700 2009 | |
| |
bs_struct_readers.c | Wed Apr 22 17:55:53 -0700 2009 | |
| |
class.c | Tue Feb 09 22:38:36 -0800 2010 | |
| |
compar.c | Tue Jul 07 19:52:12 -0700 2009 | |
| |
compiler.cpp | Tue Feb 09 22:38:36 -0800 2010 | |
| |
compiler.h | Tue Feb 09 22:38:36 -0800 2010 | |
| |
complex.c | Thu Aug 27 22:11:13 -0700 2009 | |
| |
cont.c | Wed Mar 11 14:14:13 -0700 2009 | |
| |
debugger.cpp | Sat Jan 16 20:37:52 -0800 2010 | |
| |
debugger.h | Sat Jan 16 20:37:52 -0800 2010 | |
| |
dir.c | Tue Feb 09 22:38:36 -0800 2010 | |
| |
dispatcher.cpp | Tue Feb 09 14:39:29 -0800 2010 | |
| |
distruby.rb | Mon Feb 25 12:18:21 -0800 2008 | |
| |
dln.c | Fri Sep 25 17:14:56 -0700 2009 | |
| |
dln.h | Fri Sep 25 17:14:56 -0700 2009 | |
| |
dmydln.c | Mon Feb 25 12:18:21 -0800 2008 | |
| |
dmyencoding.c | Sun May 18 01:10:19 -0700 2008 | |
| |
dmyext.c | Mon Feb 25 12:18:21 -0800 2008 | |
| |
dmytranscode.c | Sun May 18 01:10:19 -0700 2008 | |
| |
dtrace.d | Thu Oct 08 18:56:53 -0700 2009 | |
| |
encoding.c | Wed Feb 03 17:24:42 -0800 2010 | |
| |
enum.c | Fri Sep 04 21:49:21 -0700 2009 | |
| |
enumerator.c | Thu Sep 17 16:47:17 -0700 2009 | |
| |
env.c | Wed Feb 03 21:29:57 -0800 2010 | |
| |
error.c | Fri Feb 05 15:52:42 -0800 2010 | |
| |
eval.c | Fri Jan 22 18:45:37 -0800 2010 | |
| |
eval_error.c | Wed Mar 11 14:14:13 -0700 2009 | |
| |
eval_jump.c | Mon Jan 18 14:55:13 -0800 2010 | |
| |
eval_safe.c | Wed Mar 11 14:14:13 -0700 2009 | |
| |
ext/ | Wed Feb 03 18:09:52 -0800 2010 | |
| |
file.c | Fri Jan 29 17:26:55 -0800 2010 | |
| |
framework/ | Wed Jun 11 20:04:36 -0700 2008 | |
| |
gc-stub.m | Tue Jan 19 17:54:14 -0800 2010 | |
| |
gc.c | Tue Feb 09 22:38:36 -0800 2010 | |
| |
gcd.c | Wed Feb 03 17:16:08 -0800 2010 | |
| |
gem_prelude.rb | Mon Jan 25 12:26:51 -0800 2010 | |
| |
gen_bs_struct_readers.rb | Wed Apr 22 17:55:53 -0700 2009 | |
| |
golf_prelude.rb | Sun May 18 01:10:19 -0700 2008 | |
| |
hash.c | Sat Feb 06 20:51:44 -0800 2010 | |
| |
hash.h | Sat Feb 06 20:51:44 -0800 2010 | |
| |
id.c | Mon Jan 11 14:57:50 -0800 2010 | |
| |
id.h | Mon Jan 11 14:57:50 -0800 2010 | |
| |
include/ | Tue Feb 09 22:38:36 -0800 2010 | |
| |
inits.c | Wed Feb 03 21:30:46 -0800 2010 | |
| |
instruby.rb | Tue Dec 01 13:36:04 -0800 2009 | |
| |
io.c | Fri Jan 29 17:26:55 -0800 2010 | |
| |
keywords | Thu Jun 05 01:11:58 -0700 2008 | |
| |
lex.c.blt | Thu Jun 05 01:11:58 -0700 2008 | |
| |
lex.c.src | Thu Jun 05 01:11:58 -0700 2008 | |
| |
lgamma_r.c | Wed Mar 11 14:14:13 -0700 2009 | |
| |
lib/ | Tue Feb 09 15:26:12 -0800 2010 | |
| |
llvm.h | Mon Dec 14 17:42:46 -0800 2009 | |
| |
load.c | Mon Feb 08 16:27:14 -0800 2010 | |
| |
main.cpp | Tue Jan 19 17:54:14 -0800 2010 | |
| |
markgc.c | Tue Jan 19 17:54:14 -0800 2010 | |
| |
marshal.c | Tue Feb 09 22:38:36 -0800 2010 | |
| |
math.c | Tue Aug 25 18:35:19 -0700 2009 | |
| |
misc/ | Fri Jan 15 17:41:23 -0800 2010 | |
| |
mspec/ | Sun Jan 10 12:53:10 -0800 2010 | |
| |
numeric.c | Tue Jan 26 15:18:08 -0800 2010 | |
| |
objc.h | Tue Feb 09 22:38:36 -0800 2010 | |
| |
objc.m | Mon Feb 08 01:10:54 -0800 2010 | |
| |
object.c | Sat Feb 06 20:51:44 -0800 2010 | |
| |
onig/ | Tue Oct 20 17:17:32 -0700 2009 | |
| |
pack.c | Thu Oct 01 00:35:10 -0700 2009 | |
| |
parse.y | Sun Nov 29 19:18:46 -0800 2009 | |
| |
prec.c | Wed Mar 11 14:14:13 -0700 2009 | |
| |
prelude.rb | Sun May 18 01:10:19 -0700 2008 | |
| |
proc.c | Tue Feb 09 22:38:36 -0800 2010 | |
| |
process.c | Tue Feb 02 15:38:47 -0800 2010 | |
| |
rakelib/ | Sat Feb 06 20:51:44 -0800 2010 | |
| |
random.c | Mon Nov 16 11:02:11 -0800 2009 | |
| |
range.c | Sat Feb 06 20:51:44 -0800 2010 | |
| |
rational.c | Sat Aug 01 19:00:15 -0700 2009 | |
| |
re.c | Sat Feb 06 20:51:44 -0800 2010 | |
| |
ruby.1 | Sun May 18 01:10:19 -0700 2008 | |
| |
ruby.c | Sat Jan 16 20:37:52 -0800 2010 | |
| |
rubyc.1 | Fri Dec 18 17:49:41 -0800 2009 | |
| |
rubytest.rb | Mon Feb 25 12:18:21 -0800 2008 | |
| |
runruby.rb | Mon Feb 25 12:18:21 -0800 2008 | |
| |
sample-macruby/ | Tue Feb 09 15:25:06 -0800 2010 | |
| |
sample/ | Wed Mar 11 14:14:13 -0700 2009 | |
| |
signal.c | Tue Jan 26 06:18:47 -0800 2010 | |
| |
spec/ | Tue Feb 09 22:38:36 -0800 2010 | |
| |
sprintf.cpp | Mon Feb 08 01:10:54 -0800 2010 | |
| |
st.c | Wed Jan 20 15:49:09 -0800 2010 | |
| |
string.c | Fri Feb 05 17:19:30 -0800 2010 | |
| |
struct.c | Wed Jan 20 15:49:09 -0800 2010 | |
| |
test-macruby/ | Mon Mar 16 14:30:13 -0700 2009 | |
| |
test/ | Mon Sep 14 10:15:13 -0700 2009 | |
| |
test_vm.rb | Tue Dec 22 17:57:40 -0800 2009 | |
| |
test_vm/ | Tue Feb 09 14:42:43 -0800 2010 | |
| |
thread.c | Mon Feb 08 16:44:23 -0800 2010 | |
| |
time.c | Wed Jan 20 15:49:09 -0800 2010 | |
| |
tool/ | Tue Jan 26 16:14:31 -0800 2010 | |
| |
transcode.c | Mon Mar 30 16:42:49 -0700 2009 | |
| |
transcode_data.h | Mon Feb 25 12:18:21 -0800 2008 | |
| |
util.c | Thu Jul 30 23:46:57 -0700 2009 | |
| |
variable.c | Tue Feb 09 22:38:36 -0800 2010 | |
| |
version.c | Mon Oct 19 16:38:40 -0700 2009 | |
| |
version.h | Sat Jan 16 20:36:20 -0800 2010 | |
| |
vm.cpp | Tue Feb 09 22:38:36 -0800 2010 | |
| |
vm.h | Tue Feb 09 14:39:29 -0800 2010 | |
| |
vm_eval.c | Fri Jan 22 18:45:37 -0800 2010 | |
| |
vm_method.c | Tue Feb 09 22:38:36 -0800 2010 |
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 89156, being sure to specify the correct C and C++ compilers through environment variables.
$ svn co -r 89156 https://llvm.org/svn/llvm-project/llvm/trunk llvm-trunk $ cd llvm-trunk $ env UNIVERSAL=1 UNIVERSAL_ARCH="i386 x86_64" CC=/usr/bin/gcc CXX=/usr/bin/g++ ./configure --enable-bindings=none --enable-optimized --with-llvmgccdir=/tmp $ env UNIVERSAL=1 UNIVERSAL_ARCH="i386 x86_64" CC=/usr/bin/gcc CXX=/usr/bin/g++ make $ sudo env UNIVERSAL=1 UNIVERSAL_ARCH="i386 x86_64" 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:
$ UNIVERSAL=1 UNIVERSAL_ARCH="i386 x86_64" ENABLE_OPTIMIZED=1 make -j2
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
Then you should be all set! Please report us any problem you will find (the macruby.org website has pointers). Thanks!
