public inbox for gcc-cvs-wwwdocs@sourceware.org
help / color / mirror / Atom feed
* gcc-wwwdocs branch master updated. c5dabd968113d7ca52d7e5f9a1febab5e3be1056
@ 2021-05-26 13:41 Iain Buclaw
0 siblings, 0 replies; only message in thread
From: Iain Buclaw @ 2021-05-26 13:41 UTC (permalink / raw)
To: gcc-cvs-wwwdocs
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gcc-wwwdocs".
The branch, master has been updated
via c5dabd968113d7ca52d7e5f9a1febab5e3be1056 (commit)
from 512805afa4a8f5db215a483b84347bbe7971da8a (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit c5dabd968113d7ca52d7e5f9a1febab5e3be1056
Author: Iain Buclaw <ibuclaw@gdcproject.org>
Date: Wed May 19 13:56:43 2021 +0200
wwwdocs: Add D front-end section for GCC 11 changes
diff --git a/htdocs/gcc-11/changes.html b/htdocs/gcc-11/changes.html
index 4bdae272..08082411 100644
--- a/htdocs/gcc-11/changes.html
+++ b/htdocs/gcc-11/changes.html
@@ -544,6 +544,196 @@ You may also want to check out our
</li>
</ul>
+<h3 id="d">D</h3>
+<ul>
+ <li>New features:
+ <ul>
+ <li>A new bottom type <code>typeof(*null)</code> has been added to
+ represent run-time errors and non-terminating functions. This also
+ introduces a new standard alias for the type named
+ <code>noreturn</code>, and is implicitly imported into every module.
+ </li>
+ <li>Printf-like and scanf-like functions are now detected by prefixing
+ them with <code>pragma(printf)</code> for printf-like functions or
+ <code>pragma(scanf)</code> for scanf-like functions.
+ </li>
+ <li>The <code>__traits()</code> expression now supports the extensions
+ <code>isDeprecated</code>, <code>isDisabled</code>,
+ <code>isFuture</code>, <code>isModule</code>, <code>isPackage</code>,
+ <code>child</code>, <code>isReturnOnStack</code>,
+ <code>isZeroInit</code>, <code>getTargetInfo</code>,
+ <code>getLocation</code>, <code>hasPostblit</code>,
+ <code>isCopyable</code>, <code>getVisibility</code>, and
+ <code>totype</code>.
+ </li>
+ <li>An expression-based contract syntax has been added to the
+ language.
+ </li>
+ <li>Function literals can now return a value by reference with the
+ <code>ref</code> keyword.
+ </li>
+ <li>A new syntax is available to declare aliases to function types using
+ the <code>alias</code> syntax based on the assignment operator.
+ </li>
+ <li>New types <code>__c_complex_float</code>,
+ <code>__c_complex_double</code>, <code>__c_complex_real</code>, and
+ <code>__c_wchar_t</code> have been added for interfacing with C
+ and C++ code, and are available from the <code>core.stdc.config</code>
+ module.
+ </li>
+ <li>User-defined attributes can now be used to annotate enum members,
+ alias declarations, and function parameters.
+ </li>
+ <li>Templates alias parameters can now be instantiated with basic types
+ such as <code>int</code> or <code>void function()</code>.
+ </li>
+ <li>The <code>mixin</code> construct can now be used as types in the form
+ <code>mixin(string) var</code>.
+ </li>
+ <li>The <code>mixin</code> construct can now take an argument list, same
+ as <code>pragma(msg)</code>.
+ </li>
+ </ul>
+ </li>
+ <li>New intrinsics:
+ <ul>
+ <li>Bitwise rotate intrinsics <code>core.bitop.rol</code> and
+ <code>core.bitop.ror</code> have been added.
+ </li>
+ <li>Byte swap intrinsic <code>core.bitop.byteswap</code> for swapping
+ bytes in a 2-byte <code>ushort</code> has been added.
+ </li>
+ <li>Math intrinsics available from <code>core.math</code> now have
+ overloads for <code>float</code> and <code>double</code> types.
+ <li>Volatile intrinsics <code>core.volatile.volatileLoad</code> and
+ <code>core.volatile.volatileStore</code> have been moved from the
+ <code>core.bitop</code> module.
+ </li>
+ </ul>
+ </li>
+ <li>New attributes:
+ <ul>
+ <li>The following GCC attributes are now recognized and available from
+ the <code>gcc.attributes</code> module with short-hand aliases for
+ convenience:
+ <ul>
+ <li><code>@attribute("alloc_size", arguments)</code> or
+ <code>@alloc_size(arguments)</code>.
+ </li>
+ <li><code>@attribute("always_inline")</code> or
+ <code>@always_inline</code>.
+ </li>
+ <li><code>@attribute("used")</code> or <code>@used</code>.</li>
+ <li><code>@attribute("optimize", arguments)</code> or
+ <code>@optimize(arguments)</code>.
+ </li>
+ <li><code>@attribute("cold")</code> or <code>@cold</code>.</li>
+ <li><code>@attribute("noplt")</code> or <code>@noplt</code>.</li>
+ <li><code>@attribute("target_clones", arguments)</code> or
+ <code>@target_clones(arguments)</code>.
+ </li>
+ <li><code>@attribute("no_icf")</code> or <code>@no_icf</code>.</li>
+ <li><code>@attribute("noipa")</code> or <code>@noipa</code>.</li>
+ <li><code>@attribute("symver", arguments)</code> or
+ <code>@symver(arguments)</code>.
+ </li>
+ </ul>
+ </li>
+ <li>New aliases have been added to <code>gcc.attributes</code> for
+ compatibility with <code>ldc.attributes</code>.
+ <ul>
+ <li>The <code>@allocSize(arguments)</code> attribute is the same as
+ <code>@alloc_size(arguments)</code>, but uses a 0-based index for
+ function arguments.
+ </li>
+ <li>The <code>@assumeUsed</code> attribute is an alias for
+ <code>@attribute("used")</code>.
+ </li>
+ <li>The <code>@fastmath</code> attribute is an alias for
+ <code>@optimize("Ofast")</code>.
+ </li>
+ <li>The <code>@naked</code> attribute is an alias for
+ <code>@attribute("naked")</code>. This attribute may not be
+ available on all targets.
+ </li>
+ <li>The <code>@restrict</code> attribute has been added to specify
+ that a function parameter is to be restrict-qualified in the C99
+ sense of the term.
+ </li>
+ <li>The <code>@optStrategy(strategy)</code> attribute is an alias for
+ <code>@optimize("O0")</code> when the <code>strategy</code> is
+ <code>"none"</code>, otherwise <code>@optimize("Os")</code> for the
+ <code>"optsize"</code> and <code>"minsize"</code> strategies.
+ </li>
+ <li>The <code>@polly</code> attribute is an alias for
+ <code>@optimize("loop-parallelize-all")</code>.
+ </li>
+ <li>The <code>@section(name)</code> attribute is an alias for
+ <code>@attribute("section", name)</code>.
+ </li>
+ <li>The <code>@target(arguments)</code> attribute is an alias for
+ <code>attribute("target", arguments)</code>.
+ </li>
+ <li>The <code>@weak</code> attribute is an alias for
+ <code>@attribute("weak")</code>.
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>New language options:
+ <ul>
+ <li><code>-fweak-templates</code>, added to control whether declarations
+ that can be defined in multiple objects should be emitted as weak
+ symbols. The default is to emit all symbols with extern linkage as
+ weak, unless the target lacks support for weak symbols.
+ </li>
+ <li><code>-Wdeprecated</code>, this option is now enabled by default.
+ </li>
+ <li><code>-Wextra</code>, this option now turns on all warnings that are
+ not part of the core D language front-end - <code>-Waddress</code>,
+ <code>-Wcast-result</code>, <code>-Wunknown-pragmas</code>.
+ </li>
+ <li><code>-Wvarargs</code>, added to turn on warnings about questionable
+ usage of the <code>va_start</code> intrinsic.
+ </li>
+ </ul>
+ </li>
+ <li>Deprecated and removed features:
+ <ul>
+ <li>Compiler-recognized attributes are now made available from the
+ <code>gcc.attributes</code> module, the former module
+ <code>gcc.attribute</code> has been deprecated and will be removed in
+ a future release.
+ </li>
+ <li>The <code>@attribute("alias")</code> attribute has been removed, as
+ it had been superseded by <code>pragma(mangle)</code>.
+ </li>
+ <li>The <code>@attribute("forceinline")</code> attribute has been removed
+ and renamed to <code>@always_inline</code>.
+ </li>
+ <li><code>__vector</code> types that are not supported in hardware are
+ now rejected at compile-time. Previously all vector types were
+ accepted by the compiler and emulated when target support was absent.
+ </li>
+ <li>The <code>extern(Pascal)</code> linkage attribute has been removed.
+ </li>
+ <li>The deprecation phase for <code>-ftransition=import</code> and
+ <code>-ftransition=checkimports</code> is finished. These switches no
+ longer have an effect and are now removed. Symbols that are not
+ visible in a particular scope will no longer be found by the compiler.
+ </li>
+ <li>It is now an error to use private variables selectively imported from
+ other modules. Due to a bug, some imported private members were
+ visible from other modules, violating the specification.
+ </li>
+ <li>The <code>-fweak</code> compiler switch has been removed, as it
+ existed only for testing.
+ </li>
+ </ul>
+ </li>
+</ul>
+
<h3 id="fortran">Fortran</h3>
<ul>
diff --git a/htdocs/gcc-12/changes.html b/htdocs/gcc-12/changes.html
index 53abf9ed..9fecc24b 100644
--- a/htdocs/gcc-12/changes.html
+++ b/htdocs/gcc-12/changes.html
@@ -69,6 +69,8 @@ a work-in-progress.</p>
<!-- <h3 id="cxx">C++</h3> -->
<!-- <h4 id="libstdcxx">Runtime Library (libstdc++)</h4> -->
+<!-- <h3 id="d">D</h3> -->
+
<!-- <h3 id="fortran">Fortran</h3> -->
<!-- <h3 id="go">Go</h3> -->
-----------------------------------------------------------------------
Summary of changes:
htdocs/gcc-11/changes.html | 190 +++++++++++++++++++++++++++++++++++++++++++++
htdocs/gcc-12/changes.html | 2 +
2 files changed, 192 insertions(+)
hooks/post-receive
--
gcc-wwwdocs
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2021-05-26 13:41 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-26 13:41 gcc-wwwdocs branch master updated. c5dabd968113d7ca52d7e5f9a1febab5e3be1056 Iain Buclaw
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).