2018 LLVM Developers’ Meeting: C. Schafmeister “Lessons Learned Implementing Common Lisp with LLVM”

LLVM · 60K views · 2018 · 26:01

Open on YouTube

Compilers, interpreters & program analysisFunctional programmingtalkdated

Why Hacker News recommends it

Mostly cited by the author himself as the introduction to Clasp and Cando, and recommended to those wanting Lisp with C++ library interop.

What it is

Christian Schafmeister presents lessons from six years of implementing Clasp, a Common Lisp compiler using LLVM as its backend that interoperates with C++. He explains handling a dynamic, memory-managed language on LLVM.

Recommended by 1 HN commenters across 1 different months, 2018 to 2023.

What Hacker News said

Recommends 0xcde4c3db · 2019-07 · on “Racket Is an Acceptable Python”

While it's nowhere near as mature as Racket, those interested in this use case might also be interested in Clasp, a Common Lisp implementation built on LLVM specifically to enable the combination of Lisp-style dynamic development approaches with C++ libraries. [LINK] [this video]

Cites drmeister · 2018-12 · on “The LLVM Compiler Infrastructure”

Counterpoint - I implemented a Common Lisp compiler that uses llvm as the back end ( [LINK] ). I've kept up with the versions from 3.6 to 6.0 and I'm about to upgrade to 7.0. I'm not sure why other projects find this difficult but I have noticed that if I get too far behind it does get a bit more difficult. I exposed the C++ API to Common Lisp and write all of the compiler in Common Lisp. The Clang C++ compiler tells me what is broken when I upgrade to a new version of llvm and then I fix it. I talk about it here [this video] at about 13:30

Cites drmeister · 2018-12 · on “Creating a Non-Trivial Lisp Game in 2018”

My group is developing Clasp (github.com/clasp-developers/clasp.git). It's a Common Lisp implementation that interoperates with C++ and uses llvm as the backend. It's something you might want to look at because it could change your options in the following ways: (1) Clasp interoperates with C++ - C++ libraries like graphics and physics engines can be easily exposed within Clasp Common Lisp. (See [LINK] ) (2) Clasp uses llvm as the backend - it generates llvm-ir from Common Lisp code and uses link time optimization to link C++ and Common Lisp generated llvm-ir. (3) Clasp uses the Memory Pool System garbage collector, which can be configured to minimize GC pause times to a programmer-defined l

Cites drmeister · 2019-02 · on “LispOS: Specification of a Lisp operating system (2013) [pdf]”

A growing group of us are implementing Clasp ( [LINK] ) - a new Common Lisp that uses Robert Strandh's Cleavir compiler, interoperates with C++ and uses LLVM as the backend. Clasp is the foundation of Cando - a programming environment for the development of molecular devices ( [this video] ). Robert Strandh is an exceptionally clear thinker and a fantastic programmer. I can't count the times that Robert has implemented changes to the Cleavir compiler source code and without him being able to test it (long story) passed it to me and it ran flawlessly in Clasp. I implemented his fast generic function solution within Clasp based on another of his papers ( [LINK] ). Edit: Basically - if Robert writes

Cites drmeister · 2020-09 · on “Energy Efficiency across Programming Languages [pdf]”

I do have a couple of talks on YouTube and thank you (the most recent one: [this video] ). Yes - we are building molecules using our code. I have started a company and we are several months in to developing a new technology for warding off future pandemics (maybe even doing something about the current one). We literally started compiling the first molecules using an application I implemented in Cando (Clasp + computational chemistry) yesterday.

Cites jakeogh · 2021-05 · on “SICL: A New Common Lisp Implementation”

Ah, related to #clasp: [LINK] Clasp: Common Lisp using LLVM and C++ for Molecular Metaprogramming [this video] 2018 LLVM Developers Meeting: C. Schafmeister lessons Learned Implementing Common Lisp with LLVM [LINK] Clasp: Common Lisp using LLVM and C++ for Designing Molecules [LINK] Modular Polymer Catalysts - Chris Schafmeister [LINK] 10S6P4 Christian Schafmeister 2010 UNTT 3rd Annual Conference Session 6 Presentation 4

Cites jakeogh · 2022-11 · on “Christian Schafmeister – Atomically Precise Catalysts”

More presentations! I think two are almost the same presentation: [LINK] (July 2010) 10S6P4 Christian Schafmeister 2010 UNTT 3rd Annual Conference Session 6 Presentation 4 [LINK] (July 2015) Clasp: Common Lisp using LLVM and C++ for Molecular Metaprogramming [LINK] (Aug 2015) Clasp: Common Lisp using LLVM and C++ for Designing Molecules [LINK] (Oct 2018) Modular Polymer Catalysts - Chris Schafmeister [this video] (Nov 2018) LLVM Developers Meeting: C. Schafmeister lessons Learned Implementing Common Lisp with LLVM

Cites nomilk · 2023-06 · on “Why Lisp Syntax Works”

> then we'd both go back to whatever language we were actually using at the time. Which well known projects do use lisp? I think Google Flights uses lisp [1]; there must be more? [1] [this video]