hhvm install on OSX 10.8 (UNSUPPORTED)
OSXは正式にはサポートされてない
http://docs.hhvm.com/manual/en/install.macosx.php
jit対応してないから速さは体感できないけど、機能試したり開発はできる。
ローカルで開発したくてOSXにしたけど、UbuntuとかDebianでやる方がよさげ。
ここ見てインストール
https://github.com/facebook/hhvm/wiki/Building-and-installing-HHVM-on-OSX-10.8
1時間以上かかる。何回か途中でこけるけど、再実行で先に進む。
brew update brew upgrade brew tap homebrew/dupes brew tap homebrew/versions brew tap mcuadros/homebrew-hhvm brew install hhvm --HEAD
エラーで止まる。
--HEADは現在使用不能。3.1.0の変更に追従出来ていない。
https://github.com/mcuadros/homebrew-hhvm/issues/87
とりあえず動かしたいので最新じゃなくていい。
brew install hhvm
確認
hhvm --version HipHop VM 3.0.1 (rel) Compiler: heads/master-0-g6ea18c3ef056ff8b863a56f8ec4940b7b320f351 Repo schema: e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
型エラーになるか動かしてみる。
sample.hh
<?hh // Hack functions are annotated with types. function my_negation(bool $x): bool { return !$x; } // and return with the type 'int'. function add_one(bool $x): int { // function add_one(int $x): int { // success return $x+1; } print(add_one(1));
hhvm sample.hh Fatal error: Argument 1 passed to add_one() must be an instance of bool, int given in /path/sample.hh on line 11
<?php function add_one(int $x): int { return $x+1; } print(add_one(1));
hhvm sample.php Fatal error: Syntax only allowed with -v Eval.EnableHipHopSyntax=true in /Users/dela/Documents/develop/hhvm/sample.php on line 2
オプション付ければね。
hhvm -v Eval.EnableHipHopSyntax=true sample.php 2
混合もOK。
sample.php
<?php function add_one(int $x): int { return $x+1; } $list = [1,10,100]; $r = array_map('add_one', $list); var_dump($r);
hhvm -v Eval.EnableHipHopSyntax=true sample.php array(3) { [0]=> int(2) [1]=> int(11) [2]=> int(101) }
OSXでも試すくらいは出来る。
でも試すだけならtutorialある。
http://hacklang.org/tutorial
お疲れさまでした。