X-Recipient: archive-cygwin AT delorie DOT com X-Spam-Check-By: sourceware.org Date: Wed, 21 Apr 2010 21:35:50 +0200 From: Corinna Vinschen To: cygwin AT cygwin DOT com Subject: Re: Cygwin Perl and -Duselongdouble Message-ID: <20100421193550.GA25471@calimero.vinschen.de> Reply-To: cygwin AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com References: <20070726121907 DOT GG19692 AT calimero DOT vinschen DOT de> <54421 DOT 64 DOT 81 DOT 167 DOT 122 DOT 1185478396 DOT squirrel AT webmail DOT efn DOT org> <4BCF501A DOT 7010809 AT x-ray DOT at> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <4BCF501A.7010809@x-ray.at> User-Agent: Mutt/1.5.20 (2009-06-14) Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com On Apr 21 21:20, Reini Urban wrote: > Yitzchak Scott-Thoennes schrieb: > >On Thu, July 26, 2007 5:19 am, Corinna Vinschen wrote: > >>On Jul 26 22:09, Sisyphus wrote: > >>>I'd like to have a perl on Cygwin built with -Duselongdouble, so I tried > > > >>>*** You requested the use of long doubles but you do not seem to have > >>>*** the following mathematical functions needed for long double support: > >>> *** sqrtl modfl frexpl > >> > >>Long double functions are not supported by newlib so far. There are a > >>couple of C99 functions not available in newlib. Volunteers implementing > >>these functions in a license compatible way (BSD, not GPL) in newlib are > >>always welcome. > > > >Note that changing perl to use long doubles is a binary incompatible change. > >So if anyone is going to jump on this, it would be nice to have it happen > >before the already incompatible 5.10 is out Septemberish. > > > >modfl isn't strictly necessary; perl will substitute aintl (a solaris > >flavor of truncl) + copysignl. > >And ilogbl + scalbnl can be used to emulate frexpl. > > I think I'll bite the bullet for the upcoming perl-5.12.0, for which > I already have an API change (-Uusemymalloc) so adding > -Duselongdouble can be easily added. > > I dissected long doubles for my parrot pbc_compat work last year so > I believe I can do modfl and frexpl without looking at GPL infected > code. > http://code.google.com/p/cygwin-rurban/source/browse/trunk/release/parrot/patches/r36819-tt308-more-pf_items.patch > > sqrtl is trivial in intel assembler: > > long double sqrtl(long double ld) { > long double _result; > asm ("fsqrt" : "=t" (_result) : "0"(ld)); > return _result; > } Adding real long double support to newlib would be extremly cool. If you look into http://cygwin.com/cygwin-api/std-notimpl.html you'll notice that the majority of the unimplemented functions are math functions, and most of them are the long double and the complex number functions. Basically: > These questions are for newlib later: > Can I keep such a newlib code to 12-byte intel long doubles or must > I add 16-byte long double support also? > Our gcc has -m128bit-long-double and the bastard -m96bit-long-double. It's ok to add 12 byte intel only for now. It's much better than no long double at all. > Does newlib needs papers? No. Just add a liberal copyright notice to all your files, 2-clause BSD or similar is fine. > I see a comment about --enable-newlib-hw-fp in > /usr/include/machine/ieeefp.h > I have no idea what this should be. Is there some hidden prior art? No idea, sorry. Better ask on the newlib list. Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple