[Openmcl-devel] deftype bug?

Gary Byers gb at clozure.com
Thu Mar 18 02:03:13 PDT 2010

On Thu, 18 Mar 2010, Nikodemus Siivola wrote:

> On 18 March 2010 05:11, Gary Byers <gb at clozure.com> wrote:
>> It's being handled incorrectly; preserving the left-to-right/short-circuit
>> order of the AND specifier's subforms is only one of the things that goes
>> wrong there.
> Not to butt in here, but... I'm pretty sure
> left-to-right/short-circuit is not specified for AND/OR as a type
> specifiers. If someone can point to language in the spec requiring
> otherwise, I'm happy to be corrected.

I've looked for it before, and I'm not aware of any language in the
ANSI spec as written that specifies how intersection or union are
determined either, which seems to indicate that an implementation can
process the types in an AND or OR specifier in any order - whether
"reasonable" (by some definition of "reasonable") or not - and still be

> I believe that for portable code functions used in SATISFIES type
> specifiers should accept all types of arguments.

Yep.  One unfortunately can't count on any definition of reasonable
behavior across all implementations.

There's a (separate) bug in how Paul's example is handled, and I
personally think that it's reasonable for AND and OR type specifiers
to be processed (as if) with the left-to-right/short-circuit semantics
described in CLtL2 (and in widespread use for many years before that),
but you're obviously right that that part of CCL's misbehavior here isn't a
matter of non-compliance.

> Cheers,
> -- Nikodemus

More information about the Openmcl-devel mailing list