2008年12月13日土曜日

LHa for Native Client (準備編)

【警告】タイトルだけ見るとNative ClientでLHaが普通に動くように見えますが、実際には実用には堪えませんので、誤解のないようお願い致します。

GoogleのNative Clientのスタンダローン版のデバッグモードでLHa for UNIX (autoconf版)を動かしてみたのでメモ。

ウチの環境は、iMac(24-inch, Early 2008) 3.06GHzモデルなので、id:amachangさんの「ブラウザで X86 のマシン語を動かす! Google 謹製 Native Client をさっそく試してみる」を参考にさせて頂きました。記事と違う点としては、
  • nacl_mac_0.1_9380090.tgzがリリースされていたので、そちらを利用
  • wgetはMac OS Xには標準でインストールされていないので、代わりにcurlを使って、
    curl -O http://nativeclient.googlecode.com/files/nacl_mac_0.1_9380090.tgz
    を実行
  • ファイルの展開先は、~/src
  • サンプルのlifeは、
    $ cd ~/src/nacl/googleclient/native_client/tests/life
    $ ./run.py
    で実行
  • ./sconsは、~/src/nacl/googleclient/native_client/ から実行
  • ブラウザで開いたURLは、file:///Users/kki/src/nacl/googleclient/native_client/scons-out/nacl/staging/earth.html
  • このURLで指定したファイルは、さっきまでの ~/src/nacl/googleclient/native_client/tests/earth ディレクトリのearth.htmlファイルではない事に注意。そちらのHTMLファイルを直接開くとearth.nexeファイルが同じディレクトリにないので、
    The Native Client plugin was unable to load
    というエラーが表示される。ここで少しハマった。
  • ブラウザ上でNative Clientモジュールを実行する時に、HTMLファイルをopenコマンドで開くと、file://localhost/... というURLになるが、この場合、
    Load failed: NaCl module did not come from a whitelisted source.
    Use a URL beginning with file://
    という警告ダイアログが表示され「(意訳)URLがfile://localhost/... になっているが、このURLは許可されていないので、file:///... にして開き直してくれ」と(何故か)怒られる。
  • testsディレクトリ以下にある、ブラウザで表示可能なサンプルのリストが(私の場合は)file:///Users/kki/src/nacl/googleclient/native_client/scons-out/nacl/staging/index.html で表示されるので、こっちを使うのがオススメ
  • add.nexeとdiff.nexeは、testsディレクトリ以下にadd、diffディレクトリを作成してその中で作成したが、今回は .nexeファイルがあるので、同じディレクトリ内のHTMLファイルをブラウザで直接指定しても問題ない
等がありますが、これで id:amachangさんの記事の「文字列の diff を取る nexe を作ってみる」の項まで完了しました。

さて、ここからが本題である LHa for Native Client の話なのですが、Native Clientのバージョンが新しくなってしまったので、その確認等が終わってから次のエントリーで書く事にします。

0 コメント:

コメントを投稿