From: Fernando Oleo Blanco <irvise...@irvise.xyz> Co-authored-by: Marc Poulhiès <poulh...@adacore.com> --- Thanks Fernando,
I've pushed the attached changes. Marc htdocs/gcc-15/changes.html | 112 ++++++++++++++++++++++++++++++++++++- 1 file changed, 111 insertions(+), 1 deletion(-) diff --git a/htdocs/gcc-15/changes.html b/htdocs/gcc-15/changes.html index 37da4c26..8220d130 100644 --- a/htdocs/gcc-15/changes.html +++ b/htdocs/gcc-15/changes.html @@ -149,7 +149,117 @@ a work-in-progress.</p> </li> </ul> -<!-- <h3 id="ada">Ada</h3> --> +<h3 id="ada">Ada</h3> +<ul> + <li> + GNAT now allows + the <a href="https://gcc.gnu.org/onlinedocs/gnat_rm/Attribute-Round.html#index-Round"><code>'Round</code></a> + attribute also for fixed point types. + </li> + <li> + The new GNAT + attribute <a href="https://gcc.gnu.org/onlinedocs/gnat_rm/Attribute-Super.html#index-Super"><code>'Super</code></a> + can be applied to objects of tagged types in order to obtain a view + conversion to the most immediate specific parent type. + </li> + <li> + <a href="https://gcc.gnu.org/onlinedocs/gnat_rm/Mutably-Tagged-Types-with-Size_2019Class-Aspect.html">Mutably <code>tagged</code> types</a> with a defined size are now available + through the use of <code>Size'Class</code>. This allows defining a maximum + size for the tagged. Example: +<pre> +type Base is tagged null record with Size'Class => 16 * 8; + -- Size in bits (128 bits, or 16 bytes) + +type Derived_Type is new Base with record Data_Field : Integer; end record; + -- ERROR if Derived_Type exceeds 16 bytes +</pre> + </li> + <li> + New <a href="https://gcc.gnu.org/onlinedocs/gnat_rm/Generalized-Finalization.html"><code>Finalizable</code> + aspect</a>. It is a GNAT language extension which serves as a lightweight + alternative to <code>controlled</code> types. They have been designed with + provability in mind. +<pre> +type Ctrl is record + Id : Natural := 0; +end record with Finalizable => (Initialize => Initialize, + Adjust => Adjust, + Finalize => Finalize, + Relaxed_Finalization => True); + +procedure Adjust (Obj : in out Ctrl); +procedure Finalize (Obj : in out Ctrl); +procedure Initialize (Obj : in out Ctrl); +</pre> + </li> + <li> + The + aspect <a href="https://gcc.gnu.org/onlinedocs/gnat_rm/No_005fRaise-aspect.html"><code>No_Raise</code></a> + has been added, it is the same as <code>Pragma No_Raise</code>. + </li> + <li> + The + aspect <a href="https://gcc.gnu.org/onlinedocs/gnat_rm/External_005fInitialization-Aspect.html"><code>External_Initialization</code></a> + has been added, it allows for data to be initialized using an external file + which is loaded during compilation time. + </li> + <li> + The + aspect <a href="https://gcc.gnu.org/onlinedocs/gnat_rm/Pragma-Exit_005fCases.html#index-Exit_005fCases"><code>Exit_Cases</code></a> + has been added to annotate functions and procedures with side effects in + SPARK + (see <a href="https://docs.adacore.com/spark2014-docs/html/lrm/subprograms.html#program-exit-aspects">SPARK + reference manual</a>) . It can be used to partition the input state into a + list of cases and specify, for each case, how the subprogram is allowed to + terminate. + </li> + <li> + Language extensions are enabled through the use of <code>pragma + Extensions_Allowed (On | Off | All_Extensions);</code> which has had its + syntax changed. An argument of <code>All_Extensions</code> has the same + effect as <code>On</code>, except + that <a href="https://gcc.gnu.org/onlinedocs/gnat_rm/Experimental-Language-Extensions.html">some + extra experimental extensions are enabled</a>. + </li> + <li> + Several new compilation flags have been added, some examples + include <a href="https://gcc.gnu.org/onlinedocs/gnat_ugn/Info-message-Control.html"><code>-gnatis</code></a>, <a href="https://gcc.gnu.org/onlinedocs/gnat_ugn/Warning-Message-Control.html#index--gnatw_002en-_0028gcc_0029"><code>-gnatw.n</code></a>, <a href="https://gcc.gnu.org/onlinedocs/gnat_ugn/Warning-Message-Control.html#index--gnatw_005fl-_0028gcc_0029"><code>-gnatw_l</code></a> + and <a href="https://gcc.gnu.org/onlinedocs/gnat_ugn/Warning-Message-Control.html#index--gnatw_002ev-_0028gcc_0029"><code>-gnatw.v</code></a>. + The internal debugging utilities for the compiler have also received a lot + of new options, please refer + to <a href="https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/ada/debug.adb"><code>debug.adb</code></a> + for more information. + </li> + <li> + The diagnostics code has seen a major refactor, it now supports the sarif + format <code>-fdiagnostics-format=sarif-file</code> among other + improvements. More changes are expected in following releases. + </li> + <li> + <code>System.Image_A</code> has now printing routines to output address + information in HEX. + </li> + <li> + Several program units have had contracts added to them and SPARK analysis + has been enabled. + </li> + <li> + Support for FreeBSD, Android and aarch64 targets has been improved. + </li> + <li> + Task priorities on MinGW have been reworked. + </li> + <li> + The documentation has been rearanged for clarity, mainly the sections + related to tasking and platform dependent information. + </li> + <li> + REMOVAL: <code>Generic_Formal_Hash_Table</code> has been removed, + the <a href="https://docs.adacore.com/spark2014-docs/html/ug/en/source/spark_libraries.html#">SPARK + Library</a> is recommended as a substitute. + </li> +</ul> + <h3 id="c-family">C family</h3> <ul> -- 2.43.0