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

Re: (declare (type fixnum ---)) considered etc.



    Date: 21 Jul 86 19:02 PDT
    From: masinter.pa@Xerox.COM

    The fixnum declaration is one of the easiest things to remove.

    a) Implementations that support (or need) fixnum declarations can add
    them to their extension. This is clearly allowed by the spec, but it
    becomes something that is an implementation's private extension rather
    than part of the public, portable standard. The cost to implementors is
    zero.

Why not leave it, but put it in the SYSTEM: package?  That way, users
are reminded that they are doing something which is
implementation-dependent.  Isn't this what that package is for?  System
programmers, who need to refer to it, will probably be :USEing SYSTEM
anyway.  [Systems programming in Lisp?  Surely you jest! :-]

Are there any other symbols which ought to go in SYSTEM:?

    b) Users who have code that has fixnum declarations could add,
    trivially, a

    (deftype fixnum () ...)

Or import the symbol.

    c) The intent of fixnum declarations is reasonably supported by a much
    more portable expression where the range of a variable is declared
    explicitly rather than depending on implementation-dependent fixnum
    ranges.

I agree.  If you're going to use declarations at all, they might as well
have some real semantic meaning.  I understand that the major current
use is to encourage smart compilers on stupid hardware to generate
more efficient code, rather than to supply program-specific semantics. 
But we should encourage users to use more meaningful declarations.

    I don't know the source of the "certainly" in your message.