diff options
Diffstat (limited to 'doc/lispref/internals.texi')
-rw-r--r-- | doc/lispref/internals.texi | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/doc/lispref/internals.texi b/doc/lispref/internals.texi index 333a5897837..a5480a9bf8a 100644 --- a/doc/lispref/internals.texi +++ b/doc/lispref/internals.texi @@ -735,14 +735,15 @@ Emacs session. @section C Dialect @cindex C programming language -The C part of Emacs is portable to C99 or later: C11-specific features such -as @samp{<stdalign.h>} and @samp{_Noreturn} are not used without a check, +The C part of Emacs is portable to C99 or later: later C features such +as @samp{<stdckdint.h>} and @samp{[[noreturn]]} are not used without a check, typically at configuration time, and the Emacs build procedure -provides a substitute implementation if necessary. Some C11 features, +provides a substitute implementation if necessary. Some later features, such as anonymous structures and unions, are too difficult to emulate, so they are avoided entirely. -At some point in the future the base C dialect will no doubt change to C11. +At some point in the future the base C dialect will no doubt change to +something later than C99. @node Writing Emacs Primitives @section Writing Emacs Primitives @@ -897,15 +898,17 @@ Currently, only the following attributes are recognized: @table @code @item noreturn Declares the C function as one that never returns. This corresponds -to the C11 keyword @code{_Noreturn} and to @w{@code{__attribute__ -((__noreturn__))}} attribute of GCC (@pxref{Function Attributes,,, -gcc, Using the GNU Compiler Collection}). +to C23's @code{[[noreturn]]}, to C11's @code{_Noreturn}, and to GCC's +@w{@code{__attribute__ ((__noreturn__))}} (@pxref{Function +Attributes,,, gcc, Using the GNU Compiler Collection}). (Internally, +Emacs's own C code uses @code{_Noreturn} as it can be defined as a +macro on C platforms that do not support it.) @item const Declares that the function does not examine any values except its arguments, and has no effects except the return value. This -corresponds to @w{@code{__attribute__ ((__const__))}} attribute of -GCC. +corresponds to C23's @code{[[unsequenced]]} and to GCC's +@w{@code{__attribute__ ((__const__))}}. @item noinline This corresponds to @w{@code{__attribute__ ((__noinline__))}} @@ -1573,7 +1576,7 @@ return values from module functions. For this purpose, the module Emacs Lisp objects communicated via the @acronym{API}; it is the functional equivalent of the @code{Lisp_Object} type used in Emacs C primitives (@pxref{Writing Emacs Primitives}). This section describes -the parts of the module @acronym{API} that allow to create +the parts of the module @acronym{API} that allow creating @code{emacs_value} objects corresponding to basic Lisp data types, and how to access from C data in @code{emacs_value} objects that correspond to Lisp objects. @@ -2525,7 +2528,6 @@ when the buffer is not current. @item mode_line_format @itemx header_line_format -@itemx case_fold_search @itemx tab_width @itemx fill_column @itemx left_margin |