This change implements Ada 2020 AI12-0208 which adds support for
infinite precision integers and rationals via new packages in the
Ada.Numerics.Big_Numbers hierarchy. A default implementation using
System.Generic_Bignum (made generic out of the existing System.Bignum)
is enabled everywhere, and an alternate implementation based on GMP
(libgnat/a-nbnbin__gmp.adb) is also provided, for now not enabled on any
configuration.

Tested on x86_64-pc-linux-gnu, committed on trunk

2019-12-16  Arnaud Charlet  <char...@adacore.com>

gcc/ada/

        * impunit.adb: Add a-nbnbin, a-nbnbre, a-nubinu to Ada 2020
        units.
        * Makefile.rtl: Enable new file.
        * libgnat/a-nbnbin.adb, libgnat/a-nbnbin.ads,
        libgnat/a-nbnbre.adb, libgnat/a-nbnbre.ads,
        libgnat/a-nubinu.ads: New files. Provide default standalone
        implementation of Ada.Numerics.Big_Numbers.Big_* based on
        System.Generic_Bignum.
        * libgnat/a-nbnbin__gmp.adb: Alternate implementation of
        Ada.Numerics.Big_Numbers.Big_Integers based on GMP. Not enabled
        for now.
        * libgnat/s-bignum.ads, libgnat/s-bignum.adb: Now a simple
        wrapper on top of s-genbig.ads.
        * libgnat/s-genbig.ads, libgnat/s-genbig.adb: New files, making
        s-bignum generic for reuse in Ada.Numerics.Big_Numbers.

Attachment: patch.diff.gz
Description: application/gzip

Reply via email to