Google の開発者がほげほげで新言語 Noop
Google Code Archive - Long-term storage for Google Code Project Hosting.
「よくわからんけどとりあえず使ってみるか」の名の下に
Linux では起動を確認したけど、Mac OS X だとどうしても上手くいかず
ついさっきできたので備忘録っつーことで
まずは noop をとってくる。現在は Mercurial から引っ張ってくる
% hg clone https://noop.googlecode.com/hg/ noop
必要なものは buildr ってことで
% sudo JAVA_HOME=$JAVA_HOME gem install buildr
準備が整ったらいよいよコンパイル
% cd noop % buildr
jar ファイルとかを DL しつついよいよコンパイルが始まると思ったら以下のようなエラー
can't create Java VM /opt/local/lib/ruby/gems/1.8/gems/buildr-1.3.4/lib/buildr/core/application.rb:405:in `raw_load_buildfile' /opt/local/lib/ruby/gems/1.8/gems/buildr-1.3.4/lib/buildr/core/application.rb:218:in `load_buildfile' /opt/local/lib/ruby/gems/1.8/gems/buildr-1.3.4/lib/buildr/core/application.rb:213:in `load_buildfile' (See full trace by running task with --trace)
Linux で問題なかったのになんでやねん!と思ったり。
buildrの中でエラーが出てるっぽいので、今度は buildr をソースからコンパイルして使おうとしたが
buildr のコンパイルの時点で can't create Java VM のエラーが出る。
エラーが出てる場所は Rjb.load 。ということは、rjb が悪いのかな。
調べると、rubygems での最新版(安定板?)は 1.1.6でしたが、
新たに Snow Leopard に対応した 1.1.8 が出ていました。
http://rubyforge.org/frs/shownotes.php?release_id=38801
せっかくなので 1.1.9 の方をインストール。
% wget http://rubyforge.org/frs/download.php/63446/rjb-1.1.9.gem % sudo JAVA_HOME=$JAVA_HOME gem install rjb-1.1.9.gem
ローカルじゃなくて、version 指定での install でもいいと思います。
この状態で buildr をコンパイルしようとしたら
% rake compile /opt/local/lib/ruby/site_ruby/1.8/rubygems.rb:827:in `report_activate_error': RubyGem version error: rjb(1.1.9 not = 1.1.6) (Gem::LoadError)
buildr.gemspec の中に、1.1.6 を指定してる場所があったので、1.1.9 に変更。
- spec.add_dependency 'rjb', '1.1.6' if spec.platform.to_s == 'ruby' + spec.add_dependency 'rjb', '1.1.9' if spec.platform.to_s == 'ruby'
これでようやく、rjb1.1.9 に対応した buildr の完成。いよいよ noop のコンパイル。
% buildr (省略) All tests passed. Completed in 2m8.538s
できた!実行も確認できました。簡単な問題だったけど長かった
% buildr package (in /Users/gongo/Source/noop, development) Building noop Packaging noop Packaging noop-0.1.0-SNAPSHOT.jar Packaging noop-0.1.0-SNAPSHOT-sources.zip Running integration tests... Completed in 30.131s % java -jar target/noop-0.1.0-SNAPSHOT.jar HelloWorld target/resources/helloworld target/resources/stdlib Hello World!