uzullaがブログ

uzullaがブログです。

PypyのPHP実行環境HippyVM試した

TLにながれてきたのですが、

HippyVM
http://hippyvm.com/
「HippyVM on average is 7.3x faster than stock PHP and 2x faster than Facebook's HHVM. Please check our benchmarks.」

「まじか!おもしろそう!試そう!」

これはなんなのか

Pypy+RPythonによるPHPの実行環境です。
基本的にはPypyでできており、RPythonでバイナリにしている。

速い!のかもしれない。

添付のベンチ見る限り。
(ただし、添付のベンチ、一部完走しなかった)

つかえるの?

残念ですが、何かを作るにはまだ実装されていないものが多すぎます。

var_dumpとかfile_get_contentsとかpreg_*系、あと例外は実装されているっぽいですが、
(別にいらないけど)phpinfo()はないし*1、無名関数や名前空間などがサポートされていない。
当然?ですがまだウェブサーバーとの連携もない(やるならCGIとして動かす感じ)

後、Composerもうごかない。composer.pharがうごかないし(Pharサポートがないっぽい)、そこはPHPで肩代わりするとしても、そもそも名前空間サポートされてないっぽい。

#!/usr/bin/env php
syntax error, unexpected 'T_NS_SEPARATOR', file /root/test/get_gifboom_gif/vendor/composer/autoload_real.php on line 23
Parse error: not implemented in /root/test/get_gifboom_gif/getgifboomgif on line 21

ので、よほどシンプルなPHPじゃないとうごかないし、まだ使えるものではない。

えっ…なにそれ、意味あるの?

面白いというだけでも大分イケてるやん??
まあ、今の所はPHPでバッチ的にすごく計算させたいという変わった人以外は、用はないとおもいます。

でも、サイトには「HippyVM is aimed at being 100% compatible with Zend PHP」とあるので、いつかは使えるようになるはずですね。
できれば早めにビルトインサーバー的なものをサポートしてくれると最高ですね。

とりあえずウォッチ開始しました。

おまけCentOS6.4で試したときのhistory

Python2.6と3.4だとうまくビルドが通りませんでした。

あと、ビルドに1.5〜2GBくらいメモリを消費するので、ためしにvmで〜という人は注意しましょう。
ちなみにメモリがたりたとしても、ビルドにはかなり時間かかります。

wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
wget http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -Uvh *.rpm
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel git gcc pcre* libffi*
yum --enablerepo=remi-php55 install php

wget https://www.python.org/ftp/python/2.7.6/Python-2.7.6.tgz
tar xvzf Python-2.7.6.tgz
cd Python-2.7.6
./configure
make all
make install
wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py
/usr/local/bin/python2.7 ./get-pip.py
/usr/local/bin/pip2.7 install rply

cd ~
wget https://bitbucket.org/pypy/pypy/get/default.tar.bz2
tar xvjf default.tar.bz2
mv pypy-pypy-99d559ea7f5f/ pypy

cd ~
git clone git@github.com:hippyvm/hippyvm.git
cd hippyvm/
/usr/local/bin/pip2.7  install -r requirements.txt
/usr/local/bin/python2.7 ../pypy/rpython/bin/rpython -Ojit targethippy.py
./hippy-c

最近のPHP

これとか、HHVMとか、Zephirとか、華やかな感じになってきて良いですね!!

追記 マンデルブロをみるおしごと

f:id:uzulla:20140326005300p:plain
マンデルブロの様子です。たっぷり30分はみつづけることになります。

(どうでもいいけど、Kodingはビルド時間が長すぎるからか、強制Killされてビルドできなかった、つらい)

最後に、やっぱりしなければいけない宣伝

当方がPHPの章を担当した下記書籍、発売して1週間程度たちました。
好評頂いているようなのですが、いまだレビューゼロ件。だれかレビューかいていただけると著者陣大変喜びます。

ちなみに、掲載されているサンプルコードはHHVMではうごきますが、hippyVMはうごきませんでした。

Webアプリエンジニア養成読本[しくみ、開発、環境構築・運用…全体像を最新知識で最初から! ] (Software Design plus)

Webアプリエンジニア養成読本[しくみ、開発、環境構築・運用…全体像を最新知識で最初から! ] (Software Design plus)

*1:関数はあるが、なにもでてこないし、なぜか引数を要求する???