johnson
johnson copied to clipboard
1.9.2-preview3 Build Error
Using rvm with 1.9.2-preview3 and Rails 3 beta 4. on Ubuntu Karmic Koala 10.04
Installing johnson (2.0.0.pre3) from .gem files at /home/rgoytacaz/.rvm/gems/ruby-1.9.2-preview3/cache with native extensions /home/rgoytacaz/.rvm/rubies/ruby-1.9.2-preview3/lib/ruby/1.9.1/rubygems/installer.rb:483:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)
/home/rgoytacaz/.rvm/rubies/ruby-1.9.2-preview3/bin/ruby extconf.rb checking for jsautocfg.h in /home/rgoytacaz/.rvm/gems/ruby-1.9.2-preview3/gems/johnson-2.0.0.pre3/vendor/tracemonkey... yes checking for jsapi.h in /home/rgoytacaz/.rvm/gems/ruby-1.9.2-preview3/gems/johnson-2.0.0.pre3/vendor/tracemonkey... yes creating Makefile
make g++ -I. -I/home/rgoytacaz/.rvm/rubies/ruby-1.9.2-preview3/include/ruby-1.9.1/i686-linux -I/home/rgoytacaz/.rvm/rubies/ruby-1.9.2-preview3/include/ruby-1.9.1/ruby/backward -I/home/rgoytacaz/.rvm/rubies/ruby-1.9.2-preview3/include/ruby-1.9.1 -I. -I/home/rgoytacaz/.rvm/gems/ruby-1.9.2-preview3/gems/johnson-2.0.0.pre3/vendor/tracemonkey -D_FILE_OFFSET_BITS=64 -fPIC -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wno-long-long -fPIC -g -Wall -Wextra -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline -DXP_UNIX -o context.o -c context.cc g++ -I. -I/home/rgoytacaz/.rvm/rubies/ruby-1.9.2-preview3/include/ruby-1.9.1/i686-linux -I/home/rgoytacaz/.rvm/rubies/ruby-1.9.2-preview3/include/ruby-1.9.1/ruby/backward -I/home/rgoytacaz/.rvm/rubies/ruby-1.9.2-preview3/include/ruby-1.9.1 -I. -I/home/rgoytacaz/.rvm/gems/ruby-1.9.2-preview3/gems/johnson-2.0.0.pre3/vendor/tracemonkey -D_FILE_OFFSET_BITS=64 -fPIC -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wno-long-long -fPIC -g -Wall -Wextra -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline -DXP_UNIX -o conversions.o -c conversions.cc In file included from conversions.cc:2: js_land_proxy.h:11:18: error: node.h: No such file or directory conversions.cc:261:8: warning: extra tokens at end of #endif directive In file included from conversions.cc:2: js_land_proxy.h:17: error: ISO C++ forbids declaration of ‘NODE’ with no type js_land_proxy.h:17: error: expected ‘;’ before ‘’ token conversions.cc: In function ‘JSBool convert_symbol_to_js(JohnsonRuntime, VALUE, jsval_)’: conversions.cc:33: error: ‘ruby_errinfo’ was not declared in this scope conversions.cc:34: error: ‘ruby_errinfo’ was not declared in this scope conversions.cc:35: error: ‘struct RString’ has no member named ‘len’ conversions.cc: In function ‘JSBool convert_regexp_to_js(JohnsonRuntime_, VALUE, jsval_)’: conversions.cc:54: error: ‘ruby_errinfo’ was not declared in this scope conversions.cc:55: error: ‘ruby_errinfo’ was not declared in this scope conversions.cc:56: error: ‘ruby_errinfo’ was not declared in this scope conversions.cc:60: error: ‘struct RString’ has no member named ‘len’ conversions.cc: In function ‘JSBool convert_to_js(JohnsonRuntime_, VALUE, jsval_)’: conversions.cc:75: warning: format not a string literal and no format arguments conversions.cc:79: warning: format not a string literal and no format arguments conversions.cc:83: warning: format not a string literal and no format arguments conversions.cc:86: error: ‘T_BLKTAG’ was not declared in this scope conversions.cc:87: warning: format not a string literal and no format arguments conversions.cc:91: warning: format not a string literal and no format arguments conversions.cc:95: warning: format not a string literal and no format arguments conversions.cc:98: error: ‘T_VARMAP’ was not declared in this scope conversions.cc:99: warning: format not a string literal and no format arguments conversions.cc:116: error: ‘ruby_errinfo’ was not declared in this scope conversions.cc:118: error: ‘struct RString’ has no member named ‘len’ conversions.cc:171: warning: format not a string literal and no format arguments conversions.cc: In function ‘VALUE convert_regexp_to_ruby(JohnsonRuntime_, jsval)’: conversions.cc:204: error: ‘ruby_errinfo’ was not declared in this scope conversions.cc:204: error: ‘ruby_errinfo’ was not declared in this scope conversions.cc: In function ‘JSBool js_value_is_symbol(JohnsonRuntime_, jsval, bool_)’: conversions.cc:229: warning: format not a string literal and no format arguments conversions.cc:234: warning: format not a string literal and no format arguments conversions.cc: In function ‘VALUE convert_to_ruby(JohnsonRuntime_, jsval)’: conversions.cc:265: error: ‘ruby_errinfo’ was not declared in this scope conversions.cc:265: error: ‘ruby_errinfo’ was not declared in this scope conversions.cc:271: error: ‘ruby_errinfo’ was not declared in this scope conversions.cc:271: error: ‘ruby_errinfo’ was not declared in this scope conversions.cc:279: error: ‘ruby_errinfo’ was not declared in this scope conversions.cc:279: error: ‘ruby_errinfo’ was not declared in this scope conversions.cc:281: error: ‘ruby_errinfo’ was not declared in this scope conversions.cc:281: error: ‘ruby_errinfo’ was not declared in this scope conversions.cc:288: error: ‘ruby_errinfo’ was not declared in this scope conversions.cc:288: error: ‘ruby_errinfo’ was not declared in this scope conversions.cc:292: error: ‘ruby_errinfo’ was not declared in this scope conversions.cc:292: error: ‘ruby_errinfo’ was not declared in this scope conversions.cc:295: warning: format not a string literal and no format arguments conversions.cc: In function ‘void raise_js_error_in_ruby(JohnsonRuntime_)’: conversions.cc:323: warning: format not a string literal and no format arguments conversions.cc: In function ‘JSBool report_ruby_error_in_js(JohnsonRuntime_, int, VALUE)’: conversions.cc:337: error: ‘ruby_errinfo’ was not declared in this scope make: *_* [conversions.o] Error 1
Gem files will remain installed in /home/rgoytacaz/.rvm/gems/ruby-1.9.2-preview3/gems/johnson-2.0.0.pre3 for inspection.
Results logged to /home/rgoytacaz/.rvm/gems/ruby-1.9.2-preview3/gems/johnson-2.0.0.pre3/ext/tracemonkey/gem_make.out
from /home/rgoytacaz/.rvm/rubies/ruby-1.9.2-preview3/lib/ruby/1.9.1/rubygems/installer.rb:486:in block in build_extensions' from /home/rgoytacaz/.rvm/rubies/ruby-1.9.2-preview3/lib/ruby/1.9.1/rubygems/installer.rb:446:in
each'
from /home/rgoytacaz/.rvm/rubies/ruby-1.9.2-preview3/lib/ruby/1.9.1/rubygems/installer.rb:446:in build_extensions' from /home/rgoytacaz/.rvm/rubies/ruby-1.9.2-preview3/lib/ruby/1.9.1/rubygems/installer.rb:198:in
install'
from /home/rgoytacaz/.rvm/gems/ruby-1.9.2-preview3/gems/bundler-0.9.26/lib/bundler/source.rb:170:in install' from /home/rgoytacaz/.rvm/gems/ruby-1.9.2-preview3/gems/bundler-0.9.26/lib/bundler/installer.rb:34:in
block in run'
from /home/rgoytacaz/.rvm/gems/ruby-1.9.2-preview3/gems/bundler-0.9.26/lib/bundler/spec_set.rb:12:in block in each' from /home/rgoytacaz/.rvm/gems/ruby-1.9.2-preview3/gems/bundler-0.9.26/lib/bundler/spec_set.rb:12:in
each'
from /home/rgoytacaz/.rvm/gems/ruby-1.9.2-preview3/gems/bundler-0.9.26/lib/bundler/spec_set.rb:12:in each' from /home/rgoytacaz/.rvm/gems/ruby-1.9.2-preview3/gems/bundler-0.9.26/lib/bundler/installer.rb:21:in
run'
from /home/rgoytacaz/.rvm/gems/ruby-1.9.2-preview3/gems/bundler-0.9.26/lib/bundler/installer.rb:6:in install' from /home/rgoytacaz/.rvm/gems/ruby-1.9.2-preview3/gems/bundler-0.9.26/lib/bundler/cli.rb:91:in
install'
from /home/rgoytacaz/.rvm/gems/ruby-1.9.2-preview3/gems/bundler-0.9.26/lib/bundler/vendor/thor/task.rb:33:in run' from /home/rgoytacaz/.rvm/gems/ruby-1.9.2-preview3/gems/bundler-0.9.26/lib/bundler/vendor/thor/invocation.rb:109:in
block in invoke'
from /home/rgoytacaz/.rvm/gems/ruby-1.9.2-preview3/gems/bundler-0.9.26/lib/bundler/vendor/thor/invocation.rb:116:in call' from /home/rgoytacaz/.rvm/gems/ruby-1.9.2-preview3/gems/bundler-0.9.26/lib/bundler/vendor/thor/invocation.rb:116:in
invoke'
from /home/rgoytacaz/.rvm/gems/ruby-1.9.2-preview3/gems/bundler-0.9.26/lib/bundler/vendor/thor.rb:137:in block in start' from /home/rgoytacaz/.rvm/gems/ruby-1.9.2-preview3/gems/bundler-0.9.26/lib/bundler/vendor/thor/base.rb:378:in
start'
from /home/rgoytacaz/.rvm/gems/ruby-1.9.2-preview3/gems/bundler-0.9.26/lib/bundler/vendor/thor.rb:124:in start' from /home/rgoytacaz/.rvm/gems/ruby-1.9.2-preview3/gems/bundler-0.9.26/bin/bundle:13:in
<top (required)>'
from /home/rgoytacaz/.rvm/gems/ruby-1.9.2-preview3/bin/bundle:19:in load' from /home/rgoytacaz/.rvm/gems/ruby-1.9.2-preview3/bin/bundle:19:in
Try the 1.9.1 branch.
I tried adding , :branch => '1.9.1' and bundler gives an error.
Could not find gem 'johnson (>= 0, runtime)' in git://github.com/jbarnette/johnson.git (at 1.9.1). Source does not contain any versions of 'johnson (>= 0, runtime)'
it doesn't know how to build it, right? lack of gemspec?
We don't keep a gemspec in the repo. It's only created/used when the gem is pushed. You'll need to checkout the branch from git and build the gem yourself.
I've checked out the 1.9.1 branch, run rake gem
, installed the gem on ruby 1.9.2-rc2 and get:
rsterner-mac:pkg rsterner$ irb ruby-1.9.2-rc2 > require "johnson" => true ruby-1.9.2-rc2 > Johnson.evaluate("2 + 2") TypeError: wrong argument type Method (expected Data) from /Users/rsterner/.rvm/gems/ruby-1.9.2-rc2/gems/johnson-2.0.0.pre3/lib/johnson/js/core.js:9 [JavaScript] from /Users/rsterner/.rvm/gems/ruby-1.9.2-rc2/gems/johnson-2.0.0.pre3/lib/johnson/tracemonkey/runtime.rb:49:in `evaluate_compiled_script' from /Users/rsterner/.rvm/gems/ruby-1.9.2-rc2/gems/johnson-2.0.0.pre3/lib/johnson/tracemonkey/runtime.rb:49:in `evaluate_compiled_script' from /Users/rsterner/.rvm/gems/ruby-1.9.2-rc2/gems/johnson-2.0.0.pre3/lib/johnson/tracemonkey/runtime.rb:44:in `evaluate' from /Users/rsterner/.rvm/gems/ruby-1.9.2-rc2/gems/johnson-2.0.0.pre3/lib/johnson/runtime.rb:54:in `initialize' from /Users/rsterner/.rvm/gems/ruby-1.9.2-rc2/gems/johnson-2.0.0.pre3/lib/johnson/tracemonkey/runtime.rb:18:in `initialize' from /Users/rsterner/.rvm/gems/ruby-1.9.2-rc2/gems/johnson-2.0.0.pre3/lib/johnson/runtime.rb:36:in `new' from /Users/rsterner/.rvm/gems/ruby-1.9.2-rc2/gems/johnson-2.0.0.pre3/lib/johnson/runtime.rb:36:in `new' from /Users/rsterner/.rvm/gems/ruby-1.9.2-rc2/gems/johnson-2.0.0.pre3/lib/johnson/runtime.rb:44:in `new' from /Users/rsterner/.rvm/gems/ruby-1.9.2-rc2/gems/johnson-2.0.0.pre3/lib/johnson.rb:31:in `evaluate' from (irb):2 from /Users/rsterner/.rvm/rubies/ruby-1.9.2-rc2/bin/irb:17:in `'
I'm assuming I'm ahead of the curve in terms of 1.9.2 support, thanks in advance for all the hard work that's been put into this library!
The 1.9 branch was an experiment. So far, 1.9 support looks hard because of thread/GC interaction.
Would love 1.9 support :)