emacs/src
Stefan Monnier f2bccae22b Use a dedicated type to represent interpreted-function values
Change `function` so that when evaluating #'(lambda ...)
we return an object of type `interpreted-function` rather than
a list starting with one of `lambda` or `closure`.
The new type reuses the existing PVEC_CLOSURE (nee PVEC_COMPILED)
tag and tries to align the corresponding elements:

- the arglist, the docstring, and the interactive-form go in the
  same slots as for byte-code functions.
- the body of the function goes in the slot used for the bytecode string.
- the lexical context goes in the slot used for the constants of
  bytecoded functions.

The first point above means that `help-function-arglist`,
`documentation`, and `interactive-form`s don't need to
distinguish interpreted and bytecode functions any more.

Main benefits of the change:

- We can now reliably distinguish a list from a function value.
- `cl-defmethod` can dispatch on `interactive-function` and `closure`.
  Dispatch on `function` also works now for interpreted functions but still
  won't work for functions represented as lists or as symbols, of course.
- Function values are now self-evaluating.  That was alrready the case
  when byte-compiled, but not when interpreted since
  (eval '(closure ...)) signals a void-function error.
  That also avoids false-positive warnings about "don't quote your lambdas"
  when doing things like `(mapcar ',func ...)`.

* src/eval.c (Fmake_interpreted_closure): New function.
(Ffunction): Use it and change calling convention of
`Vinternal_make_interpreted_closure_function`.
(FUNCTIONP, Fcommandp, eval_sub, funcall_general, funcall_lambda)
(Ffunc_arity, lambda_arity): Simplify.
(funcall_lambda): Adjust to new representation.
(syms_of_eval): `defsubr` the new function.  Remove definition of `Qclosure`.

* lisp/emacs-lisp/cconv.el (cconv-make-interpreted-closure):
Change calling convention and use `make-interpreted-closure`.

* src/data.c (Fcl_type_of): Distinguish `byte-code-function`s from
`interpreted-function`s.
(Fclosurep, finterpreted_function_p): New functions.
(Fbyte_code_function_p): Don't be confused by `interpreted-function`s.
(Finteractive_form, Fcommand_modes): Simplify.
(syms_of_data): Define new type symbols and `defsubr` the two
new functions.

* lisp/emacs-lisp/cl-print.el (cl-print-object) <interpreted-function>:
New method.

* lisp/emacs-lisp/oclosure.el (oclosure): Refine the parent
to be `closure`.
(oclosure--fix-type, oclosure-type): Simplify.
(oclosure--copy, oclosure--get, oclosure--set): Adjust to
new representation.

* src/callint.c (Fcall_interactively): Adjust to new representation.

* src/lread.c (bytecode_from_rev_list):

* lisp/simple.el (function-documentation):
* lisp/help.el (help-function-arglist): Remove the old `closure` case
and adjust the byte-code case so it handles `interpreted-function`s.

* lisp/emacs-lisp/cl-preloaded.el (closure): New type.
(byte-code-function): Add it as a parent.
(interpreted-function): Adjust parent (the type itself was already
added earlier by accident).

* lisp/emacs-lisp/bytecomp.el (byte-compile--reify-function): Adjust to
new representation.
(byte-compile): Use `interpreted-function-p`.

* lisp/emacs-lisp/byte-opt.el (byte-compile-inline-expand): Adjust to
new representation.
(side-effect-free-fns): Add `interpreted-function-p` and `closurep`.

* src/profiler.c (trace_hash, ffunction_equal): Simplify.
* lisp/profiler.el (profiler-function-equal): Simplify.

* lisp/emacs-lisp/nadvice.el (advice--interactive-form-1):
Use `interpreted-function-p`; adjust to new representation; and take
advantage of the fact that function values are now self-evaluating.

* lisp/emacs-lisp/lisp-mode.el (closure):
Remove `lisp-indent-function` property.

* lisp/emacs-lisp/disass.el (disassemble-internal): Adjust to
new representation.
* lisp/emacs-lisp/edebug.el (edebug--strip-instrumentation):
Use `interpreted-function-p`.
* lisp/emacs-lisp/comp-common.el (comp-known-type-specifiers):
Add `closurep` and `interpreted-function-p`.

* test/lisp/help-fns-tests.el (help-fns-test-lisp-defun): Adjust to
more precise type info in `describe-function`.
* test/lisp/erc/resources/erc-d/erc-d-tests.el (erc-d--render-entries):
Use `interpreted-function-p`.
* test/lisp/emacs-lisp/macroexp-resources/vk.el (vk-f4, vk-f5):
Don't hardcode function values.

* doc/lispref/functions.texi (Anonymous Functions): Don't suggest that
function values are lists.  Reword "self-quoting" to reflect the
fact that #' doesn't return the exact same object.  Update examples
with the new shape of the return value.

* doc/lispref/variables.texi (Lexical Binding):
* doc/lispref/lists.texi (Rearrangement):
* doc/lispref/control.texi (Handling Errors): Update examples to reflect
new representation of function values.
2024-04-28 11:58:12 -04:00
..
bitmaps
.dbxinit
.gdbinit (COMPILED): Rename to CLOSURE 2024-04-28 11:58:05 -04:00
.lldbinit Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
alloc.c (COMPILED): Rename to CLOSURE 2024-04-28 11:58:05 -04:00
android-asset.h ; Add 2024 to copyright years 2024-01-02 10:30:05 +08:00
android-emacs.c ; Add 2024 to copyright years 2024-01-02 10:30:05 +08:00
android.c Implement dots and dashes on Android 2024-04-28 17:00:43 +08:00
android.h Enable relinquishing access to Android content directories 2024-04-05 15:04:09 +08:00
androidfns.c Miscellaneous fixes for Android port 2024-04-24 11:42:48 +08:00
androidfont.c ; Add 2024 to copyright years 2024-01-02 10:30:05 +08:00
androidgui.h Implement dots and dashes on Android 2024-04-28 17:00:43 +08:00
androidmenu.c Prefer C23 ckd_* to Gnulib *_WRAPV and *_OK macros 2024-01-28 00:26:44 -08:00
androidselect.c ; * src/androidselect.c (Fandroid_notifications_notify): Typo in doc string. 2024-03-15 11:52:11 +08:00
androidterm.c Implement dots and dashes on Android 2024-04-28 17:00:43 +08:00
androidterm.h Enable configuring Emacs for "pseudo-grayscale" systems on Android 2024-04-23 15:57:45 +08:00
androidvfs.c Better verify arguments to android-relinquish-directory-access 2024-04-21 21:11:22 +08:00
atimer.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
atimer.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
bidi.c Speed up display of RTL text with many character compositions 2024-03-21 10:25:56 +02:00
bignum.c Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
bignum.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
blockinput.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
buffer.c ; Fix recently-changed documentation 2024-03-26 14:24:16 +02:00
buffer.h Further adjustments for restoring killed buffer windows (Bug#68235) 2024-03-15 10:35:27 +01:00
bytecode.c (COMPILED): Rename to CLOSURE 2024-04-28 11:58:05 -04:00
callint.c Use a dedicated type to represent interpreted-function values 2024-04-28 11:58:12 -04:00
callproc.c Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
casefiddle.c Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
casetab.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
category.c Share hash table test structs 2024-01-13 20:50:38 +01:00
category.h
ccl.c Ignore fewer GCC -fanalyzer diagnostics in ccl.c 2024-02-18 00:38:15 -08:00
ccl.h Be more systematic about parens in C source code 2024-01-20 17:28:53 -08:00
ChangeLog.1 ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
ChangeLog.2 ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
ChangeLog.3 Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
ChangeLog.4 Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
ChangeLog.5 ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
ChangeLog.6 ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
ChangeLog.7 ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
ChangeLog.8 ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
ChangeLog.9 ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
ChangeLog.10 ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
ChangeLog.11 Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
ChangeLog.12 Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
ChangeLog.13 ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
character.c Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
character.h
charset.c (struct composition): Remove dependency on hash-table internals 2024-01-24 08:16:41 -05:00
charset.h (struct charset): Remove dependency on hash-table internals 2024-01-23 22:30:13 -05:00
chartab.c ; Improve documentation of 'char-table-range' 2023-09-01 16:33:40 +03:00
cm.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
cm.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
cmds.c Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
coding.c (en/decode_coding_object): Fix after-change-functions 2024-04-10 12:15:26 -04:00
coding.h Be more systematic about parens in C source code 2024-01-20 17:28:53 -08:00
commands.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
comp.c (COMPILED): Rename to CLOSURE 2024-04-28 11:58:05 -04:00
comp.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
composite.c Merge from origin/emacs-29 2024-03-09 04:18:53 -05:00
composite.h (struct composition): Remove dependency on hash-table internals 2024-01-24 08:16:41 -05:00
conf_post.h Fix the MS-DOS build 2024-02-15 22:13:04 +08:00
COPYING
cygw32.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
cygw32.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
data.c Use a dedicated type to represent interpreted-function values 2024-04-28 11:58:12 -04:00
dbusbind.c Fix wildcard signals in dbusbind.c 2024-03-31 19:59:58 +02:00
decompress.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
deps.mk ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
dired.c New sort keyword arguments (bug#69709) 2024-03-29 11:39:38 +01:00
dispextern.h Implement dots and dashes on X 2024-04-28 11:58:54 +08:00
dispnew.c Be more systematic about parens in C source code 2024-01-20 17:28:53 -08:00
disptab.h Be more systematic about parens in C source code 2024-01-20 17:28:53 -08:00
dmpstruct.awk ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
doc.c (COMPILED): Rename to CLOSURE 2024-04-28 11:58:05 -04:00
doprnt.c Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
dosfns.c Use min/max macros in a few more places 2024-01-09 07:55:51 +01:00
dosfns.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
dynlib.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
dynlib.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
editfns.c * src/editfns.c (Fget_pos_property): Fix thinko (bug#69358) 2024-02-24 12:23:41 -05:00
emacs-icon.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
emacs-module.c (DOHASH): Change calling convention 2024-01-24 08:07:54 -05:00
emacs-module.h.in Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
emacs.c Always enable native JSON support and remove Jansson references 2024-03-30 15:19:56 +01:00
emacsgtkfixed.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
emacsgtkfixed.h Be more systematic about parens in C source code 2024-01-20 17:28:53 -08:00
epaths.in Implement face stipples on Android 2024-04-23 14:30:38 +08:00
eval.c Use a dedicated type to represent interpreted-function values 2024-04-28 11:58:12 -04:00
fileio.c Merge from origin/emacs-29 2024-03-16 05:47:41 -04:00
filelock.c Merge from origin/emacs-29 2024-04-13 07:37:13 -04:00
firstfile.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
floatfns.c Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
fns.c (COMPILED): Rename to CLOSURE 2024-04-28 11:58:05 -04:00
font.c Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
font.h Be more systematic about parens in C source code 2024-01-20 17:28:53 -08:00
fontset.c Be more systematic about parens in C source code 2024-01-20 17:28:53 -08:00
fontset.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
frame.c Support tooltips for fringe indicators 2024-04-13 14:14:04 +03:00
frame.h Be more systematic about parens in C source code 2024-01-20 17:28:53 -08:00
fringe.c Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
ftcrfont.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
ftfont.c Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
ftfont.h Fix recent Cairo xsettings changes 2022-11-15 19:48:39 +08:00
getpagesize.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
gfilenotify.c Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
gmalloc.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
gnutls.c Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
gnutls.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
gtkutil.c Be more systematic about parens in C source code 2024-01-20 17:28:53 -08:00
gtkutil.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
haiku.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
haiku_draw_support.cc ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
haiku_font_support.cc ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
haiku_io.c Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
haiku_select.cc * src/haiku_select.cc: Include stdckdint.h. 2024-01-29 12:17:26 +00:00
haiku_support.cc New variable haiku-pass-control-tab-to-system 2024-04-04 08:33:52 +08:00
haiku_support.h New variable haiku-pass-control-tab-to-system 2024-04-04 08:33:52 +08:00
haikufns.c ; * src/haikufns.c (syms_of_haikufns): Fix indentation. 2024-04-04 08:33:53 +08:00
haikufont.c Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
haikugui.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
haikuimage.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
haikumenu.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
haikuselect.c Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
haikuselect.h Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
haikuterm.c Implement dots and dashes on Haiku 2024-04-28 12:57:33 +00:00
haikuterm.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
hbfont.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
image.c Implement dots and dashes on PGTK 2024-04-28 21:30:52 +08:00
indent.c Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
indent.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
inotify.c Enable inotify on systems with inotify_init yet no init1 variant 2024-02-22 09:53:48 +08:00
insdel.c Use min/max macros in a few more places 2024-01-09 07:55:51 +01:00
intervals.c Retype traverse_interval arg type from Lisp_Object to void * 2024-01-14 14:17:40 +01:00
intervals.h Retype traverse_interval arg type from Lisp_Object to void * 2024-01-14 14:17:40 +01:00
itree.c Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
itree.h Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
json.c ; * src/json.c: Comment correction 2024-04-04 18:40:14 +02:00
keyboard.c (mouse-wheel-buttons): Map old-style wheel buttons to actual wheel events 2024-04-09 10:26:07 -04:00
keyboard.h * src/keyboard.c (requeued_events_pending_p): New function 2024-03-10 10:40:11 -04:00
keymap.c Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
keymap.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
kqueue.c Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
lastfile.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
lcms.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
lisp.h (COMPILED): Rename to CLOSURE 2024-04-28 11:58:05 -04:00
lread.c Use a dedicated type to represent interpreted-function values 2024-04-28 11:58:12 -04:00
macfont.h Be more systematic about parens in C source code 2024-01-20 17:28:53 -08:00
macfont.m macfont.m: Fix values for font widths and weights on macOS 2024-02-01 12:18:50 +02:00
macros.c Continue reading in 'read-event' etc. at the end of a keyboard macro 2024-03-10 10:40:13 -04:00
macros.h Extract check for end of macro to function 2024-03-10 10:40:01 -04:00
macuvs.h ; Update src/macuvs.h, forgotten in Unicode 15.0 commit. 2022-09-17 10:15:14 +03:00
Makefile.in Enable relinquishing access to Android content directories 2024-04-05 15:04:09 +08:00
marker.c Fix 'set-window-configuration' and 'window-state-put' 2024-03-04 10:33:49 +01:00
menu.c Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
menu.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
minibuf.c ; Circumvent miscompilations on Sun C 5.12 (148917-07) 2024-03-16 09:50:58 +08:00
module-env-25.h
module-env-26.h
module-env-27.h
module-env-28.h
module-env-29.h Bump master Emacs version to 30.0.50 2022-11-28 20:03:07 +02:00
module-env-30.h ; * src/module-env-30.h: Fix commentary 2023-11-23 13:34:47 +01:00
msdos.c Be more systematic about parens in C source code 2024-01-20 17:28:53 -08:00
msdos.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
nsfns.m Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
nsfont.m Be more systematic about parens in C source code 2024-01-20 17:28:53 -08:00
nsgui.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
nsimage.m Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
nsmenu.m Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
nsselect.m ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
nsterm.h Be more systematic about parens in C source code 2024-01-20 17:28:53 -08:00
nsterm.m Port double-line underlines to GUI systems 2024-04-28 11:58:22 +08:00
nsxwidget.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
nsxwidget.m ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
pdumper.c (COMPILED): Rename to CLOSURE 2024-04-28 11:58:05 -04:00
pdumper.h Be more systematic about parens in C source code 2024-01-20 17:28:53 -08:00
pgtkfns.c Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
pgtkgui.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
pgtkim.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
pgtkmenu.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
pgtkselect.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
pgtkterm.c Implement dots and dashes on PGTK 2024-04-28 21:30:52 +08:00
pgtkterm.h Be more systematic about parens in C source code 2024-01-20 17:28:53 -08:00
print.c (COMPILED): Rename to CLOSURE 2024-04-28 11:58:05 -04:00
process.c * src/keyboard.c (requeued_events_pending_p): Improve name and fix comment 2024-03-10 10:40:07 -04:00
process.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
profiler.c Use a dedicated type to represent interpreted-function values 2024-04-28 11:58:12 -04:00
puresize.h Followup changes to cl-type-of 2024-03-18 09:32:53 -04:00
ralloc.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
README ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
regex-emacs.c * src/regex-emacs.c (forall_firstchar_1): Improve corner case 2024-01-22 15:06:24 -05:00
regex-emacs.h Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
region-cache.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
region-cache.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
scroll.c Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
search.c (Freplace_match): Fix bug#65451 2024-04-07 14:16:38 -04:00
sfnt.c Remove redundant byte-swapping boundary 2024-04-04 13:52:52 +08:00
sfnt.h Remove redundant byte-swapping boundary 2024-04-04 13:52:52 +08:00
sfntfont-android.c Implement face stipples on Android 2024-04-23 14:30:38 +08:00
sfntfont.c Fix building the SFNT font driver 2024-03-30 08:58:59 +08:00
sfntfont.h ; Add 2024 to copyright years 2024-01-02 10:30:05 +08:00
sheap.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
sheap.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
sort.c GC-mark temporary key values created when sorting (bug#69709) 2024-04-14 18:29:16 +02:00
sound.c Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
sqlite.c Followup changes to cl-type-of 2024-03-18 09:32:53 -04:00
syntax.c Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
syntax.h Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
sysdep.c Fix dumping signal-handler data 2024-04-23 10:02:39 +03:00
sysselect.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
syssignal.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
sysstdio.h Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
systhread.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
systhread.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
systime.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
systty.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
syswait.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
term.c ; * src/term.c (turn_on_face): Fix coding style. 2024-04-28 11:55:17 +08:00
termcap.c Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
termchar.h Add support for colored and styled underlines on tty frames 2024-04-27 11:59:15 +03:00
termhooks.h Implement notification callbacks on Android 2024-03-11 21:41:14 +08:00
terminal.c Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
terminfo.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
termopts.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
textconv.c Prevent passwords from being recorded during text conversion 2024-03-26 10:11:26 +08:00
textconv.h ; Add 2024 to copyright years 2024-01-02 10:30:05 +08:00
textprop.c Revert "Add new swap macro and use it" 2024-01-06 15:28:14 +08:00
thread.c Implement Lisp threading on Android 2024-02-06 17:53:23 +08:00
thread.h Implement Lisp threading on Android 2024-02-06 17:53:23 +08:00
timefns.c Remove SYMBOL_WITH_POS_{POS,SYM} 2024-02-13 11:20:33 -08:00
tparam.c Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
tparam.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
treesit.c ; Fix documentation of recent commits related to treesit 2024-04-20 09:53:35 +03:00
treesit.h New function treesit-parser-changed-ranges 2024-04-19 19:04:44 -07:00
undo.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
unexaix.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
unexcoff.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
unexcw.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
unexec.h
unexelf.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
unexhp9k800.c
unexmacosx.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
unexsol.c
unexw32.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
verbose.mk.in Port to GNU Make 03ecd94488b85adc38746ec3e7c2a297a522598e 2024-02-08 23:22:00 -08:00
vm-limit.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
w16select.c Remove redundant casts from void* with malloc functions 2024-01-10 14:48:00 +01:00
w32.c Fix resetting keyboard hook state on MS-Windows 2024-03-14 10:01:06 +02:00
w32.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
w32common.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
w32console.c Fix resetting keyboard hook state on MS-Windows 2024-03-14 10:01:06 +02:00
w32cygwinx.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
w32fns.c Unbreak the Cygw32 build broken by resent WTS_SESSION changes 2024-03-19 14:45:45 +02:00
w32font.c Be more systematic about parens in C source code 2024-01-20 17:28:53 -08:00
w32font.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
w32gui.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
w32heap.c Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
w32heap.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
w32image.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
w32inevt.c Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
w32inevt.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
w32menu.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
w32notify.c Fix NULL dereference in w32notify.c 2024-01-13 10:21:41 +01:00
w32proc.c Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
w32reg.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
w32select.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
w32select.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
w32term.c Fix the MS-Windows build broken by a recent commit 2024-04-28 11:52:09 +03:00
w32term.h Fix resetting keyboard hook state on MS-Windows 2024-03-14 10:01:06 +02:00
w32uniscribe.c ; Fix last change in inclusion of byteswap.h header 2024-03-30 10:52:00 +03:00
w32xfns.c Unbreak the Cygw32 build broken by resent WTS_SESSION changes 2024-03-19 14:45:45 +02:00
widget.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
widget.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
widgetprv.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
window.c Fix ommissions in window scrolling commands that ought to clear vscroll 2024-04-27 19:48:45 +08:00
window.h Be more systematic about parens in C source code 2024-01-20 17:28:53 -08:00
xdisp.c Merge from origin/emacs-29 2024-04-27 06:23:46 -04:00
xfaces.c Implement dots and dashes on X 2024-04-28 11:58:54 +08:00
xfns.c Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
xfont.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
xftfont.c Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
xgselect.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
xgselect.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
xmenu.c Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
xml.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
xrdb.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
xselect.c Pacify Ubuntu GCC 13.2 in x_get_local_selection 2024-01-06 13:40:38 -08:00
xsettings.c ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
xsettings.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00
xsmfns.c Merge from savannah/emacs-29 2024-01-02 10:28:14 +08:00
xterm.c Implement dots and dashes on Android 2024-04-28 17:00:43 +08:00
xterm.h Be more systematic about parens in C source code 2024-01-20 17:28:53 -08:00
xwidget.c ; * src/xwidget.c (xwidget-webkit-disable-javascript): Doc fix. 2024-03-15 10:29:06 +02:00
xwidget.h ; Add 2024 to copyright years 2024-01-02 09:47:10 +08:00

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Copyright (C) 2001-2024 Free Software Foundation, Inc.
See the end of the file for license conditions.


This directory contains the source files for the C component of GNU Emacs.
Nothing in this directory is needed for using Emacs once it is built
and installed, if the dumped Emacs is copied elsewhere.

See the files ../README and then ../INSTALL for installation instructions.

The file 'Makefile.in' is used as a template by the script
'../configure' to produce 'Makefile'.  This is the file which actually
controls the compilation of Emacs C source files.  All of this should
work transparently; you should only need to change to the parent
directory, run './configure', and then run 'make'.

This file is part of GNU Emacs.

GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.