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

Being able to get list of pending CATCH tags?



    Date: 21 November 1984 14:19-EST
    From: Kent M Pitman <KMP @ MIT-MC>
    Subject:  Stability?

        Sure, the compiler could easily figure out where an EQ-Throw could
        be used.  I'll go and fix our implementation if everyone thinks I
        should.  But that's not my idea of a stable language
        specification.

    Why not. No working program will break? Formerly undefined programs will 
    become well-defined. There is nothing even remotely unstable about such a
    change. All changes should be so stable!

Hey, you're thinking only about the users on a system with perfect
implementators who can keep up with all the changes without breaking
anything, not the poor implementators who must be so perfect. More than
likely, after each incompatible change in the spec there'll be a period of
years when not all implementations have caught up. If changes occur more
often than that, users will never obtain a working up-to-date
implementation, and thus despite a common latest-standard at any moment
there will be no implementations satisfying any common standard. I think
your above statement should be watered down considerably.

	Hey, why not have Throw take a keyword argument for the test to
        use?
This reminds me of a serious deficiency in USLISP and PSL and I think
Common-LISP too. There's no way for the user in a break loop to get a
listing of pending CATCH tags and thus have some idea which one to throw
to in order to unwind cleanly from a system-detected error. For example,
catch tags in a database update application might include NORMAL-RETURN
and ABORT-CATCH, where the latter would enter a menu that offers unwinding
the update or closing files in their present state or rolling back to a
checkpoint. The poor user might not have time to search the documentation
to find the name of the catch tag. Surely being able to ask
(PENDING-CATCH-TAGS) from the break package would be useful. I propose
Common LISP include such a way of getting a list of currently pending
catch tags by evaluation of some form like that.

Please correct me if CL already provides this facility.
-------