FWIW, I haven't updated my trunk in a while:<br><br>Welcome to Clozure Common Lisp Version 1.7-dev-r14672M-trunk (DarwinX8664)!<br>? (let ((a 1)) (* 33554433 -1 a))<br>-33554433<br>? (let ((a 1)) (* 144115188075855873 a -1))<br>
-144115188075855873<br><br>So whatever happened happened post r14672.<br><br><br><div class="gmail_quote">On Wed, Jul 20, 2011 at 1:31 PM, Ron Garret <span dir="ltr"><<a href="mailto:ron@flownet.com">ron@flownet.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">The analogous bug exists in ccl32 as well:<br>
<br>
Welcome to Clozure Common Lisp Version 1.7-dev-r14832M-trunk (DarwinX8632)!<br>
? (let ((a 1)) (* 33554433 -1 a))<br>
33554432<br>
<br>
My bet is it's a bug in this assembly code:<br>
<br>
(define-x8664-vinsn multiply-fixnums (((dest :imm))<br>
((x :imm)<br>
(y :imm))<br>
((unboxed :s64)))<br>
((:pred =<br>
(:apply %hard-regspec-value x)<br>
(:apply %hard-regspec-value dest))<br>
(movq (:%q y) (:%q unboxed))<br>
(sarq (:$ub x8664::fixnumshift) (:%q unboxed))<br>
(imulq (:%q unboxed) (:%q dest)))<br>
((:and (:not (:pred =<br>
(:apply %hard-regspec-value x)<br>
(:apply %hard-regspec-value dest)))<br>
(:pred =<br>
(:apply %hard-regspec-value y)<br>
(:apply %hard-regspec-value dest)))<br>
(movq (:%q x) (:%q unboxed))<br>
(sarq (:$ub x8664::fixnumshift) (:%q unboxed))<br>
(imulq (:%q unboxed) (:%q dest)))<br>
((:and (:not (:pred =<br>
(:apply %hard-regspec-value x)<br>
(:apply %hard-regspec-value dest)))<br>
(:not (:pred =<br>
(:apply %hard-regspec-value y)<br>
(:apply %hard-regspec-value dest))))<br>
(movq (:%q y) (:%q dest))<br>
(movq (:%q x) (:%q unboxed))<br>
(sarq (:$ub x8664::fixnumshift) (:%q unboxed))<br>
(imulq (:%q unboxed) (:%q dest))))<br>
<br>
But this is beyond my ability to decipher.<br>
<font color="#888888"><br>
rg<br>
</font><div><div></div><div class="h5"><br>
On Jul 20, 2011, at 3:52 AM, Eric Marsden wrote:<br>
<br>
> Surprising!<br>
><br>
> ,----<br>
> | ? (lisp-implementation-version)<br>
> | "Version 1.7-dev-r14890M (LinuxX8664)"<br>
> | ? (let ((a 1)) (* 144115188075855873 a -1))<br>
> | 144115188075855872<br>
> `----<br>
><br>
> --<br>
> Eric Marsden<br>
><br>
> _______________________________________________<br>
> Openmcl-devel mailing list<br>
> <a href="mailto:Openmcl-devel@clozure.com">Openmcl-devel@clozure.com</a><br>
> <a href="http://clozure.com/mailman/listinfo/openmcl-devel" target="_blank">http://clozure.com/mailman/listinfo/openmcl-devel</a><br>
<br>
_______________________________________________<br>
Openmcl-devel mailing list<br>
<a href="mailto:Openmcl-devel@clozure.com">Openmcl-devel@clozure.com</a><br>
<a href="http://clozure.com/mailman/listinfo/openmcl-devel" target="_blank">http://clozure.com/mailman/listinfo/openmcl-devel</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Tom Emerson<br><a href="mailto:tremerson@gmail.com">tremerson@gmail.com</a><br><a href="http://treerex.blogspot.com/">http://treerex.blogspot.com/</a><br><br>