2007-11-01から1ヶ月間の記事一覧

関数コピー+スタティック変数インジェクションでクロージャ

PHP

eval内で無名関数を宣言したり、eAcceleratorのようなopcode cahceと組み合わせたりしたときに問題があったのでパッチを更新。 php-5.2.5-rsky-071129a.patch 無名関数の絡みで今更ながら php.internals: PATCH: anonymous functions in PHPから始まる議論を…

続・Zend Engineハック

PHP

無名関数がかなり使いやすくなりました。高階関数のような記述もできます。 たとえば、これの結果は

Zend Engineをハックしてみた

PHP

勢いに任せてVM・構文解析器・コア関数をハックして以下の機能を実装してみました。 無名関数リテラル (PHPの仕様上、実際は自動で名前が割り振られ、リクエスト終了まで関数は生き続ける) 角括弧による配列リテラル Callable Object php-5.2.5-rsky-071126.…

液晶モニタ購入計画

ずっと我慢してきたけど、もう限界。MacBook Proの液晶だと目が疲れて仕方ないので目が疲れにくい液晶モニタを買うことにしました。ついでにHHK Proも。 まず第一希望はColorEdge CG221。¥590,000。無理。却下。 というわけで、現実的なレベルでいくと EIZO …

構文解析器に手を入れたくなってきた

PHP

runkitはPECLでなくて標準添付・Windows版でもデフォルトで有効でいいんじゃないかと思う今日この頃。PHPでもこういうことがしたくなってきました。

Speedy HTML Template Utilities 0.1.0

php_speedy-0.1.0.tgz 瓢箪から出た駒というかなんというか、Speedyエクステンション正式リリース。 speedy関数はstdClass以外のオブジェクトもコンテキストとして受け付けるようになり、また、speedy関数の実行によってコンテキストが汚染されなくなりまし…

微調整

ブログのデザインを少しいじりました。 Safari3向けにスタイルシートを調整したり、IE7向けの調整はギブアップしたり、無駄にグラデーションしたロゴを作ったり、タイトル横の空白を詰めたり。

php_tokyocabinet-0.2.0

php_tokyocabinet-0.2.0.tgz Tokyo CabinetのPHPバインディングを更新しました。変更点は以下の通りです。 データベースを閉じるcloseメソッドを実装。(0.1.0ではIDLで指示されていないし、明示的に閉じなくてもデストラクタで閉じられるので実装していなか…

speedy: 37 lines of the fastest PHP template engine (joke)

唐突に、PHP用のテンプレートエンジンを4+1行で実装してみる。 方針: ふつうのPHPファイルをテンプレートとして使う。 は面倒なので と書けるようにする。 はもっと面倒なので と書けるようにする。 ついでにXML宣言も .... とかけるようにする。 4+1行…

calias: クラスのエイリアスを登録するエクステンション

php_calias-0.0.1.tgz この前のKOF2007の打ち上げ兼Piece Network 1の打ち合わせで出た話を元に、PHP 5.3/6.0の名前空間とは異なる、既存クラスのエイリアスを登録するエクステンションを書いてみました。PHP 5.2以降対応です。 Application Sever SAPIもし…

Piece Network 1

Piece Framework公式サイトとかPHPプロ!とかid:takagimasahiroさんとことかid:YudoufuさんとことかITEMAN御大とこなどなどで告知されまくっているPiece Network 1に出演します。 ふつつか者ですが、よろしくお願いします。

鯖が飛んだ、バックライトが消えた

今朝までは無事だったFreeBSDの自宅サーバがお亡くなりに。 原因は電源ぽいのだけど、いいかげん使い倒したマシンだしデータの救出のため3.5インチHDDの外付けケースを注文して、退役させることにしました。 そしてついさっき、Mac OS X10.3.9のセキュリティ…

php_tokyocabinet-0.1.0

php_tokyocabinet-0.1.0.tgz Tokyo CabinetのPHPバインディングを作ってみました。 インストールは phpize; configure --enable-tokyocabinet; make; sudo make install と、いつもの手順ですが、configure内でpkg-configを使います。Tokyo Cabinetはバージ…

晩秋のPECLまつり

php_continuation-0.1.1.tgz php_iovm-0.4.0.tgz php_opendogs-0.6.1.tgz php_senna-0.1.2.tgz php_tokyocabinet-0.1.0.tgz php_unichar-0.2.0.tgz php_yaml-0.2.0.tgz 溜まっていたものをまとめてリリース。PHP 6.0/5.3向けにビルドできなくなったのを修正…

zend_parse_parameters()のフォーマット一覧 (書きかけ)

PHP

とりあえずテキストに書き出してみただけの状態です。そのうち日本語で表にします。 identifier: expected type required argument number and types 'l': integer 1: long * 'd': float 1: double * 's': binary string 2: char **, int * 'S': binary stri…

犬が引戸を開けるの巻

寒くなると土間は嫌なのか、自力で戸をこじ開けて上がってきます。そしてこたつ布団 (電源は入っていない) の上に鎮座。 しかし恐るべきはボーダーコリーのスペックよ。 http://photozou.jp/photo/show/109820/5771933 はてなダイアリーにフォト蔵の動画って…