標準ライブラリを使ってみよう!と思って、
$print(math_pi());
というプログラムを書いてコンパイルして実行すると実行結果は、
null
となる。なんでじゃー。
ドキュメントを読む限り、 ndll は特に指定しなくてもカレントディレクトリと NEKOPATH なパスをサーチしてくれるみたいなんだけど、何か必要なんだろうか?
そもそもこれは、
のどれなのかがわからんねぇ……。そもそもどのライブラリを読むとどの名前が埋まっている、みたいな情報はどうやって得るのかな。どうも指示をしていないので std.ndll を読んでないだけのような悪寒。
まあヒマがあったらライブラリロードまわりのコードを読んでみよう。
それから、 FreeBSD でビルドしてみたぜ!という報告をMLにしてみたら、 OpenBSD でビルドしたよ!という強者がいた。負けた。
(追記)まったく勘違いしていた。
var math_pi = $loader.loadprim("std@math_pi");
などとしないといけないようだ。解決されない名前はぜんぶ null になるんだろう。
で、実行すると、 Primitive not found のエラー。うーむ、 dlsym でシンボルが取れてないのかなあ。
あ、 FreeBSD だと Library not found だから dlopen でコケてるし。とほー。