1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-06 22:41:06 -08:00
emacs/lisp/emacs-lisp
Mattias Engdegård 305744fdfc Define compiler macros for /=, atom and nlistp
Calls to these functions were previously rewritten in terms of other
functions both in the optimiser and during codegen, for no good reason.

This also resulted in poor diagnostics: wrong-arity calls to 'atom' and
'nlistp' produced doubled but slightly-different warnings, and no
warnings at all for '/='.

Using compiler macros fixes the problems.  The generated code is the same.

* lisp/emacs-lisp/bytecomp.el (byte-compile-negated)
(byte-compile-negation-optimizer): Replace with...
(bytecomp--define-negated): ...this compiler macro defining macro.
2025-10-30 12:12:35 +01:00
..
advice.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
avl-tree.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
backquote.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
backtrace.el backtrace.el: Remove redundant put and :group 2025-03-25 14:16:03 -04:00
benchmark.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
bindat.el Fix capitalization ELisp -> Elisp 2025-03-12 09:38:33 +08:00
byte-opt.el Define compiler macros for /=, atom and nlistp 2025-10-30 12:12:35 +01:00
byte-run.el (eval-and-compile): Preserve the surrounding lexical context 2025-10-18 17:45:07 -04:00
bytecomp.el Define compiler macros for /=, atom and nlistp 2025-10-30 12:12:35 +01:00
cconv.el Use 'any' and 'all' to simplify parts of the byte-compiler 2025-10-21 13:20:04 +02:00
chart.el Prefer incf to cl-incf in emacs-lisp/*.el 2025-02-23 00:38:22 +01:00
check-declare.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
checkdoc.el Teach checkdoc about (:this that) in cl-defun 2025-06-07 12:15:33 +03:00
cl-extra.el Make cl-random behave consistently for unusual arguments (bug#75105) 2025-06-20 06:09:24 +00:00
cl-generic.el Merge from origin/emacs-30 2025-08-16 13:35:00 +02:00
cl-indent.el Prefer incf to cl-incf in emacs-lisp/*.el 2025-02-23 00:38:22 +01:00
cl-lib.el * lisp/emacs-lisp/cl-lib.el (cl-copy-list): Not error-free, bug#79396 2025-09-07 17:47:51 +02:00
cl-macs.el (cl-defstruct): Use define-inline 2025-10-26 10:22:12 -04:00
cl-preloaded.el (cl--class-allparents): Fix bug#78989 2025-07-14 12:37:11 -04:00
cl-print.el vc-do-async-command: Ellipse later lines in multiline arguments 2025-04-12 10:05:57 +08:00
cl-seq.el (cl-nsubstitute): Fix regression in commit 8c8ff13e 2025-07-27 09:19:42 -04:00
comp-common.el ; Grammar fixes for "native-compiled" 2025-02-28 20:20:55 +01:00
comp-cstr.el Nativecomp don't materialize non-materializable objects (bug#78606) 2025-07-09 17:32:07 +02:00
comp-run.el Allow any thread to run native compilations 2025-09-02 18:06:37 +03:00
comp.el comp.el: Fix minor corner-case annoyances 2025-07-17 12:36:57 -04:00
compat.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
cond-star.el Fix Package name for cond-star 2025-03-10 07:45:21 -03:00
copyright.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
crm.el (completing-read-multiple): Set missing buffer-local variables 2025-08-02 12:29:23 -04:00
cursor-sensor.el (smerge-refine-shadow-cursor): New variable and face (bug#78806) 2025-06-23 00:00:38 -04:00
debug-early.el (debug--early): Avoid re-entering the debugger for the same error 2025-03-06 15:23:03 -05:00
debug.el (debug--early): Avoid re-entering the debugger for the same error 2025-03-06 15:23:03 -05:00
derived.el ; Use defvar-keymap in define-derived-mode 2025-03-18 00:33:32 +01:00
disass.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
easy-mmode.el (custom-initialize-after-file): New function 2025-10-22 17:12:10 -04:00
easymenu.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
edebug.el Add edebug-bounce-to-previous-value 2025-08-30 12:30:21 +03:00
eieio-base.el (eieio-backward-compatibility): Set to warn (bug#77612) 2025-04-17 00:04:04 -04:00
eieio-core.el Call eieio--class-* accessors only on eieio classes (bug#78786) 2025-07-09 15:20:14 +00:00
eieio-custom.el lisp/emacs-lisp/eieio-custom.el: Require eieio-base to silence warning 2025-04-07 00:10:42 -04:00
eieio-datadebug.el Delete redundant lambdas around unary functions 2025-02-11 19:04:00 +01:00
eieio-opt.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
eieio-speedbar.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
eieio.el ; Fix typo (wrong-type-argument not wrong-argument-type) 2025-08-21 04:06:44 +03:00
eldoc.el (custom-initialize-after-file): New function 2025-10-22 17:12:10 -04:00
elisp-scope.el ; elisp-scope.el: Improve face specification handling. 2025-10-29 17:20:03 +01:00
elp.el Prefer incf to cl-incf in emacs-lisp/*.el 2025-02-23 00:38:22 +01:00
ert-font-lock.el Clean up ert-font-lock error messages 2025-03-07 15:58:08 +01:00
ert-x.el (internal--c-header-file-path): Move to ffap.el 2025-02-28 17:03:21 -05:00
ert.el Catch all non-local exits when running ERT tests. 2025-08-18 11:24:29 +02:00
ewoc.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
faceup.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
find-func.el Merge from origin/emacs-30 2025-05-24 06:55:24 -04:00
float-sup.el Remove variable aliases obsolete since Emacs 23.2 2025-03-11 21:20:38 +01:00
generate-lisp-file.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
generator.el Implement new autoload macro expansion declare form 2025-08-10 18:14:23 -04:00
generic.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
gv.el Add new gv place definitions 2025-06-29 07:29:25 +03:00
helper.el defvar-keymap: New ':prefix t' abbreviation 2025-10-06 18:34:18 +01:00
hierarchy.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
icons.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
inline.el ; * lisp/emacs-lisp/inline.el (define-inline): Improve wording. 2025-10-26 20:30:23 +00:00
let-alist.el Merge from origin/emacs-30 2025-02-01 07:39:56 -05:00
lisp-mnt.el ; Delete redundant defvar 2025-02-11 08:42:24 +01:00
lisp-mode.el (lisp-imenu-generic-expression): Add oclosure-define 2025-06-03 16:03:27 -04:00
lisp.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
loaddefs-gen.el Revert "Fix generation of defvars defined by easy-mmode and company in loaddefs.el" 2025-09-16 10:50:14 -04:00
macroexp.el (macroexp--obsolete-warning): Prefer %s 2025-09-02 15:10:25 -04:00
map-ynp.el Fix 'save-some-buffers' when file name has embedded '%' 2025-06-07 16:35:42 +03:00
map.el Clarify that sequence/map functions don't alter their argument 2025-08-19 11:11:51 +02:00
memory-report.el Prefer incf to cl-incf in emacs-lisp/*.el 2025-02-23 00:38:22 +01:00
multisession.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
nadvice.el (advice--make-nadvice-docstring): Rename 2025-03-03 22:18:02 -05:00
oclosure.el cl-types: Integrate into CL-Lib 2025-05-05 23:18:56 -04:00
package-vc.el Expand DIR arg on `package-vc-install-from-checkout' 2025-07-01 22:04:45 +02:00
package.el Remove directory of deleted package from `load-path' 2025-10-18 12:10:58 +03:00
pcase.el Implement new autoload macro expansion declare form 2025-08-10 18:14:23 -04:00
pp.el Merge from origin/emacs-30 2025-06-21 06:26:10 -04:00
radix-tree.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
range.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
re-builder.el Fix capitalization ELisp -> Elisp 2025-03-12 09:38:33 +08:00
regexp-opt.el ; use modern sort calls in more places 2025-08-29 19:24:50 +02:00
regi.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
ring.el ; * lisp/emacs-lisp/ring.el (ring-convert-sequence-to-ring): Bug#79330. 2025-09-13 12:06:35 +03:00
rmc.el Delete redundant lambdas around unary functions 2025-02-11 19:04:00 +01:00
rx.el ; * lisp/emacs-lisp/rx.el (rx--foldl): Replace with 'all' and 'any'. 2025-10-20 12:55:19 +02:00
seq.el Clarify that sequence/map functions don't alter their argument 2025-08-19 11:11:51 +02:00
shadow.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
shortdoc.el * lisp/emacs-lisp/shortdoc.el: Add take-while, drop-while, any, all. 2025-10-21 13:19:08 +02:00
shorthands.el Allow use of \N{...} earlier to help fix bug#79353 2025-09-09 18:01:24 -04:00
smie.el lisp/emacs-lisp/smie.el (smie-config-show-indent): Tweak message 2025-03-18 08:42:42 -04:00
subr-x.el Merge from origin/emacs-30 2025-10-07 18:04:20 +01:00
syntax.el Prefer incf to cl-incf in emacs-lisp/*.el 2025-02-23 00:38:22 +01:00
tabulated-list.el Correctly document the format of tabulated-list-groups 2025-08-21 19:44:48 +03:00
tcover-ses.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
testcover.el Remove redundant constant nil argument to gethash 2025-03-29 14:59:09 +01:00
text-property-search.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
thunk.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
timeout.el ; * lisp/emacs-lisp/timeout.el: Bump version header to 2.1 2025-09-12 12:35:56 +02:00
timer-list.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
timer.el Reject non-nil non-number REPEAT in 'run-with-timer' 2025-08-16 10:53:12 +03:00
tq.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
trace.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
track-changes.el lisp/emacs-lisp/track-changes.el: Make GNU ELPA release 2025-03-12 01:17:34 +01:00
unsafep.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
vtable.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
warnings.el Merge from origin/emacs-30 2025-07-12 05:25:02 -04:00