Thanks Driven Life

日々是感謝

Hello World on Noop on Mac OS X (Snow Leopard)

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!