2010-04-06T00:43:58+09:00

二つの load module コマンド

ModuleLoader には、2種類の load module コマンドがある。

一つは、OSAX の load module コマンド。もう一つは、module loader コマンドが生成する loader object の load module コマンド。

どう違うかというと、OSAX の物は、モジュールパスからモジュールを検索してロードするだけ。一方、loader object の load module コマンドは、依存性の解決、同一性の確保を行うことができる。

で、loader object の load module コマンドは undocumented なんだけど、最近、コメントでぼちぼち説明している。次のバージョンではマニュアルに明記しようかと思ったけど、やっぱりやめようかなという話。かわりに、load ハンドラをマニュアルに記載しようと思う。

なんでかというと、load module コマンドが二つあるとは説明するのがめんどくさい、すなわち分かりにくいんじゃないかと思って。loader obejct には、load module コマンドじゃなくて、load ハンドラという別物がありますよ、という方が説明しやすい。

ようするに、

tell (module loader)
load module "ModuleA"
end tell

ではなくて、

tell (module loader)
load("ModuleA")
end tell

をプッシュしよう、という話。今のバージョン(version 2.1.1)も、どちらも動くし、これからも動く。無くすことはない。どちらをおすすめするかという方針を変えたという話。もし、異論があればコメントください。