ECMAScript 4 のリファレンス実装を導入してみた
ecmascript.org に ES4 のリファレンス実装が公開されていたので導入してみた。
といっても、まだまだ初期バージョンでほとんど動作しないので、導入はお薦めできない。
動かしてみたらこんな感じ。
>> var a = 3; >> a 3 >> var b:int = 3; **ERROR** VerifyError: unable to resolve fixture for multiname: {multiname: [ns public '']::int } (near <no filename>:1.1-1.3) >> var arr = []; **ERROR** VerifyError: unable to resolve fixture for multiname: {multiname: [ns public '']::int } (near <no filename>:1.1-1.3)
Draft に書いてある新機能 どころか、ES3 相当の文法でもエラーになっちゃう。
まあ、この程度ってこった…。ほとんど遊べない。
こんな状態でもインストールしてみたい、という酔狂な人に向けて手順を公開しておく。環境は Windows XP+Cygwin。Mac 版もあるので、SML/NJ を導入すれば動くと思う。
1. Cygwin のインストール
Cygwin Information and Installation からインストーラをダウンロードして実行。パッケージの選択で、gcc・make・wget を追加でチェックするのを忘れずに。
既に Cygwin を導入している人は、gcc・make・wget が入っているか確認しておいてね。
2. SML/NJ のインストール
SML/NJ 110.64を導入。Windows 版ではなく、Cygwin 版を導入する点に注意。
cygwin の bash を開いて、以下のコマンドをコンソールに貼り付けて実行する。
# 環境変数の設定 export SMLNJ_CYGWIN_RUNTIME=1 # SML/NJ のダウンロード -> 展開 -> インストール d=/usr/share/smlnj mkdir $d cd $d v=110.64 wget http://smlnj.cs.uchicago.edu/dist/working/$v/config.tgz gunzip <config.tgz | tar xf - config/install.sh
ビルドが始まるので、しばらく待機。
: : [compiling (2660-export.cm):2660-export.sml] [code: 221, data: 37, env: 40 bytes] config/install.sh: Installation complete.
これで、成功。
(参考:Isabelle のインストール for Cygwin - 箱庭のオンガク。)
3. ES4 reference interpreter を導入
http://www.ecmascript.org/download.php から es4-pre-release.M0.cygwin-x86.tar.gz をダウンロードする。
あとは展開して es4 を実行すればよい。smlnj にパスを通しておくのを忘れずに。
$ export PATH=$PATH:/usr/share/smlnj/bin $ ls es4-pre-release.M0.cygwin-x86.tar.gz $ tar xvfz es4-pre-release.M0.cygwin-x86.tar.gz es4 es4/decimal.exe es4/es4 es4/es4.heap.x86-cygwin es4/LICENSE $ cd es4 $ ./es4 >>
>>と表示されれば成功。
もし、
The Cygwin release of the ECMAScript Edition 4 Reference implementation currently requires an installation of SML/NJ. Please install SML/NJ version 110.64 or later. You can download the latest version of SML/NJ from http://www.smlnj.org.
と表示されるなら、SML/NJ のインストールに失敗したか、パスが通っていないかのどちらかだろう。