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.
patch.diff.gz
Description: application/gzip