freenode/#clasp - IRC Chatlog
Search
16:12:30
drmeister
Yeesh, the code requires a lot of changes to change *elementary-types* to anything other than an alist.
16:28:57
drmeister
What we know right now is if we comment out that (declare ignore ...) that everything works. When I build with that declare in place - then the quicklisp load of esrap goes nuts and prints endless empty lines.
16:32:02
scymtym
SLIME can handle it to some extend but i have seen inaccurate results in complicated cases
16:38:07
scymtym
the unusual bit in the code in question is shadowing the global macro WITH-CACHED-RESULT via MACROLET
16:41:15
drmeister
I can't get anywhere with slime macroexpansion so I uncommented that declare and now...
16:42:39
drmeister
https://github.com/quicklisp/quicklisp-client/blob/master/dists/quicklisp/software/esrap-20190521-git/src/evaluator.lisp#L106
16:46:33
scymtym
just as a sanity check: does anything change if you rename the BODY variable in lines 73 and 75?
16:49:49
scymtym
you could also try putting a PRINT around the body of NAMED-LAMBDA/CACHE-VARIANTS to see what it expands to (should be expanded four times)
17:01:28
drmeister
scymtym: I can't get insight - I starting to suspect it's a problem in our AST interpreter - because it's got to be happening when the WITH-CACHED-RESULT macrolet function is being evaluated.
17:05:56
drmeister
Hmm, there nothing in the ast-interpreter that deals specifically with macrolet. macrolets are an environment thing - declares should be gone by the time the ast-interpreter hits them.
17:06:44
scymtym
no worries. i wouldn't have been surprised if that section of the code had a problem
17:12:11
drmeister
Grrr, I'll probably need Bike's help - I can't even figure out where this is evaluated from
17:19:14
drmeister
::notify Bike Could you check the discussion here. There is an issue compiling esrap that might be due to Cleavir not handling a (declare (ignore ...)) properly in a macrolet in a backquote in a macrolet. It's esrap evaluator.lisp line 74
18:08:42
drmeister
Indeed there are. This issue in particular: https://github.com/robert-strandh/SICL/issues/141
18:17:19
drmeister
Given that it's non-conforming behavior in cleavir I'm loath to ask scymtym to make a change for clasp.
18:20:23
drmeister
cracauer`: I can reproduce the problem when I run cando in slime and (ql:quickload "cl-jupyter")
19:03:16
drmeister
cracauer`: I found the source of the problem. There is a compiler macro on CONCATENATE that is messed up.
19:03:46
drmeister
https://github.com/clasp-developers/clasp/blob/dev/src/lisp/kernel/cmp/opt-sequence.lsp#L137
19:07:58
drmeister
How the hell do we get all the way to the last quicklisp package at the end of the cando build before this rears its ugly head?
19:11:09
pfdietz
There's an offshoot of ansi-tests that's useful for testing compiler macros and other compile-time optimizations on builtins, maybe that would help.
19:13:08
pfdietz
They put together calls to various built-ins with random arguments, random type declarations, and see if things work.
19:18:45
pfdietz
I need to get that test sute back into a more usable state. It was off being toyed with by others for some years.
22:04:43
v0|d
cracauer`: a question. say you have syntax/lexer/parser for a lang, additionally have an interpreter for it. say you decided to compile it (ie to some ir). What is the correct way to prove that the compiler obeys the interpreter?