[Ecls-list] Bug: invalid type propagation with EQL types

Juan Jose Garcia-Ripoll juanjose.garciaripoll at gmail.com
Wed Jun 27 22:13:00 UTC 2012


On Tue, Jun 26, 2012 at 10:53 PM, Eric Marsden <eric.marsden at free.fr> wrote:

> ECL (Embeddable Common-Lisp) 12.5.1
> (git:6e1c455e5207b3592125c52a7ec39fa353bc8a9d)
>
> > (lambda (p3)
>    (declare (optimize (speed 1) (safety 0) (debug 2) (space 0))
>             (type (eql 4432671931722342132) p3))
>    (if nil "W" p3))
> #<bytecompiled-function 0000000003c2f1e0>
> > (funcall (compile nil *) 4432671931722342132)
> ;;; OPTIMIZE levels: Safety=2, Space=0, Speed=3, Debug=0
> ;;;
> ;;; End of Pass 1.
> 7052856


This has been fixed in CVS. Due to a misordering of IF conditions, ECL was
using ecl_fixnum and not ecl_to_long() for coercing objects to long types
(which is the C type that fits the number you passed).

Juanjo

-- 
Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)
http://juanjose.garciaripoll.googlepages.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20120628/8079a052/attachment.html>


More information about the ecl-devel mailing list