European Lisp Symposium

- 2015, London
The conference is over!


  • Escaping the Heap

    • photo Ahmon Dancy Ahmon Dancy Franz Inc. (SPEAKER)

    Common Lisp implementations provide great automatic memory management of data structures. These data structures are allocated from a memory area called the “heap”. However, there are times when heap allocation is inadequate to satisfy the needs of the application. For example, sometimes data structures need to be persistent or shareable amongst separate processes. In these cases, alternatives to using the heap must be considered. In this talk we will explore the motivations for out-of-heap data structures. We will discuss some of the out-of-heap data structures that we’ve created in the course of developing our database product, such as lists, hash tables, and arrays. We will describe the tools and mechanisms that we used to implement them, including memory-mapped files, foreign structs, aligned pointers and direct memory accesses. Finally we will discuss the downsides of out-of-heap data structures and the constant struggle between abstractions and performance.

  • Quicklisp: On Beyond Beta

    • photo Zach Beane Zach Beane Clozure Associates (SPEAKER)

    Quicklisp was released in 2010 as a public beta. Five years later, it's still in beta. How has Quicklisp (and Common Lisp) evolved in the past five years? What will it take for Quicklisp to go on beyond beta?

  • Unwanted memory retention

    • photo Martin Cracauer Martin Cracauer Google (SPEAKER)

    This talk goes over numerous oddities in a Lisp-based system which led to unwanted heap memory retention and to constant resident memory growth over the uptime of the system. Issues covered include a mostly conservative but also paged garbage collector, the difficulty of clearing out data structures that are retainted as an optimization but that might hold on to large amounts of heap (and how that happens in C++, too) and how large intercollected and theoretically uprooted "clouds of heap debris" interact with stale pointers out of same. The most delicious pieces center around pointer staleness out of the saved (on-disk, but read-write mapped) part of the heap, which is not garbage collected, into anonymous memory backed heap and how you can create rootless but uncollected and "untraceable" object circles. Untraceable until you hack up the GC to help you.

  • µKanren: Running the Little Things Backwards

    • photo Bodil Stokke Bodil Stokke (SPEAKER)

    Relational programming, or logic programming, is a programming paradigm that exhibits remarkable and powerful properties, to the extent that its implementation seems frightfully daunting to the layman. µKanren is a minimal relational language that seeks to strip the paradigm down to its core, leaving us with a succinct, elegant and above all simple set of primitives on top of which we can rebuild even the most powerful relational constructs. In this talk, we will explore the µKanren language by implementing it from first principles in a simple functional programming language, going on to demonstrate how you can assemble these simple building blocks into a semblance of its richer parent, miniKanren, and maybe solve a logic puzzle or two to make sure it’s working as advertised.


photo Goldsmiths, University of London (CONFERENCE) New Cross SE14 6NW London United Kingdom



Programme Chair

  • photo Julian Padget Julian Padget University of Bath (PROGRAMME-CHAIR) UK

Organizing Chair

Local Chair

  • photo Christophe Rhodes Christophe Rhodes Goldsmiths University of London (LOCAL-CHAIR) UK


  • photo Christian Queinnec Christian Queinnec University Pierre et Marie Curie (COMMITTEE) Paris 6 France
  • photo Edmund Weitz Edmund Weitz University of Applied Sciences (COMMITTEE) Hamburg Germany
  • photo Giuseppe Attardi Giuseppe Attardi University of Pisa (COMMITTEE) Italy
  • photo Henry Liebermann Henry Liebermann MIT (COMMITTEE) USA
  • photo Marc Freely Marc Freely University of Montreal (COMMITTEE) Canada
  • photo Matthew Flatt Matthew Flatt University of Utah (COMMITTEE) USA
  • photo Nick Levine Nick Levine RavenPack (COMMITTEE) Spain
  • photo Rainer Joswig Rainer Joswig (COMMITTEE) Hamburg Germany
  • photo Robert Strandh Robert Strandh University of Bordeaux (COMMITTEE SPEAKER) France
  • photo Sacha Chua Sacha Chua (COMMITTEE) Toronto Canada
  • photo Stephen Eglen Stephen Eglen University of Cambridge (COMMITTEE) UK


Times are local to the conference. You can download the programme in iCalendar format here.
  1. April 20th

  2. Registration

  3. Welcome Message

  4. Quicklisp: On Beyond Beta

    • Zach Beane
  5. Coffee

  6. Efficient Applicative Programming Environments for Computer Vision Applications

    • Benjamin Seppke
    • Leonie Dreschler-Fischer
  7. Keyboard? How quaint. Visual Dataflow Implemented in Lisp

    • Donald Fisk
  8. P2R - Implementation of Processing in Racket

    • Hugo Correia
    • António Leitão
  9. Lunch

  10. Constraining application behaviour by generating languages

    • Paul van der Walt
  11. Processing List Elements in Reverse Order

    • Irène Durand
    • Robert Strandh
  12. Executable Pseudocode for Graph Algorithms

    • Breanndán Ó Nualláin
  13. Coffee

  14. Unwanted memory retention

    • Martin Cracauer
  15. Lightning Talks

  16. Conference Dinner

  17. April 21st

  18. A Gentle Introduction to Gendl, a Common Lisp-based Knowledge Based Engineering Environment

    • Dave Cooper
  19. Coffee

  20. lambdatalk

    • Alain Marty
  21. Symbolic Pattern Matching in Clojure

    • Simon Lynch
  22. Escaping the Heap

    • Ahmon Dancy
  23. Lunch

  24. µKanren: Running the Little Things Backwards

    • Bodil Stokke
  25. Coffee

  26. Woo: a fast HTTP server for Common Lisp

    • Eitaro Fukamachi
  27. Clasp: Common Lisp+LLVM+C++

    • Christian Schafmeister
  28. Quantum Physics Simulations in Common Lisp

    • Miroslav Urbanek
  29. First-class Global Environments in Common Lisp

    • Robert Strandh
  30. Lightning Talks

  31. Conference End


You can find the proceedings in PDF form here:


Please wait...