Skip to content
0:00 / 0:00

#llvm#commonlisp#clasp

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

LLVM

18K subscribers • 15 videos on Hallway

YouTube
  • Recommended by 3 people: 1 on Hacker News, 1 on Lobsters and 1 in engineering communities.
  • Presented by Christian Schafmeister

Advanced. Deep dive for people who know the field.

60K views7 years ago3 recommendations

Systems programmingProgramming languagesCompilers and interpretersLisp and Clojure

Christian Schafmeister shares lessons from building Clasp, a Common Lisp compiler that uses LLVM and interoperates with C++.

llvm.org/devmtg/2018-10/ — Lessons Learned Implementing Common Lisp with LLVM over Six Years - Christian Schafmeister Slides: Coming Soon — I will present the lessons learned while using LLVM to efficiently implement a complex memory managed, dynamic programming language within which everything can be redefined on the fly. I will present Clasp, a new Common Lisp compiler and programming environment that uses LLVM as its back-end and that interoperates smoothly with C++/C. Clasp is written in both C++ and Common Lisp. The Clasp compiler is written in Common Lisp and makes extensive use of the LLVM C++ API and the ORC JIT to generate native code both ahead of time and just in time. Among its unique features, Clasp uses a compacting garbage collector to manage memory, incorporates multithreading, uses C++ compatible exception handling to achieve stack unwinding and an incorporates an advanced compiler written in Common Lisp to achieve performance that approaches that of C++. Clasp is being developed as a high-performance scientific and general purpose programming language that makes use of available C++ libraries. — Videos Filmed & Edited by Bash Films: BashFilms.com

Why it's here

3 people recommend this

u/oilshellin r/ProgrammingLanguages • Recommends

2018 LLVM Dev Meeting: Lessons Learned Implementing Common Lisp with LLVM

tumdumon Lobsters • Recommends

Lessons Learned Implementing Common Lisp with LLVM

0xcde4c3dbon Hacker News • Recommends

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 link to this video

drmeisteron Hacker News • Mentions

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 link to this video at about 13:30

drmeisteron Hacker News • Mentions

On “Creating a Non-Trivial Lisp Game in 2018”

…l Bank Common Lisp, but it uses the open source and highly configurable Cleavir compiler developed by Robert Strandh and we have incorporated inlining and are currently incorporating type inference. If you want to see a little bit more - I have a 25 min talk up on youtube that I presented a couple of weeks ago at the 2018 llvm developers meeting ( link to this video )…

drmeisteron Hacker News • Mentions

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 ( link to 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…

drmeisteron Hacker News • Mentions

On “Energy Efficiency across Programming Languages [pdf]”

I do have a couple of talks on YouTube and thank you (the most recent one: link to 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.

jakeoghon Hacker News • Mentions

On “SICL: A New Common Lisp Implementation”

Ah, related to #clasp: link Clasp: Common Lisp using LLVM and C++ for Molecular Metaprogramming link to 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

jakeoghon Hacker News • Mentions

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 link to this video (Nov 2018) LLVM Developers Meeting: C. Schafmeister lessons Learned Implementing Common Lisp with LLVM

nomilkon Hacker News • Mentions

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 link to this video

u/mttdin r/ProgrammingLanguages • Mentions

On “Using LLVM's MCJIT for a garbage-collected interpreter?”

Perhaps looking at the experience from some of the other LLVM projects can be useful, too -- e.g., some of the recent talks: * Falcon + Falcon: An optimizing Java JIT - 2017 LLVM Developers’ Meeting: link to this video + New PM: taming a custom pipeline of Falcon JIT - 2018 EuroLLVM Developers’ Meeting: link to this video -- mentions contributing the Rewrite Statepoints For GC (RewriteStatepointsForGC) pass * Lessons Learned Implementing Common Lisp with LLVM over Six Years - Christian Schafmeister - 2018 LLVM Developers’ Meeting: link to this video -- Clasp has an ORC JIT engine and has some GC support (https://github.com/clasp-developers/clasp/tree/master/src/gctools). * (Likely the least relevant here, since it ap…