4 ms·
Clasp: Common Lisp Using LLVM and C++ for Molecular Metaprogramming [video]
- PuercoPop 11y agoThe speaker also has some more info in his blogpost about the talk: https://drmeister.wordpress.com/2015/06/15/i-gave-a-talk-on-clasp-and-my-chemistry-at-google-in-cambridge-mass-last-week/ https://drmeister.wordpress.com/2015/06/15/i-gave-a-talk-on-...
- istvan__ 11y agoThis was the best tech talk I have seen for a long time. Thanks for sharing it.
- graovic 11y agobrilliant
- mark_l_watson 11y agoGreat talk. Both parts were interesting: tool building and the application of designing molecules.
- bratsche 11y agoFor anyone looking for the project: https://github.com/drmeister/clasp https://github.com/drmeister/clasp
- ris 11y agoHow does one person manage to be so productive?
- mahmud 11y agoFocus, dedication, specialization, experience, and superior choice of technology.
- kazinator 11y agoOutsource to libs. Look at the list of dependencies given on the github project's page: https://github.com/drmeister/clasp https://github.com/drmeister/clasp Do any of this from scratch and your productivity will plummet: LLVM for compiling; Boehm for garbage collection; GMP for bignums; Readline for interactivity; C++11 for ... cough ... oh will you look at the time---lesson is over for today, grasshoppers!
- aidenn0 11y agoYour point stands, but one nit-pick: The Boehm GC is only so it doesn't run out of RAM while bootstrapping, it uses the Ravenbrook MPS precise garbage collector once it's bootstrapped. Also note that Christian reported that Ravenbrook was very responsive when he discovered a few deficiencies in the MPS library. Also he used clang to walk his C++ code to automatically generate information in order to enable precise GC of C++ objects.
- drmeister 11y agoChristian Schafmeister here with a shoutout to the Ravenbrook people who are awesome and very helpful. They have excellent documentation: https://www.ravenbrook.com/project/mps https://www.ravenbrook.com/project/mps. I don't own stock or anything but now that I'm using MPS I'd like more people to know about it. If you are interested in developing a more generalized version of the static analyzer that I wrote to automate GC for C/C++/Objective-C - get in touch with me.
- ris 11y agoCool, but if that makes things so straightforward, where's your performant Common Lisp implementation? (Where's mine?) I did watch the lecture, I do know how many libraries he used...
- aidenn0 11y agoChristian Schafmeister and Robert Strandh (creator of work-in-progress SICL, which Christian now uses in Clasp), both took on the multi-year project of creating a new CL implementation; Robert completely from scratch, Christian leveraging the high-level parts of an existing implementation, while completely rewriting the low-level ones. I have a lot of respect for these guys; I had a few new ideas for ways of implementing Common Lisp, but decided not to when I realized with the amount of free-time I have, it would be about a decade of work. I've spoken to Robert online, and he mentioned that a lot of people told him a from-scratch implementation was doomed to fail. The only reason those people were wrong was in that they underestimated his tenacity.
- BenTheElder 11y agoThis is one of the most fascinating talks I've seen in a while. Thanks lispm.
- cracauer 11y agoThanks again, Christian.
- dekhn 11y agoI recently used the author's software (we went to grad school together); software he wrote ~20 years ago that is still useful.
- wtbob 11y agoFascinating, fascinating talk.
- drmeister 11y agoHi, I'm Christian Schafmeister. Thank you so much for the nice comments! I just want to point out that this work was all done with your tax dollars. This work was made possible by support from the National Institute of Health (NIGMS), the National Science Foundation (NSF) and the Defense Threat Reduction Agency (DOD:DTRA).
- graphene 11y agoSuper interesting. If you read the Feynman speech that he references at the beginning, he actually mentions that as you scale machines down, things like mechanical rigidity will degrade and you will need to change your design rules accordingly. I always assumed that when you reach the molecular level, thermal motion and the constant bombardment by water molecules would mean that the only viable option is to use proteins, just like nature does, so it's very interesting to see that this guy is aiming to use more rigid structures at the molecular level. I guess this is a way to reduce the complexity (degrees of freedom) compared to designing protein tertiary structure. I wonder if this is too constraining though, he admits he has yet to figure out how to build mechanical machines using this approach, and intuitively I'd expect that to be very difficult with this degree of rigidity. You might need the additional flexibility of peptide chains to do many of the interesting things that are possible. He does point out the advantage of durability, but this raises the obvious issue that one of the questioners alluded to, namely toxicity/pollution risk. I'd think degredation by biological or other means would be a feature, not a bug, since as he points out, even conventional plastics are a huge pollution problem. Fascinating stuff nonetheless.
- drmeister 11y agoChristian Schafmeister here - thanks! You make some very good points that I can address: (1) Things made with "Molecular Lego" still move, but they keep their shape just enough to organize atoms/groups to do things like speed up reactions and bind other molecules. We've explored dynamics in several of our papers. They aren't too constrained - they are constrained "just enough"; and we can build in flexibility and hinges where ever we want. (2) We don't know how to make mechanical molecular machines with them yet; we need to start making a lot of them and explore their properties to figure that out. The first folks who smelted iron didn't know how to build motors with it - it took a lot of people playing around with iron for a long time to figure that out. I think we can get there in less time but it will take work. (3) Re: toxicity/pollution - this is the first non-natural molecular technology that contains the solution to any problems that it generates. We need to learn how to make catalysts well and then we can build catalysts that break these molecules down. Conceivably, we could build materials that contain the catalysts that break them down and are activated by an external signal. Or we make materials out of bigger bricks (built from Molecular Lego) and we fish them out of the environment, tear them apart from each other, check them for defects and build new materials with the good ones and recycle the broken ones. We can also build catalysts that break down every other indestructable material that we've been dumping into the environment for 100 years. Regarding toxicity, these molecules are made out of carbon, nitrogen, oxygen and hydrogen - the same atoms you are made out of. They are inherently non-toxic (there are qualifiers on this).
- sunkencity 11y agoThis is the best presentation I have seen in years. Macros are truly the way up if we are to escape the gravity well of calculus for bio chemistry. How else to gain delta v?