◆ docker で動かすことにした

以前から hhvm 使ってみようとしては VM じゃビルドできないし WSL に Ubuntu 用パッケージを入れても「このバイナリは実行できません」系のエラーでるしで全然使えてません
もう直接入れることは諦めて docker で動かすことにしました

docker のイメージは hhvm/hhvm
コンテナを作っておいて

sudo docker exec <Container-ID> hhvm file.hh

sudo docker exec -it <Container-ID> hhvm -a

で実行します

上側は file.hh ファイルを実行します
実行される file.hh はホストのローカルではなく docker コンテナのローカルなので 実行専用のコンテナならホスト側でファイルを編集するので実行前に docker cp でコピーしたりフォルダマウントが必要です

下側は interactive 実行です
PHP と同じく 「hhvm -a」 でコードを入力して即実行できる interactive 実行ができます
interacitve 実行の場合は標準入力をコンテナに渡す必要があるので -i (--interactive) をつけます
それと -t (--tty) もつけておきます
-t はなくても入力ができるのですがプロンプトが出ません
今入力して大丈夫なのかわかりづらいですし コンソール上のログを見ても入力なのか出力なのか分かりづらいです
また -t なしの状態だと bash を実行して ls したら 1 行ひとつという pipe したときみたいな挙動になってました

docker という VM 環境の割にはインストールしたときに近い感じで使えて思ったより便利です
それでもファイルのコピーが必要だったり コマンドが長くなったり sudo 必要だったりは不便なところです
WSL2 では普通に動けばいいのですけど……