emacs/lisp/emacs-lisp
Stefan Monnier 52d5771e0a Add OClosures, a cross between functions and structs
We here just add the new type.  It is not fully self-contained.
It requires cooperation from `cconv.el` on the one hand, and it
hijacks the docstring info to hold the type of OClosure objects.
This does imply that OClosures can't have docstrings, tho this
limitation will be lifted in subsequent patches.

* lisp/emacs-lisp/oclosure.el: New file.
* test/lisp/emacs-lisp/oclosure-tests.el: New file.
* doc/lispref/functions.texi (OClosures): New section.

* src/eval.c (Ffunction): Accept symbols instead of strings for docstrings.
* src/doc.c (store_function_docstring): Avoid overwriting an OClosure type.
* lisp/emacs-lisp/cconv.el (cconv--convert-function): Tweak ordering of
captured variables.
(cconv-convert): Add case for `oclosure--fix-type`.
2022-03-28 10:53:14 -04:00
..
advice.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
autoload.el Don't break autoload generation of `left-margin' isn't zero 2022-03-21 19:15:55 +01:00
avl-tree.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
backquote.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
backtrace.el Merge from origin/emacs-28 2022-01-01 07:03:03 -05:00
benchmark.el * Have `benchmark-run-compiled' use the native compiler when available 2022-01-27 11:55:21 +01:00
bindat.el (macroexp-warn-and-return): Fix bug#53618 2022-02-19 14:20:02 -05:00
byte-opt.el Resurrect innocent joke in byte-opt.el 2022-02-17 16:35:03 +02:00
byte-run.el Restore call to byte-run-strip-symbol-positions in byte-compile-out 2022-03-06 13:37:30 +00:00
bytecomp.el * lisp/emacs-lisp/bytecomp.el (byte-compile-make-closure): Minor optimization 2022-03-18 16:07:42 -04:00
cconv.el Add OClosures, a cross between functions and structs 2022-03-28 10:53:14 -04:00
chart.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
check-declare.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
checkdoc.el lisp-mnt, checkdoc: Reduce run-time dependencies 2022-02-07 12:59:27 -05:00
cl-extra.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
cl-generic.el Remove some early-bootstrap dependencies for advice 2022-03-17 19:07:59 -04:00
cl-indent.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
cl-lib.el Merge from origin/emacs-28 2022-01-01 07:03:03 -05:00
cl-macs.el Remove some early-bootstrap dependencies for advice 2022-03-17 19:07:59 -04:00
cl-preloaded.el Reduce code duplication in parts of (auto)load&defalias 2022-01-28 13:19:11 -05:00
cl-print.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
cl-seq.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
comp-cstr.el Merge from origin/emacs-28 2022-02-10 06:56:22 +01:00
comp.el Make `command-modes' work for (native-compiled) subrs, too 2022-03-19 15:11:37 +01:00
copyright.el Fix copyright-fix-years, use a dash to separate years in a range 2022-01-28 15:23:05 +01:00
crm.el Merge from origin/emacs-28 2022-01-01 07:03:03 -05:00
cursor-sensor.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
debug-early.el Fix eval-tests/backtrace-in-batch-mode test 2022-02-06 19:20:36 -05:00
debug.el Merge from origin/emacs-28 2022-01-01 07:03:03 -05:00
derived.el Merge from origin/emacs-28 2022-03-06 06:32:23 +01:00
disass.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
easy-mmode.el (macroexp-warn-and-return): Fix bug#53618 2022-02-19 14:20:02 -05:00
easymenu.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
edebug.el Merge from origin/emacs-28 2022-02-22 06:30:59 +01:00
eieio-base.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
eieio-core.el (macroexp-warn-and-return): Fix bug#53618 2022-02-19 14:20:02 -05:00
eieio-custom.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
eieio-datadebug.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
eieio-opt.el Merge from origin/emacs-28 2022-01-01 07:03:03 -05:00
eieio-speedbar.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
eieio.el (macroexp-warn-and-return): Fix bug#53618 2022-02-19 14:20:02 -05:00
eldoc.el Handle invisible text in Eldoc when calculating size 2022-03-24 15:06:05 +00:00
elint.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
elp.el Improve the elp-instrument-package doc string 2022-02-06 01:00:04 +01:00
ert-x.el Factor out function to check for clang in tests 2022-01-31 07:42:50 +01:00
ert.el Allow jumping to ert failure definitions 2022-01-24 14:01:06 +01:00
ewoc.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
faceup.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
find-func.el Really fix find-func for defgeneric 2022-03-13 21:15:35 +01:00
float-sup.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
generator.el Merge from origin/emacs-28 2022-01-01 07:03:03 -05:00
generic.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
gv.el (macroexp-warn-and-return): Fix bug#53618 2022-02-19 14:20:02 -05:00
helper.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
hierarchy.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
inline.el Fix Edebug specification for inline functions (Bug#53068). 2022-01-13 13:52:40 +01:00
let-alist.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
lisp-mnt.el lisp-mnt, checkdoc: Reduce run-time dependencies 2022-02-07 12:59:27 -05:00
lisp-mode.el Merge from origin/emacs-28 2022-01-01 07:03:03 -05:00
lisp.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
macroexp.el (macroexp-warn-and-return): Fix bug#53618 2022-02-19 14:20:02 -05:00
map-ynp.el Merge from origin/emacs-28 2022-01-01 07:03:03 -05:00
map.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
memory-report.el Fix memory-report-object-size to initialize memory-report--type-size 2022-01-21 12:43:19 +01:00
multisession.el Speed up multisession--set-value-sqlite slightly 2022-01-22 15:13:27 +01:00
nadvice.el Merge from origin/emacs-28 2022-01-01 07:03:03 -05:00
oclosure.el Add OClosures, a cross between functions and structs 2022-03-28 10:53:14 -04:00
package-x.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
package.el Autoload package-installed-p 2022-02-10 19:27:57 +02:00
pcase.el (macroexp-warn-and-return): Fix bug#53618 2022-02-19 14:20:02 -05:00
pp.el Improve pp-last-sexp ergonomics 2022-03-25 16:44:30 +01:00
radix-tree.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
range.el Move the Gnus range functions to a new range.el file 2022-01-17 15:47:50 +01:00
re-builder.el Don't signal an error on re-builder startup with rx syntax 2022-02-22 14:43:35 +01:00
regexp-opt.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
regi.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
ring.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
rmc.el Make `?' work again in read-multiple-choice 2022-03-17 12:55:39 +01:00
rx.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
seq.el (seq-contains-p): Refine the non-nil returned value 2022-03-17 09:54:41 -04:00
shadow.el Merge from origin/emacs-28 2022-01-01 07:03:03 -05:00
shortdoc.el Add a `shortdoc' convenience alias 2022-01-14 10:51:15 +01:00
shorthands.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
smie.el (with-demoted-errors): Warn on missing format arg 2022-02-04 19:39:53 -05:00
subr-x.el Make string-pixel-width about 40% faster 2022-02-20 16:14:05 +01:00
syntax.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
tabulated-list.el Don't mutate literals in tabulated-list-widen-current-column 2022-01-25 14:21:22 +01:00
tcover-ses.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
testcover.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
text-property-search.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
thunk.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
timer-list.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
timer.el Merge from origin/emacs-28 2022-01-01 07:03:03 -05:00
tq.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
trace.el trace.el: Preserve the line structure 2022-03-04 12:18:41 -05:00
unsafep.el ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
vtable.el Make vtable sorting stable 2022-03-13 21:13:49 +01:00
warnings.el Merge from origin/emacs-28 2022-01-01 07:03:03 -05:00