追記@2010-11-26
MacRuby に関しては以下の記事も参照のこと:
- MacRuby 0.7 を iMac にインストール (2010-11-04)
- MacRuby のこれまで (0.1 〜 0.5 beta 2) (2009-11-19)
MacRuby の 0.5 beta 2 がリリースされたというので、試してみる気になった。
アナウンスに貼られたリンクから zip のインストールパッケージをダウンロード。zip を展開し、中の PKG ファイルをダブルクリックすればインストール開始。MacRuby の本体などは /usr/local/bin
以下に、Xcode のプロジェクトテンプレートは /Library/Application Support/Developer/3.0/Xcode
以下にそれぞれインストールされる。
インストールが完了するとこうなる(↓):
[macmini:~] mnbi% which macruby /usr/local/bin/macruby [macmini:~] mnbi% macruby -v MacRuby version 0.5 (ruby 1.9.0) [universal-darwin10.0, x86_64]
また、Xcode の新規プロジェクト作成パネルはこう(↓):
送信者 Macをプログラムする |
「RubyによるMac OS Xデスクトップアプリケーション開発入門」を見ながらサンプルを試してみたり(p.224 〜 234)。
MacRuby コンパイラ
ところで、MacRuby にはコンパイラもあるらしい。
(0.5 beta 2 のリリースノートより抜粋)Better Ahead-of-Time Compiler
Many compiler bugs have been fixed and the macrubyc utility is now able to generate fat binaries, via the —arch argument.
$ macrubyc hello.rb -o hello --arch i386 --arch x86_64Also, macrubyc will generate by default executables linking against MacRuby.framework dynamically, which greatly reduces the executable size. In order to build a full standalone executable, the —static argument must be passed.
試さずにはおられまい。
[macmini:~] mnbi% which macrubyc /usr/local/bin/macrubyc [macmini:~] mnbi% macrubyc -v MacRuby version 0.5 (ruby 1.9.0) [universal-darwin10.0, x86_64]
こんなコードを書いてみた。
(hello.rb)
1: # hello.rb -- just print a short greeting message to the world.
2: class Greeting
3: MORNING = "Goood moooring!"
4: AFTERNOON = "Good afternoon."
5: EVENING = "Good eeevening!!"
6: NIGHT = "Good night."
7: def initialize(time)
8: @message = case (time % 24)
9: when 0..5 then NIGHT
10: when 6..11 then MORNING
11: when 12..18 then AFTERNOON
12: when 19..23 then EVENING
13: end
14: end
15: def say_it
16: puts @message
17: end
18: end
19:
20: t = nil
21: if ARGV.count > 0 then
22: t = ARGV.shift.to_i
23: else
24: t = Time.now.hour
25: end
26:
27: greeting = Greeting.new(t)
28: greeting.say_it
コンパイルして、実行してみる。
[macmini:~] mnbi% macrubyc hello.rb -o hello --arch x86_64 [macmini:~] mnbi% ./hello Good eeevening!! [macmini:~] mnbi% ./hello 6 Goood moooring!
おお、ちゃんと動くじゃないか。でも、本当にバイナリなのか? hello.o
と hello
ができているので file
コマンドで調べてみる。
[macmini:~] mnbi% file hello.o hello.o: Mach-O universal binary with 1 architecture hello.o (for architecture x86_64): Mach-O 64-bit object x86_64 [macmini:~] mnbi% file hello hello: Mach-O 64-bit executable x86_64
疑ってゴメンナサイ。
Xcode のターゲットにも「Compile」があるから、MacRuby で書いた Cocoa アプリの方もコンパイルできるようだ。う〜ん、MacRuby 恐るべし。
関連リンク
- MacRuby (公式サイト)
0 件のコメント:
コメントを投稿