Re: 3 type system problems in 0.13.1

Gary Byers <[email protected]> Sun, 10 Nov 2002 02:35:44 -0700 (MST)
Newsgroups gmane.lisp.openmcl.bugs
Message-ID <[email protected]>

On Sun, 10 Nov 2002, Timothy Moore wrote:

> Welcome to OpenMCL Version (Beta: Darwin) 0.13.1!
> ? (upgraded-array-element-type 'real)
>  > Error: value (0 . 0) is not of the expected type INTEGER.
>  > While executing: ASH
>  > Type :POP to abort.
> Type :? for other options.
> 1 > :pop
>
> ? (make-array 10 :element-type 'real)
>  > Error: Unknown element-type REAL
>  > While executing: CCL::MAKE-ARRAY-1
>  > Type :POP to abort.
> Type :? for other options.
> 1 > :pop
>

The first two seem to be symptoms of the same bug (the function
CCL::ELEMENT-TYPE-SUBTYPE should never return NIL) and is hopefully
fixed by the enclosed patch.

> ? (typep '(1 . 2) '(cons integer integer))
>  > Error: Unknown type specifier: (CONS INTEGER INTEGER)
>  > While executing: CCL::%%TYPEP
>  > Type :POP to abort.
> Type :? for other options.
> 1 >

Making (CONS cartype cdrtype) be a known type specifier is a bit more
work, unfortunately.

Just to bring the total number of reported bugs back up to 3 here:
UPGRADED-ARRAY-ELEMENT-TYPE should accept (and, in OpenMCL's case, ignore)
an optional ENV argument.

>
> Tim
>
>
> _______________________________________________
> bug-openmcl mailing list
> [email protected]
> http://clozure.com/cgi-bin/mailman/listinfo/bug-openmcl
>
>
real-element-type-subtype.diff (text/plain, 703 B)
Index: level-0/l0-array.lisp
===================================================================
RCS file: /usr/local/publiccvs/ccl/level-0/l0-array.lisp,v
retrieving revision 1.5
diff -u -r1.5 l0-array.lisp
--- level-0/l0-array.lisp	24 Jul 2002 02:03:24 -0000	1.5
+++ level-0/l0-array.lisp	10 Nov 2002 09:27:09 -0000
@@ -533,7 +533,8 @@
 	  (case (numeric-ctype-format ctype)
 	    (double-float arch::subtag-double-float-vector)
 	    (short-float arch::subtag-single-float-vector)
-	    (t arch::subtag-simple-vector)))))
+	    (t arch::subtag-simple-vector)))
+         (t arch::subtag-simple-vector)))
       (t arch::subtag-simple-vector))))
 
 (defun %set-simple-array-p (array)