summaryrefslogtreecommitdiff
path: root/libguile/struct.h
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2009-11-06 11:25:50 +0100
committerAndy Wingo <wingo@pobox.com>2009-11-26 00:25:07 +0100
commitcfe55d3e819930e5aaaf9fd94c4495fe9f15ed4a (patch)
tree541ffe40ada6ae506cdbacd6ae31803be9a8fede /libguile/struct.h
parentab455d1f1b14347e1445161eeafec919235af92e (diff)
downloadguile-cfe55d3e819930e5aaaf9fd94c4495fe9f15ed4a.tar.gz
generic dispatch protocol in scheme, not yet wired up
* module/oop/goops/dispatch.scm: Add a dispatch protocol in Scheme. The idea is that instead of using a hardcoded C protocol, we compile dispatch procedures at runtime. To avoid too much thrashing at bootup, there is a simple JIT mechanism -- dispatch will be data-driven, through the cache, for the first 5 invocations, then a dispatch procedure will be compiled from the cache. My initial timings indicate that interpreted dispatch takes about 100us, and that compiled dispatch takes about 60us. Compilation itself takes about 16000us (16 ms). The compiled procedure dispatch times will improve soon, hopefully.
Diffstat (limited to 'libguile/struct.h')
0 files changed, 0 insertions, 0 deletions