clasp next steps ? speed-up ?

Christian Schafmeister chris.schaf at verizon.net
Wed Jun 24 04:01:14 UTC 2015


Hey guys,

Sorry for taking so long to get on board.  I’m in Florida at a meeting and well, whatever - I’m on board now.

Andrew, thank you very much for following up.  I’ll throw in my 2 cents.

One note - Markus and I know each other for almost 20 years.  We see each other every couple of years and we share interests in nanotechnology and now Common Lisp.

(1) Clasp to avoid C++.   

I think it would be a good idea to start exposing the C++ library that you want to expose to Clasp using the clbind library.  I can help get you started.  Take a look at https://github.com/drmeister/demo-clasp-cxx - to see what I’m talking about.

Then you will get a sense for how easy (or hard) it is.   You may decide to keep going this way.  I exposed a lot of clang functionality to Clasp doing this by hand.  It only took me a couple of days.

A more general C++ groveler and interface builder would be great but it will require more work to develop.  The good thing is that it is possible and the final result will be perfect in terms of its ability to grovel C++ code because it will incorporate the Clang C++/C/Objective C compiler.

(2) I’m working to reduce the project dependencies of Clasp as much as possible. Currently they are all included in “externals-clasp”.  The build system is in flux as I do this.

(3) Debugging with Clasp is not great.  I have two compilers that I’m working with.  The old bootstrapping compiler generates some debugging information and the backtraces are kind of useful.  The new compiler Cleavir generates no debugging information yet but will generate great debugging information in weeks to months.

(4) I don’t know what 4 was.

Best,

.Chris.


On Jun 23, 2015, at 12:50 PM, Andrew Robin <andrew.t.robin at gmail.com> wrote:

> Yes, I want you to volunteer--but drmeister didn't send me to recruit you.  :)  I just don't want to see people interested in this project dropping out because no one answers their post.  I'm not sure drmeister reads this mailing list that he created either.  He isn't posting to it much, for sure.  I'd like to see the project in a state where he doesn't have to--where people like me can.  Currently, work on the project seems to get done through the IRC #clasp channel.  I have counted about 5 different modes of communication on the Clasp project.  I prefer the mailing list format because it is threaded, coherent, archived, and doesn't challenge my limited attention span.
> 
> So let's address some of your ideas:
> 
> (1) Clasp to avoid C++
> 
> This is the reason I am interested in the project, too.  I need to wrap a large C++ library with Lisp--I want to use Lisp where I can.  Not because I dislike C++, but for what I am doing Lisp is better in a number of ways.  C++1x gives more Lisp-like features, but it is just getting too complicated, IMO.  I talked to drmeister and others on #clasp about having a more transparent way (read least C++ LOC) of doing the binding.  His current clbind subproject requires the use of C++ boilerplate.  It seems like having the AST of the C++ code would allow generating even easier to use binding code IN LISP.  I have a more detailed post on this mailing list regarding this issue--no one commented on this one either :(
> 
> Ideally, a project like Clasp should help you do chemistry more efficiently, not navigate mind bending C++ code.  It's obviously not there yet, but I haven't given up hope.  I'm primarily a software developer, and have experience working with scientists and engineers on technical projects.  I hope to contribute that experience to this project.
> 
> (2) Project dependencies
> 
> Unfortunately, with newer projects it takes time to get things sorted out.  I get annoyed when I have to install a mess of dependencies which deprecate older versions of software I depend on.  One recent project (which will remain unnamed) I installed had a dependency chain that wiped out X windows without asking!  I'm working on understanding the external dependencies of Clasp better.  
> 
> Again, ideally, it would be great to use standard (and older, stable) packages, prebuilt.  drmeister has apparently patched LLVM and clasp (and boost?) to get his code running.  Getting these patches accepted by established, production projects to support a fledgling project like Clasp would be hard (and maybe questionable).  One idea I had was to see if the project dependencies could be extended (like with a plug-in) rather than patched.
> 
> Ir regard to your specific issues, could you install a supported of emacs in parallel, and use that for Slime?  I haven't ever done this myself however.  Another thing that might help you is creating a VM or a partition with a more recent version of your operating system for use with Clasp.  Again, I am not the one to ask about doing this--just ideas.
> 
> (3) Debugging
> 
> Yes, we want to get the best debugging information we can.  If I have any ideas about this after working with Clasp more, I will post them to this list.  Please let us know what you come up with.
> 
> (4) Anybody else?
> 
> If you are still reading this--anybody else have comments?  Chemists want self-organizing molecules, I want self-organizing code.
> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/clasp-devel/attachments/20150624/57845695/attachment-0001.html>


More information about the clasp-devel mailing list