[Haskell-cafe] [ANN] FloatingHex: Hexadecimal floats (quasiquoter and pretty-printer)
Levent Erkok
erkokl at gmail.com
Tue Jan 17 23:29:56 UTC 2017
Thanks Iavor.. I should've indeed done that, but instead I directly opened
a GHC feature request: http://ghc.haskell.org/trac/ghc/ticket/13126. Old
habits die hard.
I've since turned it into a proper proposal:
https://github.com/LeventErkok/ghc-proposals/blob/hexFloats/proposals/0000-hexFloats.rst
However, I was *not* able to add the label "Under discussion" as suggested
by the instructions in:
https://github.com/ghc-proposals/ghc-proposals/blob/master/proposal-submission.rst
I didn't see a way of doing that in the pull-request. Perhaps a guru can
fix that?
Thanks,
-Levent.
On Tue, Jan 17, 2017 at 11:38 AM, Iavor Diatchki <iavor.diatchki at gmail.com>
wrote:
> Nicely done! I agree that this would be much nicer to just implement
> directly in GHC (and eventually add to the standard). Would you like to
> write it up as GHC proposal?
>
> Here is info on how to do that:
> https://github.com/ghc-proposals/ghc-proposals
>
> -Iavor
>
> On Sat, Jan 14, 2017 at 3:06 PM, Levent Erkok <erkokl at gmail.com> wrote:
>
>> Quick update: version 0.2 of FloatingHex is now on hackage (
>> http://hackage.haskell.org/package/FloatingHex) which fixes a few
>> glitches and makes the pretty-printer compatible with C's %a modifier. This
>> brings the support on par with that in C/C++. The quasi-quoter is called
>> qf, and the pretty-printer is called showHFloat, following the naming of
>> other float-printers already available.
>>
>> On Sat, Jan 14, 2017 at 1:10 AM, Levent Erkok <erkokl at gmail.com> wrote:
>>
>>> FloatingHex (http://hackage.haskell.org/package/FloatingHex) is a
>>> simple package that implement hexadecimal notation for floating point
>>> numbers, as described in p57-58 of http://www.open-std.org/jtc
>>> 1/sc22/wg14/www/docs/n1256.pdf
>>>
>>> The package provides a quasi-quoter for hexadecimal floats: hf, and a
>>> pretty-printer for floats to show them in this notation: showFFloat. (Note
>>> that the latter is not 100% compatible with C's %a modifier for printf, but
>>> it does render a faithful representation of its input.)
>>>
>>> Hex-floats are useful as they allow writing floating-point constants
>>> without any loss of precision, while remaining human readable. For
>>> instance, the float 2 is written as 0x1p1. (With the quasiquoter, the
>>> syntax is [hf|0x1p1|].) This representation is to be preferred over decimal
>>> rendering where loss of precision can be a problem: Note that not all
>>> floating point numbers have a terminating decimal representation as
>>> currently required by the Haskell syntax.
>>>
>>> It would be nice if Haskell itself allowed for such literals in the
>>> language specs itself, following the recent changes to other language
>>> standards. (Again, see p57-58 of http://www.open-std.org/jtc
>>> 1/sc22/wg14/www/docs/n1256.pdf for the new C standard.) In the mean
>>> time, I hope FloatingHex library will provide a workaround for
>>> the numerophilias amongst us.
>>>
>>> Bug reports and improvements always welcome!
>>>
>>> Cheers,
>>>
>>> -Levent.
>>>
>>>
>>>
>>
>> _______________________________________________
>> Haskell-Cafe mailing list
>> To (un)subscribe, modify options or view archives go to:
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
>> Only members subscribed via the mailman list are allowed to post.
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20170117/caafac46/attachment.html>
More information about the Haskell-Cafe
mailing list