Open ak-coram opened 2 years ago
The above backtrace is unfortunately not very helpful, since it's just ASDF saying there was an error while compiling, rather than the actual error. (edit: oops, didn't see debug.txt. my bad)
I tried quickloading serapeum just now and got a different error: The definition of cond-let uses trivia:match
with backquotes, and it apparently gets confused by Eclector. I don't know how trivia works with backquotes, so I'm not sure if this is our problem or trivia's or what.
eta: actually, looks like the version in git is newer than my quicklisp's, and the new version doesn't use backquote. let me try something newer.
serapeum-free reproducer attached test.lisp.txt. compile-file
it and there will be a similar verification failure.
The problem appears to be that clasp can't handle the complex type code that serapeum generates, which declares that a variable is both a simple-vector
and simple-base-string
(or whatever other vector type) which is impossible (nil
type). Serapeum's code is valid, if weird, but Cleavir is choking on the impossibility anyway.
I think what's happening is that the schar
call is being transformed (via deftransform
) while dead, and recomputing the iblock flow order with dead iblocks around somehow screws things up. (In particular, commenting out the flow order recomputation and the interpolation in maybe-transform
eliminates the problem.) To really fix this I think it would be best not to do interpolation, or at least not in the middle of meta-evaluate. But that'll be a huge change in the architecture.
Describe the bug Compilation of the
serapeum
library via quicklisp fails with the following error:Expected behavior The library is compiled and loaded without the error above.
Actual behavior The following errors are printed before the final error (above) is raised: debug.txt
Code at issue
Context