freenode/#lisp - IRC Chatlog
Search
21:47:08
drmeister
Hey folks. Over in #clasp we are developing a new Common Lisp implementation called 'clasp' and an extended version for computational chemistry called 'cando'.
21:48:08
drmeister
We are also developing a web based user interface based on common-lisp-jupyter. Tarn Burton, the developer of common-lisp-jupyter has been adding autocompletion of symbols, auto-indenting, and contextual help.
21:48:09
drmeister
https://www.dropbox.com/s/zwpbuq5qewz3m62/Screen%20Recording%202020-08-10%20at%205.39.20%20PM.mov?dl=0
21:50:51
drmeister
The jupyterlab kernel is getting me really excited - with the autoindenting (put the cursor on a parenthesis and hit tab) you can actually start to write code in the thing.
21:54:47
bjorkintosh
drmeister, is there a 101 intro to computational chemistry around? I know zero about the topic.
22:03:56
fwoaroof[m]
drmeister: cool, I've tried to build clasp locally several times and always get build errors
22:06:27
drmeister
New news - we have clasp working with the Memory Pool System copying garbage collector.
22:08:16
drmeister
bjorkintosh: It's a really big subject. https://www.acs.org/content/acs/en/careers/college-to-career/chemistry-careers/computational-chemistry.html
22:08:40
drmeister
Using computers to simulate the stuff that we are made out of. What could be more noble and fundamental than that?
22:10:10
drmeister
fwoaroof[m]: https://github.com/clasp-developers/clasp/wiki/Road-to-clasp-with-lvm@9
22:10:34
bjorkintosh
However, computational chemistry was not generally thought of as its own distinct field of study until 1998, when Walter Kohn and John Pople won the Chemistry Nobel for their work on density functional theory and computational methods in quantum chemistry.
22:12:47
drmeister
Because there is a lot of C++, C and Fortran code out there that you want to be able to work with.
22:15:54
drmeister
There are challenges as well. Many in my field have invested heavily in Python for scripting.
22:17:46
drmeister
So we are building an entire software stack with a very small team. We are doing everything from low level compiler optimizations to web-based graphical user interfaces.
22:18:46
drmeister
And we are developing applications within it. There are several demos in our docker image: thirdlaw/cando
22:24:55
fwoaroof[m]
drmeister: I've experimented with the opposite approach: using https://github.com/froggey/Iota to compile LLVM bitcode to Lisp
22:26:15
drmeister
I dunno about performant - the devil is in the details and there are a lot of details in a full Common Lisp implementation.
22:26:36
drmeister
But because we use the LLVM C++ API we can keep up with LLVM changes better than anyone.
22:28:13
drmeister
Because the code breaks when they (llvm developers) make changes and they make a lot of changes - and then it behoves me to update our code to keep up to date. I've kept with them from version 3.6 to 9 and I'm anxiously waiting for new changes coming in llvm12 (cross-fingers) that will make it easier to support Common Lisp.
22:30:58
drmeister
It's still very much a C/C++ oriented backend. But new changes that are coming will enable reloading of code in a way that will make it better for a more dynamic language like Common Lisp.
23:39:09
dim
drmeister: do you have a time frame in mind, or a target version number I could check, for clasp image save/load feature? I mean I could then maybe try and compile pgloader with clasp and see if your new GC beats the SBCL one...
23:40:08
dim
(we keep having issues with SBCL GC where we exhaust the heap with pgloader, and I don't know if pgloader is putting too much pressure because of bad code or just because of what we do: data processing) (also Clozure has no trouble with pgloader, as a data point)
23:54:22
drmeister
dim: No time frame but it's a high priority. I would say weeks maybe? Not months.
23:55:14
drmeister
Cando takes 25 seconds to start up on my macbook pro and I despise that that is every persons first impression of the system.
23:59:29
drmeister
The image save/load is to shorten the startup time for cando. Cando is a version of clasp that adds lots of C++ chemistry code and a whole lot of quicklisp systems.
0:02:00
fwoaroof[m]
(I had some significant performance/stability improvements switching to Shenandoah in a JVM application I work on)
0:02:00
drmeister
Do you mean low pause times? Ravenbrook has done work to guarantee that any pause time is less than a user defined time limit.
0:03:31
drmeister
No - I don't think it's that. I don't have a lot of experience running it. I have a great deal of experience programming with it and debugging it.
0:09:54
drmeister
We just added type inference and we are making progress in improving performance - but sbcl still beats us.
0:11:34
drmeister
What I mean is that sbcl has an extremely impressive compiler - it's fast and generates fast code. But we all know that.
1:40:33
edgar-rft
p_l: I'm not entirely sure but I think the GPL says that the devil gets your sould for free.
2:29:04
p_l
edgar-rft: at least you don't need to sell your soul to the devil to make a clean from source compile of SBCL
6:29:12
jdz
dim: My guess would be that SBCL has a fixed heap size, but CCL will dig into RAM until it is exhausted.
6:30:56
jdz
But I also like memory behavior of CCL better than SBCL, although having software with no upper bound to memory consumption is questionable.
6:58:11
aeth
Doesn't SBCL have a fixed default, like 1 GB or something (the manpage says it's platform-dependent)? Depending on what you're doing, you might prefer if it sets the starting heap based on total RAM instead, even though you can't adjust it later. There might be a way. "--dynamic-space-size <megabytes>" if that's launched from a shell script, there's probably something you can put inside of a $() to come up with a reasonable value.
7:42:44
luis
aeth: somewhat surprisingly, the GC will automatically use more space proportionally to the dynamic space size, so you're not just increasing the upper bound but also the lower bound (average bound? something like that)