Talk in Boston: Lisp, LLVM, Molecular Lego

Jack Carrozzo jack at crepinc.com
Wed Nov 21 03:56:48 UTC 2018


Hi all,

--- Here's the link to the preso, by Christian Schafmeister, "Clasp: Common
Lisp using LLVM and C++ for Molecular Metaprogramming":
https://www.youtube.com/watch?v=8X69_42Mj-g

--- Great links to lispy fpga implementations, but in this case I'm hoping
to generate verilog as part of a compilation process such that
application-specific VLIW-type hardware can be added to a generic
processing core, tied 1:1 with a compiler who, at compile time, is aware of
the new opcodes and puts them to use. The Zynq stuff this guy I'm after is
an Arm core on an fpga/SoC; the dev boards arrive running linux, and (the
documentation claims) the path to adding custom hardware features that
speak with the core isn't overly riddled with holes of doom.

--- I've come across a really cool Verilog system/compiler/transpiler that
takes verilog and generates a c++ state machine simulating it that runs at
(reportedly) mach 37. https://www.veripool.org/projects/verilator/wiki/Intro

--- If you haven't played with Verilog or hardware langs, you should do it,
it's remarkably interesting if one is used to thinking of source code
executing sequentially. Shout outs to iVerilog and gtkWave for being great
and powerful and still simple.

--- Since a few others gave (links to) their stories with hardware
implementations of elegant languages, I feel that I should share a recent
experience of mine, interviewing at a Large company for a software role,
taking questions at the end of a 45 min preso I gave, when it came up that
I had written a simple processor and interfaces for Brainfuck in Verilog,
and wrote a code generator to make it serve a webpage over an SPI ethernet
board. I was suprised to find that of the perhaps 25 eng people jammed into
this conf room, none of them had ever heard of brainfuck. I quickly tried
to explain its concept and purpose, and that since each Brainfuck
instruction is a character, we can just used them as opcodes directly, no
assembly needed. The crowd was really not following me. I decided to move
on. Later, I find out through a friend that, since no one in the room had
heard of Brainfuck, somehow I was interpreted as making a joke about
hardware design being difficult while saying "Fuck" a lot, to paraphrase
the recruiter.  They declined to extend an offer, citing something like
"communication style incompatibilities". TL;DR be careful with hardware!
https://github.com/jackcarrozzo/brainfuck-processor  //
https://en.wikipedia.org/wiki/Brainfuck (p.s. I recently started a
different software job, and my coworker was physically pained when i
finally let it out that, left to my own devices, I write Common Lisp, and
thus the script he wanted that I hadn't planned to share was, of course, in
same.)

Happy..... everything,

-Jack

On Tue, Nov 20, 2018 at 11:44 AM Marc Feeley <feeley at iro.umontreal.ca>
wrote:

> And here are some links to my own work on Scheme and FPGAs :
>
> - http://scheme2006.cs.uchicago.edu/05-saint-mleux.pdf
> - http://www.iro.umontreal.ca/~feeley/papers/BergeronFeeleyDavidCC08.pdf
> -
> http://www.iro.umontreal.ca/~feeley/papers/BergeronPerronFeeleyDavidTRETS09.pdf
>
> Marc
>
>
>
> > On Nov 20, 2018, at 9:05 AM, Jeremy Jones <jaj at clozure.com> wrote:
> >
> > Marc Battyani has worked with fgpas and Lisp. His linked in is:
> https://www.linkedin.com/in/marcbattyani/
> >
> >
> > On Mon, Nov 19, 2018 at 9:28 PM Jack Carrozzo <jack at crepinc.com> wrote:
> > Hello all - sorry for the spam for the 99% of you to whom this doesn't
> apply.
> >
> > At this event (which was great, btw), I chatted with a guy working on
> Xilinx's Zinq, their quasi-ARM fpga core embedded system that allows one to
> add hw functionality specific to a use case without reimplementing the
> proverbial wheel. Does anyone happen to know who that is/was, and how I
> might get in contact?
> >
> > Thanks all!
> >
> > -Jack
> >
> > On Tue, May 26, 2015 at 6:12 PM Martin Cracauer <cracauer at cons.org>
> wrote:
> > On June 9 I will host Christian Schafmeister for a talk about "Clasp:
> > Common Lisp using LLVM and C++ for Molecular Metaprogramming".
> >
> > It is the talk he gave on the ELS2015 on London and I liked it a lot.
> > It was one of many knockout talks on that conference.  Lisp has come a
> > long way.  I am very happy Christian can give the talk locally.
> >
> > This event is in the Google office at Kendall Red Line station.
> > External guests are invited.  We have to do the full run with upfront
> > registration, visitor pass and assigned Googler (aka me unless
> > we get a lot of guests).  So if you would like to come please let me
> > know soon.
> >
> > If you have friends who might be interested in "Molecular Lego" please
> > forward.  The talk is about programming but the molecular part is very
> > good.  Same for general LLVM enthusiasts you might know.
> >
> > Planned time is June 9, 2015 12:00-13:00.  You would need to be early
> > because I can't set up Christian and get you in at the same time.
> > PLEASE CONFIRM TIME in case there are changes.
> >
> > Abstract:
> >
> > Clasp is an implementation of Common Lisp that interoperates with C++
> > and uses LLVM as its backend. It is available at
> > github.com/drmeister/clasp. The goal of Clasp is to become a
> > performant Common Lisp that can use C++ libraries and interoperate
> > with LLVM-based tools and languages. The first sophisticated C++
> > library with which Clasp interoperates is the Clang C/C++ compiler
> > front end. Using the Clang library, Common Lisp programs can be
> > written that parse and carry out static analysis and automatic
> > refactoring of C/C++ code.
> >
> > This facility is used to automatically analyze the Clasp C++ source
> > code and construct an interface to the Memory Pool System compacting
> > garbage collector. The primary purpose of Clasp is to act as a
> > performant language for scientific computing that will be used to
> > design sophisticated new molecular devices, catalysts and therapeutic
> > molecules based on our "Molecular Lego" technology. Clasp is a general
> > programming language that will support many other applications.
> >
> > Martin
> > --
> > %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
> > Martin Cracauer <cracauer at cons.org>   http://www.cons.org/cracauer/
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/boston-lisp/attachments/20181120/b41b8df8/attachment-0001.html>


More information about the boston-lisp mailing list