freenode/#clasp - IRC Chatlog
Search
13:47:14
Colleen
Bike: drmeister said 9 hours, 53 minutes ago: I can reproduce the problem pretty well now - but it's not convenient. I created the "nosmarts" cando branch (cando - not clasp) and you build the quicklisp code using ./icando-boehm -f nosmarts
13:47:14
Colleen
Bike: drmeister said 9 hours, 52 minutes ago: To reproduce the problem use: ./build/boehm/icando-boehm -e '(trace ARCHITECTURE.BUILDER-PROTOCOL:ADD-RELATIONS)' -e '(trace reduce)' -e '(chem:initialize-smarts-users)' -e "(core:quit)"
13:47:14
Colleen
Bike: drmeister said 9 hours, 51 minutes ago: You can build this with the master branch of clasp and you can compare the output. There are calls to REDUCE that are getting NIL instead of the correct argument.
13:48:27
drmeister
Hi - there appears to be an intermittent problem. But it's not like the compiled code is compiled completely wrong so that it produces the same bad result every time.
13:49:30
drmeister
It's like the code depends on an uninitialized value or something like that. It fails almost every time I run it after compiling it from scratch - but attempting to put print statements into the code make the problem vanish.
13:50:24
drmeister
Then I take the print statements out and quicklisp does a partial compilation and the problem doesn't return.
13:51:05
drmeister
I have to wipe the quicklisp cache, rerun icando-boehm -f nosmarts to rebuild all the quicklisp code and then run the reproducer above and then it shows up again.
14:34:35
scymtym
you could try reproducing with MAKE-KEYWORD-ARGS and KEYWORD-ARGS at https://github.com/scymtym/architecture.builder-protocol/blob/master/src/protocol.lisp#L203 removed since the whole mechanism is very hairy but at the same time very likely not actually required anywhere
14:49:21
Bike
the problem t here is "right" in the reduce call two lines down being NIL instead of a list of two atom tests. really dunno how a compiler error would be causing that
14:53:57
scymtym
yeah, it's strange. i was suggesting the above to maybe get a chunk of the code out of the picture
14:57:23
Bike
add-relations is called with :cando (nil) ((* :element (#<bond-to-atom-test>))) instead
14:58:55
drmeister
I can bring up the BIR version of icando-boehm -f nosmarts up with slime and reproduce the problem. If I recompile add-relations the problem goes away - poof.
15:01:57
drmeister
I'm not absolute certain what errors are real and what are due to mistakes I made while building things.
15:06:27
drmeister
I changed make-keyword-arguments to this, wiped out the cache, rebuilt everything, and the problem goes away (sigh)
15:12:53
drmeister
Alright - I'm gonna try bringing out the big guns. I'm switching to compile-file-serial and USE_HUMAN_READABLE_BITCODE. Then I'm going to see if I can reproduce the problem. If I can - then I'll start editing the bitcode to see if I can get any new insight.
15:14:50
Bike
this time i got «Condition of type: SIMPLE-PROGRAM-ERROR» «When calling chem:parse-smarts with "[$([N:1]([C:2])(» «#<Error while printing condition>»
15:15:49
drmeister
That is happening because SMARTS uses a #\~ as part of its syntax and that is confusing the printer.
15:16:53
drmeister
Hmm, there might be a simple fix. Currently we are using the SIMPLE_ERROR(BF("xxxxxx")) xxxxx string as a format string wherever the SIMPLE_ERROR is printed. We shouldn't, we should use it as an argument to a format like "~a"
15:17:20
drmeister
Yeah - exactly - why is it part of the format string? I dunno - this never came up before.
15:17:39
drmeister
I tracked it down and posted something about it in the last couple of days - I'll check the log.
15:23:35
Bike
it would probably be nice if we didn't use BF unless we needed to, so that the lisp error includes the actual objects being formatted e.g. in the backtrace
15:26:14
drmeister
https://github.com/clasp-developers/clasp/blob/master/src/core/foundation.cc#L1422
15:37:05
drmeister
Trying to run with the serial compiler I run afoul of the static constructors /startup mess. Grrrrr
15:37:49
drmeister
This problem seems to be more with what is passed to REDUCE from the esrap code than a problem with REDUCE itself.
15:38:57
Bike
if multiple-value-bind is required for the break maybe primop:multiple-value-setq is busted somehow
16:03:07
Bike
if you pass :output-file to compile-file the result doesn't seem to be loadable. error in dlopen...
16:11:56
drmeister
I pushed a fix for SIMPLE_ERROR being confused by lisp formatting characters to both bir and master branches.
16:21:10
drmeister
Maybe - I'll start using "bar" instead of "foo" - ok? You use "foo" and I'll use "bar".
18:39:13
yonkunas
selwyn: Hi, how would you like to proceed with quickclasp? Currently someone needs to su to your account to do updates.
19:36:15
karlosz
Bike, drmeister: bir contification is in. in particular https://github.com/clasp-developers/Eclector/blob/fa652c5d9750c4cbdc43082a3e07243bd2e265e4/code/reader/read.lisp#L76 this guy is gone and no longer unwinds
20:44:36
Bike
dentist went long, sorry. the test case is just the relevant parts of architecture.builder-protocol. sicne you got it down to this one call it's not much
22:00:53
karlosz
drmeister: Writing temporary bitcode file to: #P"/Users/karlosz/clasp/src/lisp/kernel/lsp/predlib.ll"
22:00:57
karlosz
Time real(4.958 secs) run(4.958 secs) consed(369343584 bytes) interps(7) unwinds(0)