freenode/#clasp - IRC Chatlog
Search
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.
21:44:55
drmeister
135: (CLEAVIR-COMPILE-FILE-FORM (DEFPARAMETER BABEL::*STRING-VECTOR-MAPPINGS* (BABEL-ENCODINGS:INSTANTIATE-CONCRETE-MAPPINGS :OCTET-SEQ-SETTER BABEL::UB-SET :OCTET-SEQ-GETTER BABEL::UB-GET :OCTET-SEQ-TYPE (SIMPLE-ARRAY (UNSIGNED-BYTE 8) (*)) :CODE-POINT-SEQ-SETTER BABEL::STRING-SET :CODE-POINT-SEQ-GETTER BABEL::STRING-GET :CODE-POINT-SEQ-TYPE BABEL:SIMPLE-UNICODE-STRING)))
21:45:52
Bike
instantiate-concrete-mappings is a macro that expands into a whole mess of stuff, as i remember.
22:05:53
drmeister
kpoeck: We just hit a problem with it - but this is after bike integrated some new compiler changes.
22:17:58
drmeister
Bike: Captain Hindsight says we should incorporate building cando into the final steps of compiler testing. It stresses the compiler in interesting ways.
22:57:35
drmeister
I just created a branch called 'work' that derives from testing and I'm cherry-picking the commits that follow your merge
0:28:49
drmeister
There is a bit of a problem with that - we have some things in the buildbot tied to dev. But we should probably change that rather than dev.
0:30:40
drmeister
Martin has a lot of buildbot scripts that are tied to dev he tells me. He thinks it's going to be a lot of trouble sorting this out.
1:02:37
drmeister
If we built the docker image and AWS machine images off of a particular branch - which should we use?
1:28:04
drmeister
Bike: To get back to the other question about defclass at compile time I got a backtrace with compile-file-serial
1:31:43
Bike
as for what we should do about it- we definitely want to make it known that it's a class at compile time, if nothing else for the find-class and typep optimizations
1:31:57
Bike
we don't have to do that by defining a class, though, we can just recorde it in the compilation environment somewhere
1:37:12
Bike
also, it's not actually because we share code, i introduced compile time defclass uh... a couple months ago i think