[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.