RFC: std.json sucessor
via Digitalmars-d
digitalmars-d at puremagic.com
Mon Aug 25 06:23:44 PDT 2014
On Monday, 25 August 2014 at 13:07:08 UTC, Don wrote:
> practice. So a JSON parser should at least be able to lex them.
>
> ie this should be parsable:
>
> {"foo": NaN, "bar": Infinity, "baz": -Infinity}
>
> You should also put tests in for what happens when you pass NaN
> or infinity to toJSON. It shouldn't silently generate invalid
> JSON.
I believe you are allowed to use very high exponents, though.
Like: 1E999 . So you need to decide if those should be mapped to
+Infinity or to the max value…
NaN also come in two forms with differing semantics:
signalling(NaNs) and quiet (NaN). NaN is used for 0/0 and
sqrt(-1), but NaNs is used for illegal values and failure.
For some reason D does not seem to support this aspect of
IEEE754? I cannot find ".nans" listed on the page
http://dlang.org/property.html
The distinction is important when you do conditional branching.
With NaNs you might not be able to figure out which branch to
take since you might have missed out on a real value, with NaN
you got the value (which is known to be not real) and you might
be able to branch.
More information about the Digitalmars-d
mailing list