Re: warn if not top-level?
- From: "Coby Beck" <cbeck@xxxxxxxxxxxxx>
- Date: Tue, 28 Jun 2005 17:13:00 GMT
"Chris Riesbeck" <criesbeck@xxxxxxxxx> wrote in message
news:criesbeck-B9D9F5.14095027062005@xxxxxxxxxxxxxxxxx
>I have a macro RUN-TESTS that runs test code. (Tests
> are defined with DEFINE-TEST.) To support tests on macros,
> test code is stored uncompiled and assembled when RUN-TESTS
> is expanded.
>
> I would like to warn users that code like
>
> (DEFUN MY-TESTS () (RUN-TESTS ...))
>
> may be a mistake, since the code saved in MY-TESTS will
> no longer be updated when tests are updated or macros
> are redefined.
>
> Is there any portable way to recognize the above situation?
>
> Or should I change RUN-TESTS to expand into code that
> collects code at run-time and calls EVAL?
I know "don't do it" is an unsatisfying answer to "how do I do it?" but that
is probably mine in this case. The
"redefined-macro-mean-recompile-all-uses" rule must be well learned, usually
through pain therapy. You might do someone a very small favor with all your
contortions but it won't help them with all the cases where the function
called by run-tests contains old macro expansions (and may simply delay the
learning of the important lesson). Everybody either knows or must soon
learn that when you redefine a macro, you must recompile everything that
uses it.
--
Coby Beck
(remove #\Space "coby 101 @ bigpond . com")
.
- Follow-Ups:
- Re: warn if not top-level?
- From: Chris Riesbeck
- Re: warn if not top-level?
- References:
- warn if not top-level?
- From: Chris Riesbeck
- warn if not top-level?
- Prev by Date: Re: I can't find which line is causing the error
- Next by Date: Re: I can't find which line is causing the error
- Previous by thread: Re: warn if not top-level?
- Next by thread: Re: warn if not top-level?
- Index(es):
Relevant Pages
|