Facebookが公開したHack言語をインストールする

かっこいいからHack言語をインストールする

なにやらfacebookでhackと呼ばれるプログラミング言語を公開したようなので、インストールとさわりだけはやらなければならない衝動に駆られました。

http://hacklang.org/install

必要なブツをインストールする

ubuntu13.10でしたのでここを参考にしながら(ほとんど書いてあるとおり)にコマンドをポチポチとうっていきます。

https://github.com/facebook/hhvm/wiki/Building-and-installing-HHVM-on-Ubuntu-13.10

apt-getにてコンパイルに必要なブツを導入

特に確認もせずドカんと書いてあったコマンドをそのまま実行。

sudo apt-get install autoconf automake binutils-dev build-essential cmake g++ git \
  libboost-dev libboost-filesystem-dev libboost-program-options-dev libboost-regex-dev \
  libboost-system-dev libboost-thread-dev libbz2-dev libc-client-dev \
  libc-client2007e-dev libcap-dev libcurl4-openssl-dev libdwarf-dev libelf-dev \
  libexpat-dev libgd2-xpm-dev libgoogle-glog-dev libgoogle-perftools-dev libicu-dev \
  libjemalloc-dev libmcrypt-dev libmemcached-dev libmysqlclient-dev libncurses-dev \
  libonig-dev libpcre3-dev libreadline-dev libtbb-dev libtool libxml2-dev zlib1g-dev libevent-dev \
  libmagickwand-dev libxslt1-dev ocaml-native-compilers

Gitにてブツを取得する

githubからブツそのものを取得して、submoduleを更新しています。

mkdir dev
cd dev[
export CMAKE_PREFIX_PATH=`pwd`
git clone git://github.com/facebook/hhvm.git
cd hhvm
git submodule init
cd ../

魅惑のコンパイル開始

cd hhvm
git submodule update --init
cmake .
make

とにかくこの作業が長いです。
自分のマシンで3時間ぐらいかかったでしょうか。。。

Hackにてサンプルを動かしてみる

特にエラーも出ないと dev/hhvm/hphp/の中にhhvmという実行ファイルが作成されているはずです。
サンプルを参考にしながらPGを作成します。

test.hh

<?hh
function f(int $x): void {
  var_dump($x);
}

function test(): void {
  f(123);
}

test();

実行

$ ./hhvm test.hh

// 実行結果 int(123)

123が表示されれば成功です。

まとめ

コンパイルが長かった以外はずいぶんすんなりとできたように思えます。
プログラムの中身自体もPHPに似ているのでだいぶ違和感なく言語の習得ができそうな気がしました。あとはPHPとどちらがベンチマークが高いとか、言語的に得意な分野が何7日が気になるところです。