Dear all,
it's my pleasure to announce that I have a new paper accepted at ELS
2023, the 16th European Lisp Symposium, to be held by the end of this
month in Amsterdam. Title and abstract below...
A MOP-Based Implementation for Method Combinations
In traditional object-oriented languages, the dynamic dispatch algorithm is
hardwired to select and execute the most specific method in a polymorphic
call. In CLOS, the Common Lisp Object System, an abstraction known as "method
combinations" allows the programmer to define their own dispatch scheme. When
Common Lisp was standardized, method combinations were not mature enough to be
fully specified.
In 2018, using SBCL as a research vehicle, we analyzed the unfortunate
consequences of this under-specification and proposed a layer on top of method
combinations designed to both correct a number of observed behavioral
inconsistencies, and propose an extension called "alternative combinators".
Following this work, SBCL underwent a number of internal changes that fixed
the reported inconsistencies, although in a way that hindered further
experimentation.
In this paper, we analyze SBCL's new method combinations implementation and we
propose an alternative design. Our solution is standard-compliant so any Lisp
implementation can potentially use it. It is also based on the MOP, meaning
that it is extensible, which restores the opportunity for further
experimentation. In particular, we revisit our former "alternative
combinators" extension, broken after 2018, and demonstrate that provided with
this new infrastructure, it can be re-implemented in a much simpler and
non-intrusive way.
--
Resistance is futile. You will be jazzimilated.
Lisp, Jazz, Aïkido:
http://www.didierverna.info