[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: issue DEFINING-MACROS-NON-TOP-LEVEL (Version 4)
- To: Gray@DSG.csc.ti.com
- Subject: Re: issue DEFINING-MACROS-NON-TOP-LEVEL (Version 4)
- From: Kent M Pitman <KMP@STONY-BROOK.SCRC.Symbolics.COM>
- Date: Tue, 27 Sep 88 12:34 EDT
- Cc: KMP@STONY-BROOK.SCRC.Symbolics.COM, sandra%defun@cs.utah.edu, CL-Compiler@SAIL.Stanford.edu
- In-reply-to: <2800366544-11782552@Kelvin>
Date: Tue, 27 Sep 88 10:35:44 CDT
From: David N Gray <Gray@DSG.csc.ti.com>
> * For the most part, it doesn't make any sense to do
> (DEFUN ... (DEFUN ...)) so it seems strange to encourage it.
I don't think it was the purpose of this proposal to encourage this. It
is made possible as a side effect of permitting more interesting things
such as (LET (...) (DEFUN ...)). The Explorer supports non-top-level
DEFUNs but issues a style warning on a DEFUN within a DEFUN saying that
"either there is a right parenthesis missing or you should be using FLET
instead." In other words, legal, but not encouraged.
I'm down on the idea of adding new functionality and then suggesting
people don't use it. I'm especially down on the idea of interesting new
code without intent to encourage it and without telling people that fact.
If it's not encouraged, the proposal should state that fact clearly.
And it should give a clear metric of exactly where the boundary is and why.
Nothing bugs me more than warnings about valid code. I often find myself
irritated even by "bound but not used" warnings. Although the IGNORE
declaration is present, nothing I know about in CLtL suggests that if
I fail to use it, I should be forced to endure such warnings. Some
implementations also warn about usages that are fine for portable CL
but are incompatible with local cultural norms. That bugs me, too, but
it seems to be so widespread that I can't make a credible case for it
being a bug.
I write something in one implementation and it works fine, but then move to
another and though it still works fine, it's unpleasant to compile because
I can't see the -real- warnings the compiler might have issued through
all the gratuitous ones. This was a serious problem when I was doing
Macsyma ports a while back.