Exerbの新しいの

レシピファイルを書かずに変換できるとか、Ruby/Tkで使えない制限が解除(=使える)とか、結構うれしい変更があったにもかかわらずあまり話題になっていない気がする。

レシピファイルを書かないほうは、とりあえずOKみたい。とりあえず、というのは、ASR1.8.5にしたときにコアファイルが見つからないとかエラーがでていたのが、今ASR1.8.5.1にしたら出なくなっていた。もはや再現しないのでよくわからないけど、とりあえず。

じゃあTkを使ってみよう、と思ったけどtk84.soがないとか言われる。そういえばOne-ClickからASRにしたからtkが入っていなかった。えーとTkはどこからとってくるのかな?時間切れのためここまで。

追記:

http://www.tcl.tk/ あたりからたどれるのは結局ActiveTclのようだ。Get ActiveTclからFreeDownloadをたどってWindows版パッケージをとってきた。インストールするとtk84.dllが配置されるのでこちらで例えば以下のようなスクリプトは動くようになる。

require 'tk'

TkLabel.new {
  text 'こんにちは'
}.pack
TkButton.new {
  text '終了'
  command 'exit'
}.pack

Tk.mainloop

ところがExerbで実行ファイルを作るとロードエラー。exerb tkhello.rbで作ると

tkhello.rb:1:in `require': No such file to load -- tk (LoadError)
from tkhello.rb:1

いったんruby -r exerb/mkexy tkhello.rbでレシピを作ってからexerb tkhello.exyで作ると

tk.rb:891: no such file to load -- tk/event (LoadError)

となってNG。結局rubyscript2exe --rubyscript2exe-tk tkhello.rbとやると動く。

追記:
ひょっとしてASR-1.8.5.1に入っているExerbコアが1.8.4ベースなのがまずいのかな。でもRuby/Tk以外のバイナリ化は普通に動作しているしなあ。Exerbのコアを誰かが作ってくれるのを待つか。あるいは、そんなのを今後も当てにしていられないのでrubyscript2exeベースで考えるかだな。