[Openmcl-devel] Type-of and positive/negative integers
steve_nunez at yahoo.com
Thu Oct 24 00:13:53 PDT 2019
CCL (1.11) has most-positive-fixnum of 1152921504606846975SBCL (1.5.6) has 4611686018427387903
CL-USER> (subtypep 'fixnum 'integer)
so FIXNUM is a subtype of INTEGER, and it should be the type returned if the implementation is following the CltL2 guidelines if I'm understanding the type system correctly.
On Thursday, October 24, 2019, 2:45:24 PM GMT+8, Daniel Kochmański <daniel at turtleware.eu> wrote:
What is the most-positive-fixnum on your implementation? I would suspect
that it is 1152921504606846975, so (INTEGER 0 1152921504606846975) is a
subtype of FIXNUM, hence it is more specific type.
Steven Nunez writes:
> I've been stumped by trying to understand why:
> ? (type-of -3)
> ? (type-of 3)
> (INTEGER 0 1152921504606846975)
> return different types. I know that type-of is somewhat ill-defined, but in my reading of the spec, '3' should also be a fixnum, since it is between most-negative-fixnum and most-positive-fixnum. CLtL2 suggests that implementors return the most specific type, and that would also be fixnum. Steele later points out some flaws in the current specification of type-of. Both CCL and SBCL exhibit this behaviour.
> Two questions for the smart ones out there:
> - Is there something in the spec that I missed that makes type-of behave this way?
> - Is there a way to do a type checking assertion for fixnums that works with both positive and negative integers? I am trying to optimize some numerical functions.
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
Daniel Kochmański ;; aka jackdaniel | Przemyśl, Poland
TurtleWare - Daniel Kochmański | www.turtleware.eu
"Be the change that you wish to see in the world." - Mahatma Gandhi
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Openmcl-devel