summaryrefslogtreecommitdiff
path: root/libguile
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
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')
0 files changed, 0 insertions, 0 deletions