1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-03 10:31:37 -08:00
emacs/test/lisp
Stefan Kangas 8b659313b8 Lift widget functions from C to Lisp
In the mid-1990s, these functions were moved from Lisp to C to
"improve performance".  However, Moore's Law, and perhaps other
improvements too, has made this rationale irrelevant.

On this machine, with --native-compilation=no, I observed only a
slight ~4% performance difference.  For example, displaying a buffer
full of widgets (e.g., 'M-x customize RET browse-url RET') takes 4ms
here, meaning the performance gap is under 0.1ms.  Even on less
powerful machines, this difference would remain imperceptible.  Given
this, let's lift these functions back to to Lisp, which offers the
usual benefits.

We already have solid test coverage, but let's add a more focused test
for 'widget-get' and 'widget-put' to be thorough.

* lisp/wid-edit.el (widget-put, widget-get, widget-apply): Move to
Lisp from...
* src/fns.c (Fwidget_put, Fwidget_get, Fwidget_apply): ...here.
(syms_of_fns): Remove defsubrs for the above functions.
* test/lisp/wid-edit-tests.el
(widget-test-editable-field-widget-get/put): New test.
2025-02-28 18:32:28 +01:00
..
align-resources
auth-source-resources
bookmark-resources
calc Update copyright year to 2025 2025-01-02 18:39:42 +01:00
calendar Prevent a todo-mode test from running with 'make check' 2025-02-27 12:13:26 +01:00
cedet Update copyright year to 2025 2025-01-02 18:39:42 +01:00
custom-resources
dabbrev-resources Update copyright year to 2025 2025-01-02 18:39:42 +01:00
dired-resources/insert-directory
emacs-lisp Make define-global-minor-mode alias obsolete 2025-02-26 06:37:52 +01:00
emulation Update copyright year to 2025 2025-01-02 18:39:42 +01:00
epg-resources
erc ; Tag all erc-nicks-track-faces tests as :unstable 2025-02-24 15:06:16 -08:00
eshell Port Eshell tests to Android 2025-02-26 20:58:01 +08:00
faces-resources Update copyright year to 2025 2025-01-02 18:39:42 +01:00
files-resources
gnus Update copyright year to 2025 2025-01-02 18:39:42 +01:00
hfy-cmap-resources
image Update copyright year to 2025 2025-01-02 18:39:42 +01:00
international Update copyright year to 2025 2025-01-02 18:39:42 +01:00
loadhist-resources Update copyright year to 2025 2025-01-02 18:39:42 +01:00
mail Update copyright year to 2025 2025-01-02 18:39:42 +01:00
mh-e Update copyright year to 2025 2025-01-02 18:39:42 +01:00
minibuffer-resources
net Merge from origin/emacs-30 2025-02-23 00:48:15 -05:00
nxml Update copyright year to 2025 2025-01-02 18:39:42 +01:00
obsolete Update copyright year to 2025 2025-01-02 18:39:42 +01:00
org Update copyright year to 2025 2025-01-02 18:39:42 +01:00
pcmpl-linux-resources
play Update copyright year to 2025 2025-01-02 18:39:42 +01:00
progmodes ; Cleanup sexp things in 'lua-ts-mode' 2025-02-26 04:52:15 +01:00
saveplace-resources
so-long-tests Update copyright year to 2025 2025-01-02 18:39:42 +01:00
term Update copyright year to 2025 2025-01-02 18:39:42 +01:00
textmodes Update copyright year to 2025 2025-01-02 18:39:42 +01:00
time-resources
url Update copyright year to 2025 2025-01-02 18:39:42 +01:00
use-package Update copyright year to 2025 2025-01-02 18:39:42 +01:00
vc Test vc-git-dir-extra-headers directly (bug#76187) 2025-02-17 21:47:14 +01:00
xdg-resources
abbrev-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
align-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
allout-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
allout-widgets-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
ansi-color-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
ansi-osc-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
apropos-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
arc-mode-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
auth-source-pass-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
auth-source-tests.el Prefer oddp/evenp to cl-oddp/cl-evenp 2025-02-17 05:37:10 +01:00
autoinsert-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
autorevert-tests.el Enable auto-revert-tests to pass on Android 2025-02-26 10:39:46 +08:00
battery-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
bookmark-tests.el Eliminate bookmark-maybe-historicize-string duplicates 2025-02-11 08:47:44 +01:00
buff-menu-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
button-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
calculator-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
char-fold-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
color-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
comint-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
completion-preview-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
completion-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
cus-edit-tests.el Fix comparison of current values for the key-sequence :type 2025-02-23 01:15:24 +01:00
custom-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
dabbrev-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
delim-col-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
descr-text-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
desktop-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
dired-aux-tests.el Prefer ert-with-temp-directory in tests 2025-02-23 03:46:57 +01:00
dired-tests.el Try harder to stabilize dired-test-bug27243-02 2025-01-06 10:17:35 +01:00
dired-x-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
dnd-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
dom-tests.el Fix DOM printing 2025-02-15 13:49:17 +02:00
edmacro-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
electric-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
elide-head-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
env-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
epg-config-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
epg-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
faces-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
ffap-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
filenotify-tests.el Prefer oddp/evenp to free-coding them in tests 2025-02-17 05:37:10 +01:00
files-tests.el Prefer incf to cl-incf in tests 2025-02-23 00:38:22 +01:00
files-x-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
find-cmd-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
font-lock-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
format-spec-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
help-fns-tests.el ; Quote function symbols in help-fns-tests.el 2025-02-11 01:14:32 +01:00
help-mode-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
help-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
hfy-cmap-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
hi-lock-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
hl-line-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
htmlfontify-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
ibuffer-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
ido-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
image-file-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
image-tests.el ; Don't fail image tests if jpeg is supported via imagemagick 2025-02-21 13:02:58 +01:00
imenu-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
info-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
info-xref-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
isearch-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
jit-lock-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
json-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
jsonrpc-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
kmacro-tests.el Use cl-with-gensyms in a few more cases 2025-02-25 01:23:33 +01:00
loadhist-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
lpr-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
ls-lisp-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
man-tests.el New test for finding C header files 2025-01-06 20:04:20 +01:00
md4-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
minibuffer-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
misc-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
mouse-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
mwheel-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
newcomment-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
obarray-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
paren-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
password-cache-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
pcmpl-linux-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
pcomplete-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
proced-tests.el Better NaN handling in proced-tests.el 2025-02-03 12:51:48 +01:00
ps-print-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
register-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
repeat-tests.el Add :continue-only directive to bind-keys and use-package 2025-02-27 09:33:09 +02:00
replace-tests.el Use cl-with-gensyms in a few more cases 2025-02-25 01:23:33 +01:00
rot13-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
savehist-tests.el ; Silence byte-compiler 2025-02-09 16:16:01 +01:00
saveplace-tests.el ; Fix saveplace-tests for MS-Windows 2025-02-22 11:49:25 +02:00
scroll-lock-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
server-tests.el Fix a number of ERT tests for execution on Android 2025-02-25 19:13:24 +08:00
ses-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
shadowfile-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
shell-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
simple-tests.el Move buffer related functions from ert-x.el to ert.el 2025-02-24 20:45:41 +01:00
sort-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
soundex-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
speedbar-tests.el Update copyright year to 2025 2025-01-01 07:39:17 +00:00
sqlite-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
startup-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
subr-tests.el Fix 'internal--c-header-file-path' 2025-02-28 14:45:39 +02:00
tab-bar-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
tabify-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
tar-mode-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
tempo-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
term-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
thingatpt-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
thread-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
time-stamp-tests.el time-stamp: Better handling of some edge cases 2025-02-07 09:18:04 -08:00
time-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
timezone-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
uniquify-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
version-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
wdired-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
which-key-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
whitespace-tests.el Move buffer related functions from ert-x.el to ert.el 2025-02-24 20:45:41 +01:00
wid-edit-tests.el Lift widget functions from C to Lisp 2025-02-28 18:32:28 +01:00
x-dnd-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
xdg-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
xml-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
xt-mouse-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00
yank-media-tests.el Update copyright year to 2025 2025-01-02 18:39:42 +01:00