I Can't run Spring. Here is the error log.
myid-no-MacBook-Pro:myid$ spring
/Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/lib/spring/sid.rb:17:in `fiddle_func': uninitialized constant Spring::SID::DL (NameError)
from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/lib/spring/sid.rb:30:in `sid'
from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/lib/spring/sid.rb:39:in `pgid'
from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/lib/spring/server.rb:76:in `set_pgid'
from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/lib/spring/server.rb:33:in `boot'
from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/lib/spring/server.rb:19:in `boot'
from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/lib/spring/client/run.rb:33:in `block in boot_server'
from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/lib/spring/client/run.rb:31:in `fork'
from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/lib/spring/client/run.rb:31:in `boot_server'
from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/lib/spring/client/run.rb:16:in `call'
from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/lib/spring/client/command.rb:7:in `call'
from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/lib/spring/client.rb:23:in `run'
from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/bin/spring:6:in `<top (required)>'
from /Users/myid/.rbenv/versions/1.9.3-p484/bin/spring:19:in `load'
from /Users/myid/.rbenv/versions/1.9.3-p484/bin/spring:19:in `<main>'
from /Users/myid/.rbenv/versions/1.9.3-p484/bin/ruby_executable_hooks:15:in `eval'
from /Users/myid/.rbenv/versions/1.9.3-p484/bin/ruby_executable_hooks:15:in `<main>'
^C/Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/lib/spring/client/run.rb:35:in `sleep': Interrupt
from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/lib/spring/client/run.rb:35:in `boot_server'
from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/lib/spring/client/run.rb:16:in `call'
from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/lib/spring/client/command.rb:7:in `call'
from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/lib/spring/client.rb:23:in `run'
from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems/spring-0.0.10/bin/spring:6:in `<top (required)>'
from /Users/myid/.rbenv/versions/1.9.3-p484/bin/spring:19:in `load'
from /Users/myid/.rbenv/versions/1.9.3-p484/bin/spring:19:in `<main>'
from /Users/myid/.rbenv/versions/1.9.3-p484/bin/ruby_executable_hooks:15:in `eval'
from /Users/myid/.rbenv/versions/1.9.3-p484/bin/ruby_executable_hooks:15:in `<main>'
I use:
I tried some other tests. I think this problem is 1.9.3 specific.
myid-no-MacBook-Pro:~ myid$ ruby -v
ruby 1.9.2p326 (2013-12-23 revision 44353) [x86_64-darwin13.1.0]
myid-no-MacBook-Pro:~ myid$ irb
irb(main):001:0> require 'fiddle'
=> true
irb(main):002:0> DL
=> DL
irb(main):003:0> require 'dl'
=> false
irb(main):004:0> DL
=> DL
irb(main):005:0> DL.fiddle?
=> true
irb(main):006:0> exit
myid-no-MacBook-Pro:~ myid$ rbenv global 1.9.3-p484
myid-no-MacBook-Pro:~ myid$ irb
irb(main):001:0> require 'fiddle'
LoadError: cannot load such file -- dl
from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/1.9.1/fiddle.rb:4:in `<top (required)>'
from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from (irb):1
from /Users/myid/.rbenv/versions/1.9.3-p484/bin/irb:12:in `<main>'
irb(main):002:0> DL
NameError: uninitialized constant DL
from (irb):2
from /Users/myid/.rbenv/versions/1.9.3-p484/bin/irb:12:in `<main>'
irb(main):003:0> require 'dl'
LoadError: cannot load such file -- dl
from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /Users/myid/.rbenv/versions/1.9.3-p484/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from (irb):3
from /Users/myid/.rbenv/versions/1.9.3-p484/bin/irb:12:in `<main>'
irb(main):004:0> exit
myid-no-MacBook-Pro:~ myid$ rbenv global 2.1.0
myid-no-MacBook-Pro:~ myid$ irb
irb(main):001:0> require 'fiddle'
=> true
irb(main):002:0> DL
NameError: uninitialized constant DL
from (irb):2
from /Users/myid/.rbenv/versions/2.1.0/bin/irb:11:in `<main>'
irb(main):003:0> require 'dl'
DL is deprecated, please use Fiddle
=> true
irb(main):004:0> DL
=> DL
irb(main):005:0> DL.fiddle?
=> true
irb(main):006:0>
If changing the C compiler does not fix your issue this patch helped me: https://github.com/pigoz/spring/commit/11804d2fd3dce75e9b236666739cdf5b40934abd
Simply locate the file on your system (find where spring is installed via bundle show spring
) and manually make the change.
I found out a solution.
In my case, after changing the c compiler from clang to apple-gcc42 worked perfectly. Here are the commands I used.
$ rbenv uninstall 1.9.3-p484
$ which gcc-4.2
/usr/local/bin/gcc-4.2
$ CC=/usr/local/bin/gcc-4.2
$ rbenv install 1.9.3-p484
$ rbenv rehash
Related link: https://github.com/rails/spring/issues/274
This problem appears to be limited to a range of Ruby 1.9.3 patch levels, compiled on a Mac, using the Apple supplied compiler.
I have a couple of later patches of Ruby (2.0, 2.1.2) at latest stable, LLVM. They work.
So, at some point in the 1.9.3 series, after p125, Spring stops working when using LLVM. At some point, at least 2.0.0-p481, later Ruby versions and minor versions, and tiny versions, start working again, with LLVM. IOW, this looks like a Ruby 1.9.3 regression issue, possibly a Ruby 2.0.0 regression issue. I've documented what I've found on Github as a Spring issue.
Right now, if you need 1.9.3 and you need Spring on a Mac... consider Zeus. ;)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With