On Tue, Jun 26, 2012 at 10:53 PM, Eric Marsden <eric.marsden@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