2015-11-16

Web Assembly

Firefox Developer Conference 2015 in Tokyoがあったのだけど、そこでemscriptenとWeb Assemblyの話してきた。



Web Assemblyは個人的に今一番ホットな話なんだけど、このイベントの矢倉さんのセッションでもViewSource ConferenceでLukeが話した内容を元に2ページほど触れられている。

あと、先週のBlinkOnでもセッションあったので、これもみるべし。

今のところ、s-expreesionベースのフォーマットでみんな実装実験やってるし、clang/LLVMも:sunfishがバックエンド実装やってる。LLVMについてはasm.jsからのwasmトランスレーターで間に合うからステーブル化の最初のMUSTなことではないけど。ちなみにJavaScripteCore/WebKitはすでに実装テストしてて、CPP->JSにしたものとCPP->JS->WASMにしたもので比較すると2倍の速度で動くっていう結果が出てる。

セッション終わったあと、Jxckさんと話しをしててWeb APIを直接触りたいよねって話をしてたんだけど、なんかAPIは作る話にはなってるっぽい(けど、これは最初のゴールには含まれない)。

基本ゲーム (canvasとWebGLは使いたいよね) が最初のターゲットかなと。

2015-11-04

Gecko cross build using docker

Firefox 4のリリースがされたらへんから10くらいにかけてコツコツとLinuxのクロスビルド環境の整備をしてた。その結果クロスビルド環境においては、DebianのMultiarch/HOWTOで書かれているやり方で環境構築できるようにしている。

FirefoxというかGeckoを組み込みで使いたいなんて話が仕事柄たまに来るんだけど、環境の作り方を説明するのが面倒すぎるし、自分で検証用にVMWareのクロス環境を持つのもバカバカしい (OSのアップグレードのたびにテストしてた) のでDockerを使ったコンテナに移行した。

https://hub.docker.com/r/wontfix/gecko-armhf-dev/ (armhf用)

dockerで以下のようにイメージを実行すれば、必要なライブラリは入っているので、mercurialでcloneするなりtarballを持ってきて、.mozconfigを書けばarmhfのビルドができる。
docker pull wontfix/gecko-armhf-dev
docker run -it wontfix/gecko-armhf-dev

Dockerfileを見ればわかるけど、クロス用のライブラリをインストールするとき (特にlibgtk2.0-dev)、--no-install-recommendsをつけないとライブラリがコンフリクトしてしまうものあるので、注意が必要みたい。(というかlibgtk2.0-devのパッケージングの際、RecommendにPythonが入ってるんだけど、それはおそらくPython:anyにすべきなんじゃないかなと)