9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: erik quanstrom <quanstro@quanstro.net>
To: 9fans@9fans.net
Subject: Re: [9fans] store NaN() to memory traps on 386 (387)
Date: Mon,  2 May 2016 03:16:54 -0700	[thread overview]
Message-ID: <83332f423f24f1aa53cac38487b96d5d@mule> (raw)
In-Reply-To: <edc4b3708504ed165efca91446d0f903@felloff.net>

On Sat Apr 30 05:53:04 PDT 2016, cinap_lenrek@felloff.net wrote:
> with spews recent native awk port, we'v discovered an issue
> with strtod() that with the default FCR; which has FPINVALs
> traps enabled; the FMOVDP instruction that stores a NaN to memory
> traps. so it is not really possible to check for NaN result of
> strtod() unless you mask the traps.
>
> The APE port of awk got away with strtod() not recognizing
> "nan" at all, while the native plan9 libc version does.
>
> so the problem is that NaN() appears to be unusable with the
> default FCR on 387, and we'd like to have consistent behaviour
> under all archs when possible.
>
> right now, the 387 seems to be the single oddball, so one idea
> was to have NaN() return a quiet NaN for 387 only instead of a
> signaling one.
>
> On the other hand, one could argue that programs relying on
> NaN's have to explicitely disable FPINVAL traps on all archs.
>
> Any suggestions on how to resolve this?

i'll assume the context here is on initial conversion from input to fields.
vaguely the rule is anything that's properly representable as a number, is a number,
and anything else is a string.  since awk is well older than ieee, nan, inf,
one could easily argue they should count as strings.

so in my mind, this isn't an issue.  my solution would be if the string is nan,
then don't bother calling strtod.

the gawk maintainers while complaining about posix 2004, evidently agree,
providing --posix to disable filtering out nan and other strings from being
passed to strtod.

- erik



  parent reply	other threads:[~2016-05-02 10:16 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-30 12:40 cinap_lenrek
2016-04-30 23:47 ` cinap_lenrek
2016-05-02 10:16 ` erik quanstrom [this message]
2016-05-02 16:36   ` cinap_lenrek
2016-05-02 16:45     ` erik quanstrom
2016-05-02 19:05       ` cinap_lenrek
2016-05-02 19:17         ` erik quanstrom
2016-05-02 19:27           ` Ryan Gonzalez
2016-05-02 23:23             ` erik quanstrom
2016-05-03  1:13               ` cinap_lenrek
2016-05-02 19:49           ` cinap_lenrek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=83332f423f24f1aa53cac38487b96d5d@mule \
    --to=quanstro@quanstro.net \
    --cc=9fans@9fans.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).