From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 29549 invoked from network); 22 Jan 2021 04:50:26 -0000 Received: from 1ess.inri.net (216.126.196.35) by inbox.vuxu.org with ESMTPUTF8; 22 Jan 2021 04:50:26 -0000 Received: from MTA-11-4.privateemail.com ([198.54.127.104]) by 1ess; Thu Jan 21 23:21:03 -0500 2021 Received: from mta-11.privateemail.com (localhost [127.0.0.1]) by mta-11.privateemail.com (Postfix) with ESMTP id B9BFE800AA for <9front@9front.org>; Thu, 21 Jan 2021 23:20:55 -0500 (EST) Received: from localhost (unknown [10.20.151.227]) by mta-11.privateemail.com (Postfix) with ESMTPA id 959A080097 for <9front@9front.org>; Fri, 22 Jan 2021 04:20:54 +0000 (UTC) Date: Thu, 21 Jan 2021 20:20:43 -0800 From: Anthony Martin To: 9front@9front.org Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: X-Virus-Scanned: ClamAV using ClamSMTP Content-Transfer-Encoding: quoted-printable List-ID: <9front.9front.org> List-Help: X-Glyph: ➈ X-Bullshit: responsive reduce/map replication DOM database Subject: [9front] Re: ape modf infinite recursion Reply-To: 9front@9front.org Precedence: bulk Xiao-Yong Jin once said: > modf(ip=3D0x7fffffffe9e8,d=3D0xffffffffffffffff)+0x43 /sys/src/ape/lib/= ap/plan9/frexp.c:78 > modf(ip=3D0x7fffffffe9e8,d=3D0xffffffffffffffff)+0x43 /sys/src/ape/lib/= ap/plan9/frexp.c:78 > modf(ip=3D0x7fffffffe9e8,d=3D0xffffffffffffffff)+0x43 /sys/src/ape/lib/= ap/plan9/frexp.c:78 There was a fix to this on sources that was apparently never picked up by 9front. I've included it below but you can also find it in David du Colombier's mirror: https://github.com/0intro/plan9/commit/119c1d0c712512776162de1eca755006f0= 7fe91c Cheers, Anthony diff --git a/sys/src/ape/lib/ap/plan9/frexp.c b/sys/src/ape/lib/ap/plan9/= frexp.c --- a/sys/src/ape/lib/ap/plan9/frexp.c +++ b/sys/src/ape/lib/ap/plan9/frexp.c @@ -73,6 +73,16 @@ Cheat x; int e; + x.d =3D d; + e =3D (x.ms >> SHIFT) & MASK; + if(e =3D=3D MASK){ + *ip =3D d; + if(x.ls !=3D 0 || (x.ms & 0xfffffL) !=3D 0) /* NaN */ + return d; + /* =C2=B1Inf */ + x.ms &=3D 0x80000000L; + return x.d; + } if(d < 1) { if(d < 0) { f =3D modf(-d, ip); @@ -82,8 +92,7 @@ *ip =3D 0; return d; } - x.d =3D d; - e =3D ((x.ms >> SHIFT) & MASK) - BIAS; + e -=3D BIAS; if(e <=3D SHIFT+1) { x.ms &=3D ~(0x1fffffL >> e); x.ls =3D 0;