freenode/#clasp - IRC Chatlog
Search
14:32:46
drmeister
I tried to use staple again - I think we have collisions with our version of eclector and the one that staple uses.
15:07:43
drmeister
We've got some companies that are interested in Cando and I'd like to get the documentation framework up and running.
15:08:39
drmeister
Maybe there's a (defparameter *readtable* nil) in there that should be a (defvar *readtable* nil)?
15:09:16
drmeister
I know it's probably dangerous to mix eclector versions but I don't know how to avoid that other than keep clasp and staple up to date with eclector.
15:10:37
drmeister
You can reproduce this pretty quickly with clasp. load quicklisp into clasp and (ql:quickload :staple0
15:10:46
scymtym
yeah, that's probably it. (defparameter *readtable* in) in variables.lisp sets the variable to NIL before init.lisp can re-install the default readtable
15:11:34
scymtym
i don't have clasp available, but can try whether just quickloading eclector without staple also leads to this error? (i expect yes)
15:28:13
scymtym
i'm pretty sure the problem is that the DEFPARAMETER form in code/readtable/variables.lisp sets the variable to NIL so that the next file, code/readtable/conditions.lisp (as can be seen in the backtrace) is read with *READTABLE* being NIL. i can change this now, but via quicklisp you won't get the change until the next release and only if you update
15:31:48
scymtym
if want to make your code work with vanilla eclector, you can try, as a hack, putting (let ((eclector.reader:*readtable* eclector.reader:*readtable*)) ...) around your calls to ECLECTOR.{READER,PARSE-RESULT,CONCRETE-SYNTAX-TREE}:READ*. that way, only the binding will be overwritten, not the global value
15:32:45
scymtym
actually, i'm not sure that would work. but if it doesn't, you could save and restore the global value around calls
15:37:55
kpoeck
drmeister I believe quickloading eclector is just looking for trouble (since the compiler uses eclector)
15:39:25
drmeister
Huh - I am able to load eclector when I change (defparameter *readtable* nil) to use defvar.
15:42:47
scymtym
i see two kinds of potential problems: 1) in-image upgrading between eclector versions may not work due incompatibly changed lambda lists, etc. 2) stability issues like the one above that only affect loading eclector with eclector
15:43:59
drmeister
yeah - there is a problem when I use (asdf:register-immutable-system :eclector) - note - I have that DEFVAR change in my quicklisp eclector - but I don't think that will have an effect here.
15:56:49
scymtym
i have a hunch: this looks like a compile-time error originally generating when compiling eclector/code/concrete-syntax-tree/read.lisp. now, some time i rewrote the method in question, MAKE-EXPRESSION-RESULT, to work iteratively instead of recursively. is it possible that clasp chokes on the expansion of the LOOP form in that method?
15:57:20
drmeister
#<FILE-SCOPE #P"/Users/meister/quicklisp/dists/quicklisp/software/eclector-20190107-git/code/concrete-syntax-tree/read-cst.lisp" :file-handle 446 :source-debug-pathname NIL :source-debug-offset 0 :trackLineno 1 >
15:58:27
scymtym
yeah, that's the one. can you check whether the method has LOOP or LABELS in your eclector version (or ideally the eclector version loaded when the error happened - not sure which one that is)
15:58:38
kpoeck
But why would you load eclector from this path If you do (asdf:register-immutable-system :eclector)
16:01:08
scymtym
can you check the LOOP expansion? i can't explain why this hasn't been a problem, but everything fits so well
16:06:09
scymtym
maybe it quicker and more conclusive to try and call the method. let me try something
16:10:08
scymtym
does this result in the same error? (let* ((child (make-instance 'cst:atom-cst :raw 1)) (cst (cst:cons child (make-instance 'cst:atom-cst :raw nil)))) (eclector.parse-result:make-expression-result (make-instance 'eclector.concrete-syntax-tree:cst-client) (cst:raw cst) (list child) nil))
16:13:08
scymtym
it should be self-contained. i'm wondering whether just executing that form will reproduce the error
16:15:00
scymtym
is was thinking of the LOOP because i recently changed it because the error message has (COMPILER::CALL #:PREDICATE13477) in it which looks like macroexpanded code
16:15:51
scymtym
since it says "Cannot evaluate form the compiler failed to compile." and "compile-error error", i wonder whether clasp already complains when compiling eclector
16:18:27
drmeister
So we might see error messages when building eclector - I rebuild everything and check that.
16:19:47
scymtym
maybe (compile-file ".../eclector/code/concrete-syntax-tree/read-cst.lsp") yields something with recompiling everything
16:47:45
kpoeck
scymtym example works fine i my clasp (cst no local changes) -> #<CONS-CST raw: (1) @0x11603bb79>
16:56:25
scymtym
kpoeck: i can't explain that. but if i understood correctly, drmeister could reproduce the problem
16:58:50
kpoeck
Understood, but than the problem might not with eclector but rather with his environment
17:01:02
drmeister
kpoeck: What did you do - did you use the (asdf:register-immutable-system :eclector)?
20:49:10
kpoeck
(let* ((child (make-instance 'cst:atom-cst :raw 1)) (cst (cst:cons child (make-instance 'cst:atom-cst :raw nil)))) (eclector.parse-result:make-expression-result (make-instance 'eclector.concrete-syntax-tree:cst-client) (cst:raw cst) (list child) nil))
20:52:08
kpoeck
(ql:update-dist "quicklisp") -> You already have the latest version of "quicklisp": 2019-08-13.
20:52:32
kpoeck
(ql:update-client) -> The most up-to-date client, version 2019-02-16, is already installed.
21:23:32
kpoeck
Don't know if this is important, but eclector-concrete-syntax-tree.asd I get from quicklisp/local-projects
21:24:14
drmeister
I moved my quicklisp directory elsewhere and installed quicklisp from scratch. staple-server is building now.
21:24:35
kpoeck
Probably need (asdf:register-immutable-system :eclector-concrete-syntax-tree) to avoid that
21:49:50
kpoeck
counted directories in .cache/.../quicklisp/dists/quicklisp/software + ../quicklisp/local-projects
21:58:46
drmeister
How does the correspondence between updated projects and quicklisp work. Does quicklisp update on a cycle?
22:00:46
kpoeck7
I believe quicklisp has different rules per project, can be configured if it updates with a release, just current code from a specific branch, ..
22:03:22
drmeister
https://github.com/clasp-developers/clasp/blob/dev/src/lisp/modules/sockets/sockets.lisp#L784
22:09:09
kpoeck7
I sometimes forget to make pr for fixes I have in local-projects, but seems that you suffer from the same problem
22:09:17
drmeister
I'll delete my staple local-project and go back to my old quicklisp and try building that.