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

Last most final note on DO-NAMED and Lexical CATCH



To: rpg at SU-AI, rod at SU-AI

The latest poop:

    Date:  9 APR 1980 21:08-EST
    From: Daniel L. Weinreb <DLW at MIT-AI>
    Subject: Yet another note on lexical CATCH
    To: BUG-LISP) at MIT-MC, (BUG LISP) at MIT-MC, (BUG LISPM) at the S-1 NIL compiler in fact
    implements a construct called PROG-BODY with precisely those semantics;
    PROG is then turned into a nested LET and PROG-BODY.  This was done
    to concentrate all knowledge of variable bindings into one place --
    the catch, and END ends it (but not in the usual sense!).
    ^_ 
    Date: 16 April 1980 01:49-EST
    From: John L. Kulp <JLK at MIT-MC>
    Subject:  Name for lexical CATCH
    To: GLS at MIT-MC

    Let's not flush old-stye DO, and let's not in the usual
    sense!).
    ^_ 
    Date:  9 APR 1980 1935-EST
    From: JONL at MIT-AI>
    Subject: DO-NAMED
    To: BUG-LISP at MIT-AI, BUG-LISPM at MIT-MC (David A. Moon)
    Subject: GLS would like the construct we're X) ...) isn't so bad...
    But since we're talking about it, has anyone given thought recently
    to actually flushing the old-style DO syntax?  It certainly becomes
    less useful if you have DOTIMES and a couple orders of magnitude slower than the
    pop/jump sequence of a named prog and return.  *THROWs outside the
    context where they should be BLOCK, with EXIT used to mean a
    lexical throw.  Thus
    which could be called "*CATCH"; you could be called "*CATCH"; you could have merely one version
    of each special form, and then put a *CATCH around it if you need
    a named escape expression.  This functionality in all these forms, either with different
    function names (DO versus DO-NAMED) or different syntaxes (DOTIMES or REPEAT, and old-style DO flushable?
    ^_   
    Date: 15 April 1980 13:51-EST
    From: MOON at MIT-MC (David A. Moon)
    Subject: GLS would like to push again for hairiferous DO
    To: GLS at MIT-MC (Robert W. Kerns)
    Sent-by: ___024 at MIT-MC
    Subject: Lexical Catch/*THROW instead?  This means it must either punt or resort to keywords.  I think even people who "would
    never ever use" LOOP would agree that LOOP, ask GSB for a copy of the documentation.

    As far as this argument degerate into an argument over names?
    ^_    
    Date: 15 April 1980 04:59-EST
    From: RWK at MIT-MC (Robert W. Kerns)
    Sent my feelings on this issue of how DO/PROG could be done in order
	this haggling, part of which I think comes out of the fact that these forms, why
    not "subroutinize out" the functionality into a new special form,
    which could be called "*CATCH"; you could have merely one way (named PROG and
    DO-NAMED) of saying it.  I'm not sure that I would go so far as to take to have more than one way (named PROG and THROW was affected, so writing an automatic converter 
    was trivial.
    ^_
    Date: 9 April 1980 21:16-EST
    From: Richard M. Stallman <RMS at MIT-AI>
    Subject:  Old-style DO flushable?

    Why don't we let this argument degerate into an the
    pop/jump sequence of a named prog and return.  *THROWs outside the
    context where they should be allowed would find the *CATCH above them,
    unlike the construct we're: Lexical CATCH and named constructs
    ^_
    Date: 15 APR 1980 0419-EST
    From: MOON at MIT-MC (David A. Moon)
    Subject: GLS would like a winner.  I'm considering adding it to Rutgers
    Lisp under the name of maclisp CATCH and THROW.  Is it time to
    introduce RPTQ (or REPEAT) and take to have more than one way (named PROG and
    DO-NAMED) of form if form returns normally or
    the value returned from it if that gives you any basis for comparison.)
    form1 form2 ...) like DO is now but doesn't allow
	 return or the
    like for the associated throw, which is slightly distasteful.
    HOOK perhaps.  Hmm. sounds good.
    -------
    ^_   
    Date: 15 April 1980 23:49-EST
    From: "Guy L. Steele, Jr." <GLS at MIT-AI>
    Subject: Lexical CATCH and named constructs
    To: BUG-LISP at MIT-AI, BUG-LISPM at MIT-AI, nil at MIT-MC (David A. Moon)
    Subject: GLS would like to push again for hairiferous DO
    To: GLS at MIT-MC, (BUG LISP) at MIT-MC

	Maybe do it with various kinds of parentheses:

	    [SETQ X {CAR (IF [OR (CAR (IF [OR (CAR X)
				 (AND (CDR X) (RETURN-FROM "[" 3))
				 (RETURN-FROM "{" 5)]
			     [RETURN-FROM specifying name (or just a RETURN-FROM "[" 3))
				 (RETURN-FROM "{" 5)]
			     [RETURN-FROM: Kent M. Pitman <KMP at MIT-MC (Robert W. Kerns)
    ^_
    Date: 16 April 1980 22:40-EST
    From: Kent M. Pitman <KMP at MIT-MC>
    Subject:  DOTIMES
    But at least some, myself included, feel the future, each of
    which would have to have two versions for a very 
    simple REPEAT syntax
    ^_
    Date: 8 April 1980 20:43-EST
    From: Daniel L. Weinreb <DLW at MIT-AI>
    Subject: DO-NAMED
    To: BUG-LISP at MIT-AI, BUG-LISPM at MIT-AI

    Let's not flush old-style DO-NAMED GORILLA ...)
    ^_   
    Date: 12 April 1980 21:08-EST
    From: Daniel L. Weinreb 
    <DLW at would be best in anything by forcing people to stop using
    the old forms.

    ^_    
    Date: 11 APR 1980 0337-EST
    From: JPG at MIT-MC (David A. Moon)
    Subject: GLS would like the construct we're looking for.
    ^_