unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Introducing 'safety' compilation parameter
@ 2024-05-07 10:37 Andrea Corallo
  2024-05-07 12:01 ` Alan Mackenzie
                   ` (3 more replies)
  0 siblings, 4 replies; 33+ messages in thread
From: Andrea Corallo @ 2024-05-07 10:37 UTC (permalink / raw)
  To: emacs-devel; +Cc: Eli Zaretskii, monnier, mattias.engdegard, stefankangas

Hello,

I've put in scratch/comp-safety a branch wich introduces 'safety' as
compilation parameter.

'safety' can be used similarly to 'native-comp-speed' both as a global
variable to influence compilation both as a function declaration.

'safety' justification of existence is ATM being able to control the
undefined behaviour being created when function type declaration added
by the user is not correct.

ATM we can have two values:

1 Emitted code is generated in a safe matter even if function types are
miss-declared.
0 Emitted code can misbehave or crash Emacs if function declarations are
not correct and the function is native compiled (@pxref{Native
Compilation}).

1 is ATM the default.

I didn't want to give safety a prefix (byte- or comp-) as I believe we
should extend safety in the future with a value to have the byte
compiler generates runtime type checks to verify the declred types.
OTOH this is creating a warning for a missing prefix, not sure what's
the best way to fix this (give it a prefix or silence the compiler if
possible).

Also I added some doc for the declaration, but didn't kwnow where in the
manual the documention for the variable should go as now it has effect
only for the native compiler.  Should I document it under
"Native-Compilation Variables" for now?

Thanks

  Andrea



^ permalink raw reply	[flat|nested] 33+ messages in thread

end of thread, other threads:[~2024-05-14  6:11 UTC | newest]

Thread overview: 33+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-07 10:37 Introducing 'safety' compilation parameter Andrea Corallo
2024-05-07 12:01 ` Alan Mackenzie
2024-05-07 13:15   ` Eli Zaretskii
2024-05-07 16:07     ` Drifting towards a statically typed Emacs Lisp. [Was: Introducing 'safety' compilation parameter] Alan Mackenzie
2024-05-07 17:06       ` Andrea Corallo
2024-05-07 23:37         ` Emanuel Berg
2024-05-07 18:00       ` Eli Zaretskii
2024-05-08  0:14         ` Emanuel Berg
2024-05-07 23:29       ` Emanuel Berg
2024-05-09 23:52       ` Richard Stallman
2024-05-10  6:31         ` Eli Zaretskii
2024-05-07 16:37   ` Introducing 'safety' compilation parameter Tomas Hlavaty
2024-05-07 16:54   ` Andrea Corallo
2024-05-07 23:42     ` Emanuel Berg
2024-05-07 14:56 ` Stefan Monnier
2024-05-07 16:13   ` Andrea Corallo
2024-05-10 17:58     ` Andrea Corallo
2024-05-13  2:29       ` Stefan Monnier
2024-05-13 18:59         ` Eli Zaretskii
2024-05-13 21:12           ` Andrea Corallo
2024-05-14  6:11             ` Eli Zaretskii
2024-05-09  8:40 ` Eli Zaretskii
2024-05-10  7:47   ` Andrea Corallo
2024-05-10 10:17     ` Eli Zaretskii
2024-05-10 11:42       ` Andrea Corallo
2024-05-10 15:10         ` Eli Zaretskii
2024-05-10 18:02   ` Andrea Corallo
2024-05-10 18:05     ` Andrea Corallo
2024-05-09  9:19 ` Gerd Möllmann
2024-05-10  7:58   ` Andrea Corallo
2024-05-10  8:09     ` Gerd Möllmann
2024-05-10  8:19       ` Andrea Corallo
2024-05-10 14:00     ` Stefan Monnier

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

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).