Shiki’s Weblog

ESウェブブラウザ通信(7/11)

2011/07/11 #ESウェブブラウザ通信

公開から1週間あまり立って、ESウェブブラウザのアップデート情報をメーリングリストに投稿したので、こちらでも補足など。*r1759 当初公開した時はFedora 15(もしくは14)で、という案内をしていたのですが、すぐにUbuntuでビルドできないという報告をいただいたので対応させました。主な変更点は、

といったところです。ただ現状、gcc 4.6やboostの新機能を使い出したときに、Ubuntuでのビルドは難しくなってしまうことがありそうです。*r1777 この直前のいくつかのリビジョンでesidlの対応するWeb IDLの文法を2011/7/4版のワーキングドラフトにほぼ対応させました(まだ議論が続いているExceptionと、まだ実際に使われてきていないPartialInterfaceを除く)。注意点として、object型が値としてnullをとらなくなっています。nullを含むときの表記はobject?です(array等も同様)。この件の Cameron とHixieのやりとりはちょっとおもしろかったかも。すごい生産的だけど(笑)。それに合わせて、ESウェブブラウザで使用するDOM CoreHTMLの定義もそのように修正されたその時点でほぼ最新のものに対応したのがこのリビジョンです。*r1783 Ubuntuでビルドできない、という報告の他に届いていたのが、Fedora 15のx86_64版でもビルドできないというものでした。こちらは、Web IDLのany型に対応するESのAnyクラスの実装がx86前提になってしまっていたのをやっつけで直して、x86-64に対応させました。x86-64ではsizeof(Object)が16になるので、Anyのサイズも16バイトになってしまっていますが、できればどこかの時点でx86-64でも8バイトで済むようにしたいと思います。ESで使用しているWeb IDLのC++0xバインディングでは、メッセージの実体はメッセージのIDとAnyの配列になっているので、Anyクラスの性能はかなり重要な部分だったりします。u16stringまわりの扱いももう少し改善したい部分です。また、実際にビルドしてみようという方のためにセットアップ用のスクリプトをこちらに用意したので利用してください。Fedora 15 (x86, x86-64)とUbuntu 11.04 (x86)でテストしています(Fedora 14はjsの関係でダメです)。