libera/#clasp - IRC Chatlog
Search
15:57:47
yitzi
I've just update the repo for trivial-features so be sure to do rm -rf src/lisp/kernel/contrib/trivial-features/ and rerun koga if you build off of main.
19:50:47
bike
i thinkt he problem is that if eclector.cst:read is bytecompiled, it blows the stack on big conses
19:55:38
bike
Right, but in the bytecompiled build, we don't actually read CSTs (except now in my source info branch)
20:09:29
yitzi
For me it appears that it is failing when it attempts to compile MAKE-RANDOM-BACKQUOTED-STRING
20:12:18
bike
you can try e.g. (with-open-file (s "whatever.lisp" :direction :output) (write `(defvar *test* ',(make-list 4000)) :stream s)), then (with-open-file (s "whatever.lisp") (eclector.concrete-syntax-tree:read s)) to get the same crash
20:12:47
bike
with the ansi tests, it fails when compiling printer/format/roman-numerals.lisp, which has a big ol list in it
20:14:23
bike
so... this is pretty annoying to deal with. i guess i'll try upping the stack again, why not
23:05:19
bike
i did not look in detail, but i could. i am not calling reconstruct, so that's not it (unless read calls it?)
23:05:41
bike
we have pretty bad recovery from stack overflow - hard to get a sane backtrace. i spent like several hours isolating it to read
23:16:22
scymtym
your example is "unaligned" because MATERIAL in 'MATERIAL has corresponding CSTs, but the (quote ...) part does not
23:16:53
scymtym
implementing the recursive traversals in RECONSTRUCT would fix the overflow but it would still be slow
23:32:05
bike
the bytecode probably has a lower max recursion depth than sbcl. it's already less than our own native compiler, apparently
23:41:44
bike
i wouldn't worry much about changing the implementation unless it's a really fundamental improvement. i can just make the stack bigger
23:43:35
scymtym
it would be best to somehow extend the optimization for the aligned case and avoid RECONSTRUCT altogether. i will think about it sometime later