2009-04-14

DYNAMIC_PERL/PYTHON/RUBY

香り屋さんパッチに含まれている動的DLL読み込み。Win32APIのLoadLibraryExですが、dlopenなどに単純に置き換えられそうなので試してみました。


+#if defined(DYNAMIC_PERL) && defined(MACOS_X_UNIX)
+typedef void * HANDLE;
+typedef void * FARPROC;
+# include <dlfcn.h>
+# define LoadLibraryEx(a0,a1,a2) dlopen(a0,RTLD_NOW|RTLD_LOCAL)
+# define FreeLibrary(a) dlclose(a)
+# define GetProcAddress dlsym
+# define DYNAMIC_PERL_DLL "/System/Library/Perl/lib/5.8/libperl.dylib"
+#endif


と、あとちょっと書き換えて、:perl VIM::Msg("hello world") が動くとこまでは確認しました。if_perlサンプルのカーソル移動とか。

苦労した点は、perlをまーーったく覚えてなかったことです。うーん。port2pkgってperlで書いたような気が。10年前だけど :-)

さて10.4 universalバイナリで動くかな?