reznikmm / adalib

Standard Ada library specification as defined in Reference Manual
20 stars 2 forks source link

Update to Ada 2012 #3

Closed mgrojo closed 3 years ago

mgrojo commented 3 years ago

Sources have been the Ada 2012 ARM and "Rationale for Ada 2012" by John Barnes for getting the additions and updates.

mgrojo commented 3 years ago

I plan to complete the Wikibook stub pages (see #2) up to Ada 2012, so I've updated a fork of your repository as the first step, and then I will reuse the scripts that I prepared for the first batch (up to Ada 2005).

In the new packages, I haven't completed the types to null record, since that adds nothing for the Wikibook and the result is not compilable, nevertheless, due to other undefined corners.

In my fork, I've also made two tags and releases for each version (#1), but I think the merge will not include those.

mgrojo commented 3 years ago

No, it was mostly manual copy&paste. Some even required taking the text from another package and manually writing the changes described by the ARM, like the Unbounded containers, which are described in terms of the corresponding regular container.

I only made this little script to clean up the source text:

#!/bin/bash

set -o nounset

sed -i 's%[0-9][0-9.]*/[0-9][0-9]*%%;
s/[0-9][0-9]*\.$//;
s/This paragraph was deleted\.//;
s/\.\.\.//;
s/implementation-defined/implementation_defined/g' $1

I looked for a source text of the ARM lacking the paragraph references, but didn't find one, don't know if it actually exists. But cleaning that up is easy, so it wasn't necessary.

reznikmm commented 3 years ago

There is ARM source (a mirror here), but extraction of Ada RTL isn't straightforward anyway.

mgrojo commented 3 years ago

Thanks for the reference. I'll take that into account if I update the Wikibook to Ada 202x, but as you say, it isn't straightforward and some packages will be defined in terms of others as well.