Entries from 2009-09-27 to 1 day

C++ メンバ関数のポインタをアドレスとして取得

C++ のメンバ関数は関数ポインタをとる事は出来てもアドレスは無理。とはいえ JIT で必要なので以下の方法でとる事に。 実体は this が第一引数のマングリングされた関数だから呼べるのは当たり前だけど合法かが微妙。 const Object t = Object::makeFixnum(…

今日の復習

10割 Distribured Database Aggregates 変更が永遠に終わらない

分岐が動くようになった - JIT実験中

(let* ([label (gensym)] [asm (assemble `((movq rax ,(vm-make-fixnum 2)) (movq rbx ,(vm-make-fixnum 2)) (cmpq rax rbx) (je ,label) (movq rax ,(vm-make-fixnum 3)) (label ,label) (retq)))] [proc (u8-list->c-procedure asm)]) (test-true (proced…