freenode/#clasp - IRC Chatlog
Search
12:50:41
selwyn
i get a segfault every time i try to load some. it doesn't make sense to me because bitcode is surely loaded into clasp all the time during the build process?
13:07:45
Bike
CST isn't building with dev because it doesn't compile the ast interpreter correctly. this is something i can understand and fix
13:14:36
Bike
might be nice to force generate-ast/cst-to-ast to do no inlining or compiler macroexpansion, but i'll worry about that later
13:34:16
drmeister
selwyn: clasp May be trying to run constructors on load. Where is the bitcode coming from?
13:36:52
drmeister
In the clasp-cxx-demo repo there is a macro that I add to make that c++ compile to bitcode that loads
14:40:13
selwyn
drmeister: i tried to load double-vector-cxx.bc from demo-clasp-cxx-interoperation. also i tried to load some generated bitcode from the build process build/boehm/fasl/cclasp-boehm-bitcode/generated/cl-wrappers.bc since i figured that must work
18:01:01
drmeister
I've added a facility to clasp extensions that lets them take over command line argument processing.
18:01:32
drmeister
This way I can copy iclasp-boehm to icando-boehm and ileap-boehm and they behave differently depending on their filename.
18:02:47
drmeister
The parser isn't complete - but it's simulating "leap" - the computational chemistry setup program I wrote 27 years ago.
18:05:10
drmeister
icando-boehm (and ccando-boehm) start up clasp and load all of the cando chemistry code but they drop you into a Common Lisp repl.
18:05:44
drmeister
ileap-boehm starts clasp, loads all of the cando chemistry code and then starts a leap repl.
18:06:06
drmeister
ileap-boehm handles command line arguments differently than clasp does - so it takes control at startup and sets things up for itself.
18:17:35
selwyn
why is cando a clasp extension? does it need to be built alongside clasp at clasp build time?
18:28:08
drmeister
selwyn: Long ago I decided to split clasp from the chemistry code. Clasp is an implementation of Common Lisp and Cando is the code that enhances clasp with lots of chemistry functionality.
18:28:35
drmeister
To build them together all you do is you clone cando into the clasp/extensions/cando and then you build as normal.
18:29:00
drmeister
There is no why to it really - it's a simplest solution to a difficult problem of merging to large code bases.
18:30:55
drmeister
I generalized the idea of an extension - other people could write extensions for clasp.
18:32:54
selwyn
i am wondering whether the extensions mechanism is right for me - i am interested not so much in writing c++ code but integrating large c++ libraries that are already there. doing the exposure at build time would be convenient
19:14:42
drmeister
I would take https://github.com/clasp-developers/demo-clasp-cxx-interoperation and start by exposing your library and then make it an extension later.
19:15:24
drmeister
You can move it to an extension anytime - it's just some extra fiddly bits (wscript files) to deal with.
19:15:52
drmeister
I've taken pains to keep things general enough that others could create their own extensions.
19:16:42
drmeister
Extensions are more for C++ classes that you want to have managed completely by the GC. Extensions merge their class hierarchy into the clasp class hierarchy. Exposed C++ libraries don't need (or want) this.
19:18:48
drmeister
Bike: This thing with defclass at compile time - I'm about to reproduce the problem and then I'll get you a backtrace.
19:20:01
Bike
i'm not sure what we should do if that does turn out to be the issue. the standard is kind of weird about the point. we can work out something, though.
19:25:37
Bike
there was a discussion in #sicl here https://irclog.tymoon.eu/freenode/%23sicl?around=1550142743#1550142743 but not terribly actionable
19:36:05
drmeister
I just did a distclean and configure - will that update sicl? - It appears to have
21:27:10
Bike
if you do hit it again, probably turn off the parallel compiler, because that backtrace has nothing in it.
21:34:40
drmeister
frame 302 says it's in quicklisp/dists/quicklisp/software/babel-20171227-git/src/strings.lisp
21:36:39
drmeister
(defmacro with-checked-simple-vector (((v vector) (s start) (e end)) &body body) ...
21:42:45
drmeister
I changed both uses of 'e' (I have single letter variable names) to 'ebobo' - the compiler error message doesn't change - so I'm out of ideas.