no constants please Tom Lord (23 Dec 2003 23:06 UTC)
Re: no constants please tb@xxxxxx (23 Dec 2003 23:10 UTC)
Re: no constants please Michael Sperber (26 Dec 2003 18:31 UTC)
Re: no constants please Tom Lord (26 Dec 2003 19:24 UTC)
Re: no constants please Michael Sperber (27 Dec 2003 16:17 UTC)
Re: no constants please Tom Lord (27 Dec 2003 18:55 UTC)

Re: no constants please Tom Lord 26 Dec 2003 19:48 UTC

    > From: Michael Sperber <xxxxxx@informatik.uni-tuebingen.de>

    > Tom> SCHEME_FALSE, SCHEME_TRUE, SCHEME_NULL, and
    > Tom> SCHEME_UNSPECIFIC should be functions, not constants:

    > Why?

    > Tom> [...] because, you never know, those constants might be
    > Tom> heap allocated.

    > That, AFAICS, doesn't mandate the above.

Perhaps it would be clearer if I said that those constants may be
_newly_ heap allocated.

It isn't GC-safe to return values which may be unprotected from GC.

If you were to use JNI-style allocated handles for everything then
those macros could be written as specified.  I think the drawbacks to
that approach outweigh this and other minor syntactic advantages,
however.

Anyway, why is it important to write them that way?  You can't use
them with == or !=.  Doing it your way they're just "different" from
every other value in the system apparently because of a non-portable
bias towards assuming that they are implemented as immediate values.

-t