Re: [Bug 2136852] [NEW] SB-VM::MOVE-WORD-ARG is not the name of a defined VOP.
Christophe Rhodes via Sbcl-devel <[email protected]>
| Newsgroups | gmane.lisp.steel-bank.devel |
|---|---|
| Message-ID | <[email protected]> |
There have been a number of recent reports like this one recently, where the compiler fails with: "Paul F. Dietz" <[email protected]> writes: > SB-VM::MOVE-WORD-ARG is not the name of a defined VOP. > [Condition of type SIMPLE-ERROR] > > Backtrace: > 0: (SB-C::VOP-PARSE-OR-LOSE SB-VM::MOVE-WORD-ARG) > 1: (SB-C::GET-OPERAND-INFO #<SB-C:TN-REF :TN #<SB-C:TN t1 :NORMAL> :WRITE-P NIL :VOP SB-VM::MOVE-WORD-ARG>) > 2: (SB-C::BAD-COERCE-ERROR #<SB-C:TN-REF :TN #<SB-C:TN t1 :NORMAL> :WRITE-P NIL :VOP SB-VM::MOVE-WORD-ARG>) > 3: (SB-C::EMIT-COERCE-VOP #<SB-C:TN-REF :TN #<SB-C:TN t1 :NORMAL> :WRITE-P NIL :VOP SB-VM::MOVE-WORD-ARG> #<SB-C:TN t2 :ALIAS to X!3> #(NIL NIL T NIL NIL NIL ...) #<SB-C::VOP :INFO SB-C:ALLOCATE-FRAME :A.. > [...] Thank you for fixing the compiler bugs that this reveals! However, there's a second problem, perhaps cosmetic, but I think we should look at it. What this is *meant* to do is provide a nice human-readable internal compiler error about why MOVE-WORD-ARG (or other vops, like CAR-EQ-IF-LISTP) was not usable in this situation -- some kind of mismatch between SCs, not being able to find MOVE vops to move between them. Instead, we're getting a note that we can't find the MOVE-WORD-ARG vop by name. Is this because we have started shaking out more than we used to? Judging by versions of SBCL I have lying around, this change is between 1 and 2 years old, so it's clearly not critical, but if this is the new normal we should probably change BAD-COERCE-ERROR not to do things that will always fail. Christophe