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

pig/mdebug in 2.7



    Date: Thu, 1 Sep 83 15:31:39 EDT
    From: Chris Riesbeck <Riesbeck>
    To:   T-Bugs

    PIG and MDEBUG are not in 2.7.  Are they in some file that can be
    loaded?  I believe some release text said that CRAWL's M command
    obviated the need for MDEBUG, but I don't see how, since I usually
    want to test different invocations of some new macro and

	(CRAWL thing1) -- M -- Q -- (CRAWL thing2) -- M -- Q

    is nowhere near as simple as

	(MDEBUG) -- thing1 -- thing2 -- ... Q

    MDEBUG I can write myself if need be.  What's involved in defining PIG?

Try doing

    (CRAWL) -- C 'thing1 M -- C 'thing2 M -- Q

Five more characters (C, space, quote, space, M) per thing entered are
required than in MDEBUG.  If people think this is out of the question, I
can reinstate MDEBUG.  However, I think CRAWL gives you a lot more
flexibility.  For example, you can iteratively expand using M commands
(like the ** hack in MDEBUG), and evaluate at any point by saying "E
*OBJ*" (or "C *OBJ*" to crawl the resulting value).  You can macroexpand
subforms by using "A CADDR" or something like that to get at the part of
interest and then doing M.  And so on.

I think MDEBUG and PIG are both still lurking in the implementation env.
MDEBUG is a procedure, PIG is a macro.  Exporting macros is possible but
painful.

  (DEFINE MDEBUG (*VALUE *T-IMPLEMENTATION-ENV* 'MDEBUG))

  (SET (SYNTAX-TABLE-ENTRY (ENV-SYNTAX-TABLE *SCRATCH-ENV*) 'PIG)
       (SYNTAX-TABLE-ENTRY (ENV-SYNTAX-TABLE *T-IMPLEMENTATION-ENV*) 'PIG))

If you did a lot of macro movement you could of course invent an
abbreviation.

Maybe PIG is useful enough to export, but if so it should be exported
under a better name.