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

issue CONSTANT-COLLAPSING, version 2



It's a bad idea for one proposal to rely so heavily on another.
A phrase like "if they are equivalent under the relationship
specified in issue CONSTANT-COMPILABLE-TYPES" is too vague for
this proposal to be submitted in isolation. You might as well
bundle the two together as one proposal since they're so 
intertwined anyway.

In particular, subtleties like whether the predicate described
in the other proposal is universally applicable affect this
proposal in dramatic ways. If, for example, that predicate is
not well-defined on some kinds of data (eg, circular structures),
then it's not clear whether this proposal implies that the compiler
will blow out in those ill-defined cases (since there's no mention
of whether the function is actually applied, or if it's just a
way for the user to know if collapsing might occur).

Further, you don't specify whether this is true of EVAL and COMPILE
or only of COMPILE-FILE. The stuff in CONSTANT-COLLAPSABLE-TYPES
may end up (if I get my way) being only about file compilation.
This proposal, however, does not claim to be only about file
compilation, so if we're not careful, we could end up having 
CONSTANT-COLLAPSABLE-TYPES end up applying to non-file compilation
by some strange implications arising from strange and unforseen
coupling effects of these proposals.

[It's getting to the point where in discussing any of these proposals
you have to be extremely clear about not only which proposals (and
versions) you're considering, but also which proposals (and versions)
you're not considering as part of the Universe. This is not a good
thing.]