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

Memorial Day Ballot

    Date: Monday, 30 May 1983  08:36-EDT
    From: Martin.Griss <Griss at UTAH-20>
    To:   Fahlman
    cc:   Griss at UTAH-20
    Re:   Memorial Day Ballot

    Two things concern me:
    	a) CATCH-ALL. If flushed, how do we trap a THROW and determine
    what its TAG was, so that we can write fancy handlers. We use this in PSL
    to trap and resignal Errors etc in the Break loop and some compiler loops.

The manual no longer talks about handlers, but let's assume that you
want something similar to what was described in Laser, perhaps with
extra hair to classify error types heirarchically and catch whole
classes of them at once.  You almost certainly want to allow for a thing
that will catch ALL errors and do some specified thing -- throw to the
top-level or whatever.  It seems to me that there needs to be a piece of
machinery to keep track of the current condition-to-handler mapping, and
to invoke the proper handler code for each condition that might be
signalled.  This might be as simple as an A-list, with (T .
universal-handler) being the "catch-all-errors" widget.  In any event,
this mapping determines the proper handler, the system invokes it IN THE
DYNAMIC CONTEXT OF THE ERROR, and it is the handler that does any
throwing.  If throw/catch/catch-all is used to do the mapping, then
critical context is lost before the handler ever gets a crack at it.  So
I don't think that this is a place where CATCH-ALL is going to be

    	b) Name vector for DEFSTRUCT suport. Will this actually be a
    diffeernt TYPE?

I don't think named vectors would be a full-fledged type, unless you
define a type to be anything you can test for.  All we are suggesting is
that there would be a :named keyword to create these critters and a
NAMED-P test to see if this is what you have.  This would be completely
orthogonal to SIMPLE and all of the other hairy properties that vectors
and arrays can have.

-- Scott