Quoting [EMAIL PROTECTED]:
The whole boot/shoe parser was a complete black box delivered whole by Bill Burge so I don't know the details.
OK. I assumed you did some editing there; that turns out to be an erroneous assumption.
It looks like ['SEQ, :l, ['exit,1,x]] := item tries to take a lisp s-expression and decompose it to extract the "l", inner list construct. The axiom SEQ seems to expect an (exit ....) s-expression as the last expression in the seq.
Yes, I understand what the code means, and how it should be handled by bootsys. My analysis led me do bfLET2 which was not doing the right thing because the code that should handle it was commented out and replaced by bpTrap() -- which is not OK, as bpTrap() concerns itself only with syntactic issues.
It may be that the convention changed and SEQ no longer required the last s-expression to be an exit call but I don't know for sure. The "1" might have been an error code? The s-expression this expects seems to look like: (exit 1 x) so maybe it was intended as an error code? If you can find the runtime implementation of exit that might give you a clue.
The problem is not that of exit. The problem is that of a literal appearing in the pattern and bfLET2 being confused. You can see that in the bfLET2 code, or you can test with something like this: % cat t.boot && bootsys -batch -eval '(boottran::boottoclc "t.boot")' foo t == ['BAR, 2, x] := t x ERROR IN LINE 2 ['BAR, 2, x] := t ...................| unexpected LET code is generated in this line 2 ERROR IN LINE 2 ['BAR, 2, x] := t ...................| syntax error ignored from line 2 ['BAR, 2, x] := t ...| ignored through line 2 ['BAR, 2, x] := t ...................| I've changed bfLET2 to handle allow literals in the patterns, currently algebra layer 13 is being built. I'll report when the build finishes. Thanks! -- Gaby _______________________________________________ Axiom-developer mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/axiom-developer
