<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Hi all,<div><br></div><div>--- Here's the link to the preso, by Christian Schafmeister, "Clasp: Common Lisp using LLVM and C++ for Molecular Metaprogramming": <a href="https://www.youtube.com/watch?v=8X69_42Mj-g">https://www.youtube.com/watch?v=8X69_42Mj-g</a></div><div><br></div><div>--- 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.</div><div><br></div><div>--- 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. <a href="https://www.veripool.org/projects/verilator/wiki/Intro">https://www.veripool.org/projects/verilator/wiki/Intro</a></div><div><br></div><div>--- 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.</div><div><br></div><div>--- 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! <a href="https://github.com/jackcarrozzo/brainfuck-processor">https://github.com/jackcarrozzo/brainfuck-processor</a>  //  <a href="https://en.wikipedia.org/wiki/Brainfuck">https://en.wikipedia.org/wiki/Brainfuck</a> (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.)</div><div><br></div><div>Happy..... everything,</div><div><br></div><div>-Jack</div></div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Nov 20, 2018 at 11:44 AM Marc Feeley <<a href="mailto:feeley@iro.umontreal.ca">feeley@iro.umontreal.ca</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">And here are some links to my own work on Scheme and FPGAs :<br>
<br>
- <a href="http://scheme2006.cs.uchicago.edu/05-saint-mleux.pdf" rel="noreferrer" target="_blank">http://scheme2006.cs.uchicago.edu/05-saint-mleux.pdf</a><br>
- <a href="http://www.iro.umontreal.ca/~feeley/papers/BergeronFeeleyDavidCC08.pdf" rel="noreferrer" target="_blank">http://www.iro.umontreal.ca/~feeley/papers/BergeronFeeleyDavidCC08.pdf</a><br>
- <a href="http://www.iro.umontreal.ca/~feeley/papers/BergeronPerronFeeleyDavidTRETS09.pdf" rel="noreferrer" target="_blank">http://www.iro.umontreal.ca/~feeley/papers/BergeronPerronFeeleyDavidTRETS09.pdf</a><br>
<br>
Marc<br>
<br>
<br>
<br>
> On Nov 20, 2018, at 9:05 AM, Jeremy Jones <<a href="mailto:jaj@clozure.com" target="_blank">jaj@clozure.com</a>> wrote:<br>
> <br>
> Marc Battyani has worked with fgpas and Lisp. His linked in is: <a href="https://www.linkedin.com/in/marcbattyani/" rel="noreferrer" target="_blank">https://www.linkedin.com/in/marcbattyani/</a><br>
> <br>
> <br>
> On Mon, Nov 19, 2018 at 9:28 PM Jack Carrozzo <<a href="mailto:jack@crepinc.com" target="_blank">jack@crepinc.com</a>> wrote:<br>
> Hello all - sorry for the spam for the 99% of you to whom this doesn't apply.<br>
> <br>
> 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? <br>
> <br>
> Thanks all!<br>
> <br>
> -Jack<br>
> <br>
> On Tue, May 26, 2015 at 6:12 PM Martin Cracauer <<a href="mailto:cracauer@cons.org" target="_blank">cracauer@cons.org</a>> wrote:<br>
> On June 9 I will host Christian Schafmeister for a talk about "Clasp:<br>
> Common Lisp using LLVM and C++ for Molecular Metaprogramming".<br>
> <br>
> It is the talk he gave on the ELS2015 on London and I liked it a lot.<br>
> It was one of many knockout talks on that conference.  Lisp has come a<br>
> long way.  I am very happy Christian can give the talk locally.<br>
> <br>
> This event is in the Google office at Kendall Red Line station.<br>
> External guests are invited.  We have to do the full run with upfront<br>
> registration, visitor pass and assigned Googler (aka me unless<br>
> we get a lot of guests).  So if you would like to come please let me<br>
> know soon.<br>
> <br>
> If you have friends who might be interested in "Molecular Lego" please<br>
> forward.  The talk is about programming but the molecular part is very<br>
> good.  Same for general LLVM enthusiasts you might know.<br>
> <br>
> Planned time is June 9, 2015 12:00-13:00.  You would need to be early<br>
> because I can't set up Christian and get you in at the same time.<br>
> PLEASE CONFIRM TIME in case there are changes.<br>
> <br>
> Abstract:<br>
> <br>
> Clasp is an implementation of Common Lisp that interoperates with C++<br>
> and uses LLVM as its backend. It is available at<br>
> <a href="http://github.com/drmeister/clasp" rel="noreferrer" target="_blank">github.com/drmeister/clasp</a>. The goal of Clasp is to become a<br>
> performant Common Lisp that can use C++ libraries and interoperate<br>
> with LLVM-based tools and languages. The first sophisticated C++<br>
> library with which Clasp interoperates is the Clang C/C++ compiler<br>
> front end. Using the Clang library, Common Lisp programs can be<br>
> written that parse and carry out static analysis and automatic<br>
> refactoring of C/C++ code.<br>
> <br>
> This facility is used to automatically analyze the Clasp C++ source<br>
> code and construct an interface to the Memory Pool System compacting<br>
> garbage collector. The primary purpose of Clasp is to act as a<br>
> performant language for scientific computing that will be used to<br>
> design sophisticated new molecular devices, catalysts and therapeutic<br>
> molecules based on our "Molecular Lego" technology. Clasp is a general<br>
> programming language that will support many other applications.<br>
> <br>
> Martin<br>
> -- <br>
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%<br>
> Martin Cracauer <<a href="mailto:cracauer@cons.org" target="_blank">cracauer@cons.org</a>>   <a href="http://www.cons.org/cracauer/" rel="noreferrer" target="_blank">http://www.cons.org/cracauer/</a><br>
> <br>
<br>
</blockquote></div>