Greetings,
I am pleased to announce that our paper "Approaches in Typecase Optimization”
has been accepted to the next European Lisp Symposium, April 16-17,
Marbella, Spain. Please find the abstract below.
If anyone would like to take a look at the paper, your comments are welcome.
https://www.lrde.epita.fr/dload/papers/newton.18.els.pdf
<https://www.lrde.epita.fr/dload/papers/newton.18.els.pdf>
Abstract
We contrast two approaches to optimizing the Common Lisp typecase macro expansion. The
first approach is based on heuristics intended to estimate run time performance of certain
type checks involving Common Lisp type specifiers. The technique may, depending on code
size, exhaustively search the space of permutations of the type checks, intent on finding
the optimal order. With the second technique, we represent a typecase form as a type
specifier, encapsulating the side-effecting non-Boolean parts so as to appear compatible
with the Common Lisp type algebra operators. The encapsulated expressions are specially
handled so that the Common Lisp type algebra functions preserve them, and we can unwrap
them after a process of Boolean reduction into efficient Common Lisp code, maintaining the
appropriate side effects but eliminating unnecessary type checks. Both approaches allow us
to identify unreachable code, test for exhaustiveness of the clauses and eliminate type
checks which are calculated to be redundant.