diff options
author | Andy Wingo <wingo@pobox.com> | 2009-11-06 11:25:50 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2009-11-26 00:25:07 +0100 |
commit | cfe55d3e819930e5aaaf9fd94c4495fe9f15ed4a (patch) | |
tree | 541ffe40ada6ae506cdbacd6ae31803be9a8fede /libguile/struct.h | |
parent | ab455d1f1b14347e1445161eeafec919235af92e (diff) | |
download | guile-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