Skip to content

Instantly share code, notes, and snippets.

@jacquescrocker
Created February 8, 2012 21:10
Show Gist options
  • Save jacquescrocker/1773910 to your computer and use it in GitHub Desktop.
Save jacquescrocker/1773910 to your computer and use it in GitHub Desktop.
Setting up Fast Ruby (1.9.3)
# update rvm
rvm get latest
# create a 1.9.3 patch
export patchdir=$rvm_path/patches/ruby/1.9.3/p0
mkdir -p $rvm_path/patches/ruby/1.9.3/p0
curl https://raw.github.com/gist/1658360/2eee5541435663deddd674617bf26ae645b015bd/cumulative_performance.patch > $rvm_path/patches/ruby/1.9.3/p0/falcon.patch
# install patched version
rvm install 1.9.3 -n falcon --patch $patchdir/falcon.patch --with-gcc=clang
rvm use 1.9.3-fast
@jacquescrocker
Copy link
Author

errored out:

[2012-02-08 13:11:06] make 
    CC = clang
    LD = ld
    LDSHARED = clang -dynamiclib
    CFLAGS = -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Werror=pointer-arith -Werror=write-strings -Werror=declaration-after-statement -Werror=shorten-64-to-32 -Werror=implicit-function-declaration  -fno-common -pipe
    XCFLAGS = -include ruby/config.h -include ruby/missing.h -fvisibility=hidden -DRUBY_EXPORT
    CPPFLAGS = -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE   -I. -I.ext/include/x86_64-darwin10.8.0 -I./include -I.
    DLDFLAGS = -Wl,-undefined,dynamic_lookup -Wl,-multiply_defined,suppress -Wl,-flat_namespace -install_name /Users/jc/.rvm/rubies/ruby-1.9.3-p0-falcon/lib/libruby.1.9.1.dylib -current_version 1.9.1 -compatibility_version 1.9.1 -Wl,-unexported_symbol,_Init_* -Wl,-unexported_symbol,*_threadptr_*  -Wl,-u,_objc_msgSend   
    SOLIBS = 
compiling main.c
compiling dmydln.c
compiling dmyencoding.c
compiling version.c
compiling dmyversion.c
compiling miniprelude.c
compiling array.c
compiling bignum.c
compiling class.c
compiling compar.c
compiling complex.c
compiling dir.c
compiling dln_find.c
compiling enum.c
compiling enumerator.c
compiling error.c
compiling eval.c
compiling load.c
compiling proc.c
compiling file.c
compiling gc.c
compiling hash.c
compiling inits.c
compiling io.c
compiling marshal.c
compiling math.c
compiling node.c
compiling numeric.c
compiling object.c
compiling pack.c
compiling parse.c
compiling process.c
compiling random.c
compiling range.c
compiling rational.c
compiling re.c
compiling regcomp.c
compiling regenc.c
compiling regerror.c
compiling regexec.c
compiling regparse.c
compiling regsyntax.c
compiling ruby.c
compiling safe.c
compiling signal.c
compiling sprintf.c
compiling st.c
compiling strftime.c
compiling string.c
compiling struct.c
compiling time.c
compiling transcode.c
compiling util.c
compiling variable.c
compiling compile.c
compiling debug.c
compiling iseq.c
compiling vm.c
WARNING: While resolving call to function 'catch_i' arguments were dropped!
compiling vm_dump.c
compiling thread.c
compiling cont.c
compiling ./enc/ascii.c
compiling ./enc/us_ascii.c
compiling ./enc/unicode.c
compiling ./enc/utf_8.c
compiling newline.c
compiling ./missing/setproctitle.c
compiling dmyext.c
linking miniruby
<internal:prelude>:1: [BUG] vm_get_cref: unreachable
ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin10.8.0]

-- Control frame information -----------------------------------------------
c:0003 p:0002 s:0006 b:0006 l:000005 d:000005 TOP    <internal:prelude>:1
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH
c:0001 p:0000 s:0002 b:0002 l:000e48 d:000e48 TOP   

-- Ruby level backtrace information ----------------------------------------
<internal:prelude>:1:in `<compiled>'

-- C level backtrace information -------------------------------------------

   See Crash Report log file under ~/Library/Logs/CrashReporter or
   /Library/Logs/CrashReporter, for the more detail of.

-- Other runtime information -----------------------------------------------

* Loaded script: ./miniruby

* Loaded features:

    0 enumerator.so

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

make: *** [.rbconfig.time] Abort trap

@jacquescrocker
Copy link
Author

Rerunning without clang gives me

[jc@mac ~]# rvm install 1.9.3 -n falcon --patch $patchdir/falcon.patch
Fetching yaml-0.1.4.tar.gz to /Users/jc/.rvm/archives
Extracting yaml-0.1.4.tar.gz to /Users/jc/.rvm/src
Configuring yaml in /Users/jc/.rvm/src/yaml-0.1.4.
Compiling yaml in /Users/jc/.rvm/src/yaml-0.1.4.
Installing yaml to /Users/jc/.rvm/usr
Installing Ruby from source to: /Users/jc/.rvm/rubies/ruby-1.9.3-p0-falcon, this may take a while depending on your cpu(s)...

ruby-1.9.3-p0-falcon - #fetching 
ruby-1.9.3-p0-falcon - #extracted to /Users/jc/.rvm/src/ruby-1.9.3-p0-falcon (already extracted)
Applying patch '/Users/jc/.rvm/patches/ruby/1.9.3/p0/falcon.patch' (located at //Users/jc/.rvm/patches/ruby/1.9.3/p0/falcon.patch)
Error running 'patch -F 25 -p1 -N -f <"//Users/jc/.rvm/patches/ruby/1.9.3/p0/falcon.patch"', please read /Users/jc/.rvm/log/ruby-1.9.3-p0-falcon/patch.apply.falcon.patch.log
ruby-1.9.3-p0-falcon - #autoreconf

@jacquescrocker
Copy link
Author

Fuck it... this is a waste of time...

@pabloh
Copy link

pabloh commented Mar 5, 2012

You could try to run "rvm cleanup sources", and then running the install command again.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment