Published April 27, 2020 | Version v1
Conference paper Open

Sealable Metaobjects for Common Lisp

  • 1. FAU Erlangen-Nürnberg

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)