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

Re: issue DEFINING-MACROS-NON-TOP-LEVEL (Version 4)



    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.