haXeで遊ぶ(4)ドキュメントを眺める

今日は色々と資料とかHPとかを眺めてみました。

  • 最初、電車の行き帰りで読みたいと思ってhaXeとNekoVMのサイトをwgetで取ってこようと思ったのですが、なんかかなり動的にページが生成されているようで、上手く入手出来ず。
    • 取りあえず電車では携帯で読む事にしました。
    • 両サイトともwiki形式。NekoVMのサイトはneko自身で書いてあるそうな。
      • 多分それでwget出来なかったのではないでしょうか。
      • 日本語訳ページも若干あります。
  • 自分はmtascのページから辿ってhaXeにたどり着いていたので、haXeはActionScript3.0をコンパイルする目的で作られたのか、と思っていたのですが、どちらかというとWebサイトの総合開発環境を想定して開発が進められているようです。
    • 対応言語の開発用のドキュメントもあります。ActionScript3.0の対応は大変だったみたい。Java対応とか頭が痛い、みたいな事も書いてありました。
      • 「Webアプリだけじゃなくてexeファイルも出来るし動作早いよ!」とも。
      • NekoVMはLuaみたいな感じで組み込んで使う事も想定されているよう。
        • NekoのVMのサイズは44KB。(MacOSの場合)
        • ライブラリはさすがにもう少し大きいです。libneko.dylibは452KB。一番大きなのはmysql.ndllで3.1MB。
    • ベーシックなhaXeAPIだけでプログラムを書けば対応言語へそのまま変換出来ます。
    • チュートリアルでは以下のコードを色々な言語へと変換するのですが、ActionScript2でも素でtraceが使える訳で。
      • 逆に言うと全部同じAPIという訳にはいかないのですね。
class Test {
    static function main() {
        trace("Hello World !");
    }
}
  • haXeには前回紹介しそびれたhxinstというツールもあるみたいなんですが、コンパイル済みのアーカイブには入ってなかったです。
    • インストール用ツール?
    • ビルド用ファイルみたいなのがダウンロードできるので、OCamlコンパイルしてみるか、と思って落としてみたらやけにファイルサイズが小さい。見てみたらソースコードじゃなくてスクリプトで公式サイトにCVSでアクセスしてコンパイルして、という手順が書いてありました。
      • 時間のある時にソースをダウンロードしてみますかね。

haXeで遊ぶ(3)開発環境で遊ぶ

よく考えたらエラーではなくてミスだった。人のせいにしてはいけない。
とりあえず気を取り直して。

haXeの開発環境はeclipse風のとかもあるのですが、取りあえず今はemacshaXe-mode.el入れて遊んでいます。

チュートリアルなどを入力しつつ、haXe(とneko)をインストールすると付いてくるツールを眺めてみました。

  • haXe
    • haxelib
      • PHPで言うところのpearの様なライブラリ管理ツール。Win用開発環境のFlashDevelop用のプラグインはこれで簡単に入れられます。自分で開発したライブラリをこれで公式サイトにアップしたりもできるようです。
    • haxedoc
      • ActionScriptで言うところのASdocの様な、ドキュメントジェネレーターのようです。ただhxファイルからじゃなくてxmlファイルから生成するみたいなので違うかもしれないです。
    • haXe API Documentation
      • docフォルダの中にAPIの詳しい解説が入っています。
  • neko
    • nekoc
    • nekoml
    • mod_neko、mod_neko2
      • Apacheでnekoファイルを動かす為のモジュール。それぞれApache、Apache2用。ちなみにmod_tora、mod_tora2というモジュールも入っているけれど、説明が見当たらない。なんんだろう、これ?
    • nekotools
      • 色々と便利なツール。単独実行ファイルを作ったりhttpサーバになったり。
      • 「nekotools boot nekoファイル」で単独実行ファイルを吐き出す。
      • 「nekotools server」で開発用の簡易サーバが立ち上がります。Apacheにモジュールを入れられない時に便利。
    • test.n
      • インストール確認用のためのnekoファイル。「neko test」でちゃんとインストールされているか確認してくれます。

と、こんな感じです。結構充実してます。

haXeで遊ぶ(2)インストールで遊ぶ

取りあえずまずはインストールということで、色々な環境にインストールしてみました。

  • Windows
    • WindowsXPでは公式サイトにある自動インストーラで問題無くインストールできました。
    • MacOS9.2上で動かしたSoftwareWindowsの98SEでは「admin権限が無い」みたいなアラートが出てダメ(2000以降対応?)。
  • Linux
    • Macで動かしているVirtualPC上のKnoppix_v5.3.1CDでは、自動インストーラで問題無くインストール出来ました。
    • と思ったら問題発生。NekoVM関係を動かそうとするとlibgc.so.1が無いよ、と怒られた。また、haxeでnekoファイルにコンパイルしようとしても同じように怒られる。
      • 調べてみても近いファイル名のファイルはあるけど、そのものズバリは無い。apt-get install libgc.so.1としてもダメっぽい
    • でもその他は問題無いみたいなので、これはこれで良い事にする。
  • Mac

MacOSXで自動インストール出来ない原因が判らなかったので、Linuxの自動インストールの時のログを参考にして手動でインストールしてみたのですが、ちょっと苦戦しました。

  • haXeNekoVMアーカイブをダウンロードして展開。
  • nekoのフォルダを/usr/local/libに移動。
  • nekoフォルダの中のneko、nekoc、nekoml、nekotoolsについて/usr/local/binの中にシンボリックリンクを張る。
  • haxeのフォルダを/sw/libに移動。
  • haxeフォルダの中のhaxe、haxedoc、haxelibについて/sw/binの中にシンボリックリンクを張る。
    • 本当はhaxeも/sw以下じゃなくてNekoVMみたいに/usr/local以下でも良いはずなのですが動かなかったため、こうしました。
  • /usr/local/lib/neko/libneko.dylibについて/sw/lib/haxeの中にシンボリックリンクを張る。
    • 最初、これが判らなくて死にました。エラーメッセージは出ていたのだけれど、下のパスの設定なのかどうなのか原因が判らずに悩む事に。
    • インストールの順番は時系列的には、Macで失敗>Linuxで色々試みやっとknoppixで成功>ログを見てMacで成功、だったので時間が大分無駄に。
    • ちなみにLinuxでlibneko.dylibにあたるのはlibneko.soの様です。
  • NEKOPATHとHAXE_LIBRARY_PATHの設定をする。
    • 自分はtcsh環境なので、以下を.cshrcに追加。
      • setenv HAXE_LIBRARY_PATH /sw/lib/haxe/std:/Users/user/haxe
      • setenv NEKOPATH /usr/lib/neko:/usr/lib/neko/neko
    • 本来haxeはカレントディレクトリは設定しなくても見に行くはずなので/Users/user/haxeは設定しなくても良いのかもしれないんですが、例えばTest.hxというファイルをコンパイルしようとすると「Testクラスが見つからない」と怒られるので、コンパイル作業用のディレクトリを作って、PATHの設定をしました。
  • ↓これ、インストールには関係なかったですね。(20081130修正)
  • "haxelib setting"を実行して、作業用パスを設定
    • 取りあえず自分は/sw/lib/haxe/libを設定してみました。本当はこれ作業用ディレクトリの設定用かもしれないんで/Users/user/haxeを指定するべきなのかも。確認すべきなんですが、取りあえず動くのでそのままにしています。

これで自分のすべての環境で動くようになりました!