Sealable Metaobjects for Common Lisp
Description
We introduce the concept of sealable metaobjects, i.e., classes, generic
functions, and methods, whose behavior is restricted to allow for some
static analysis. Then we use these sealable metaobjects to define fast
generic functions, a variant of standard generic functions that allow for
call site optimization --- ranging from faster method dispatch to
inlining of entire effective methods. Fast generic functions support
almost all features of standard generic functions, including custom
method combinations and non-trivial references to the next method. Our
benchmarks show that a straightforward implementation of Common Lisp's
sequence functions using these fast generic functions is competitive with
the corresponding built-in sequence functions of SBCL. Fast generic
functions are thus an attractive drop-in replacement for standard generic
functions in performance critical codes.
Files
sealable-metaobjects.pdf
Files
(458.7 kB)
Name | Size | Download all |
---|---|---|
md5:8ba354d54ee9adc1182b3e5b997eb860
|
458.7 kB | Preview Download |
Additional details
Related works
- Is compiled by
- 2677-3465 (ISSN)