closure

PHP5.3のクロージャの謎というかPHPだから謎なんてない!な挙動

zend_compile.c を読んでいて気づいた。 これの結果が int(4)となる。摩訶不思議。みんな大嫌いなクロージャのuseキーワードは、5.1から導入されたcompiled variables(CV)という、ローカル変数アクセス高速化のための機構の実装が腐っているために導入され…

C関数レベルのクロージャを C++ で実現?

前にlibffi を使ってクロージャが作れることは確認したけど、やや力技過ぎ。 ちょっと調べてみるとid:mb2syncさんの日記 (スターありがとうございました) に c_function というのが紹介されていたので試してみた。 #include <iostream> #include "c_function.hpp" stru</iostream>…

libffi (x86) のクロージャがbuggyな件

boost-php (謎) を書いていて、ZEND_FUNCTION_ENTRY の handler にクロージャを指定できるといろいろ便利だということが分かったので libffi に手を出してみた。が、、、テストコードが謎の SEGV を出して動かない。渋々 (gdb) disassemble closure->tramp c…