axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Axiom-developer] Re: structural decomposition


From: gdr
Subject: [Axiom-developer] Re: structural decomposition
Date: Mon, 02 Apr 2007 14:03:09 -0500
User-agent: Internet Messaging Program (IMP) H3 (4.0.2)

Quoting address@hidden:

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








reply via email to

[Prev in Thread] Current Thread [Next in Thread]