1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-04 14:40:54 -08:00
emacs/doc/lispref
Stefan Monnier d1be48fded Edebug: Overload edebug-form-spec even less
The `edebug-form-spec` symbol property was used both to map forms's
head symbol to the corresponding spec, and to map spec element names
to their expansion.

This lead to name conflicts which break instrumentation of examples such as

    (cl-flet ((gate (x) x)) (gate 4))

because of the Edebug spec element `gate`.
So introduce a new symbol property `edebug-elem-spec`.

* lisp/subr.el (def-edebug-elem-spec): New function.

* lisp/emacs-lisp/edebug.el (edebug--get-elem-spec): New function.
(edebug-match-symbol): Use it.
(Core Edebug elems): Put them on `edebug-elem-spec` instead of
`edebug-form-spec`.
(ELisp special forms): Set their `edebug-form-spec` via dolist.
(Other non-core Edebug elems): Use `def-edebug-elem-spec`.
(edebug-\`): Use `declare`.

* lisp/emacs-lisp/pcase.el (pcase-PAT, pcase-FUN, pcase-QPAT):
* lisp/skeleton.el (skeleton-edebug-spec):
* lisp/emacs-lisp/cl-macs.el: Use `def-edebug-elem-spec`.

* test/lisp/emacs-lisp/edebug-tests.el
(edebug-tests--conflicting-internal-names): New test.
* test/lisp/emacs-lisp/edebug-resources/edebug-test-code.el
(edebug-test-code-cl-flet1): New test case.

* doc/lispref/edebug.texi (Specification List): Add `def-edebug-elem-spec`.
(Specification Examples): Use it.

* doc/lispref/loading.texi (Hooks for Loading): Avoid the use of
`def-edebug-spec` in example (better use `debug` declaration).
2021-02-12 19:28:25 -05:00
..
abbrevs.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
anti.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
back.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
backups.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
book-spine.texi
buffers.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
ChangeLog.1 Update copyright year to 2021 2021-01-01 01:13:56 -08:00
commands.texi Make libraries works with xterm-mouse-mode. 2021-01-15 13:50:07 +02:00
compile.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
control.texi * lisp/emacs-lisp/pcase.el: Add support for not to pred 2021-01-16 14:21:57 -05:00
customize.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
debugging.texi Pretty-print keys without <> around modifiers (bug#45536) 2021-01-05 11:28:58 +01:00
display.texi Add support for flat buttons 2021-01-10 14:10:18 +01:00
doclicense.texi
edebug.texi Edebug: Overload edebug-form-spec even less 2021-02-12 19:28:25 -05:00
elisp.texi Add a new variable `inhibit-interaction' 2021-01-12 15:12:38 +01:00
errors.texi Add a new variable `inhibit-interaction' 2021-01-12 15:12:38 +01:00
eval.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
files.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
frames.texi Permit zero value for 'child-frame-border-width' parameter (Bug#46184) 2021-02-06 18:22:29 +01:00
functions.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
gpl.texi
hash.texi Clarify that #s(hash-table ...) doesn't always create a new hash table 2021-02-07 14:47:09 +01:00
help.texi Pretty-print keys without <> around modifiers (bug#45536) 2021-01-05 11:28:58 +01:00
hooks.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
index.texi
internals.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
intro.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
keymaps.texi Remove the 'M-o' ('facemap-keymap') binding experimentally 2021-02-10 19:38:18 +01:00
lay-flat.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
lists.texi Clarify that #s(hash-table ...) doesn't always create a new hash table 2021-02-07 14:47:09 +01:00
loading.texi Edebug: Overload edebug-form-spec even less 2021-02-12 19:28:25 -05:00
macros.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
Makefile.in Update copyright year to 2021 2021-01-01 01:13:56 -08:00
maps.texi Remove the 'M-o' ('facemap-keymap') binding experimentally 2021-02-10 19:38:18 +01:00
markers.texi Mention that the mouse will switch on transient-mark-mode in manual 2021-01-20 03:54:18 +01:00
minibuf.texi Allow exit-minibuffer to be called from Lisp code. Fixes bug #46373 2021-02-09 09:41:13 +00:00
modes.texi Allow minor modes to specify major modes they're useful in 2021-02-12 14:19:55 +01:00
nonascii.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
numbers.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
objects.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
os.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
package.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
positions.texi Move line-number-at-pos to C 2021-02-07 16:28:34 +01:00
processes.texi Clarify the "Sentinels" node in the lispref manual 2021-02-04 17:18:49 +02:00
README Update copyright year to 2021 2021-01-01 01:13:56 -08:00
records.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
searching.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
sequences.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
spellfile
streams.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
strings.texi Merge from origin/emacs-27 2021-01-04 07:50:25 -08:00
symbols.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
syntax.texi Merge from origin/emacs-27 2021-02-06 08:10:38 -08:00
text.texi Merge from origin/emacs-27 2021-01-27 07:55:11 -08:00
threads.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
tips.texi Merge from origin/emacs-27 2021-01-01 01:28:16 -08:00
two-volume-cross-refs.txt Update copyright year to 2021 2021-01-01 01:13:56 -08:00
two-volume.make Update copyright year to 2021 2021-01-01 01:13:56 -08:00
variables.texi Update copyright year to 2021 2021-01-01 01:13:56 -08:00
windows.texi Add a display-buffer window selection function that's more like XEmacs 2021-01-07 16:35:48 +01: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-2021 Free Software Foundation, Inc.  -*- outline -*-
See the end of the file for license conditions.


README for the Emacs Lisp Reference Manual.

* This directory contains the texinfo source files for the Emacs Lisp
Reference Manual.

* Report bugs in the Lisp Manual (or in Emacs) using M-x report-emacs-bug.
To ask questions, use the help-gnu-emacs mailing list.

* The Emacs Lisp Reference Manual is quite large.  It totals around
1100 pages in smallbook format; the info files total around 3.0 megabytes.

* You can format this manual for Info, for printing hardcopy using TeX,
or for HTML.

* You can buy nicely printed copies from the Free Software Foundation.
Buying a manual from the Free Software Foundation helps support our GNU
development work.  See <https://shop.fsf.org/>.
(At time of writing, this manual is out of print.)

* The master file for formatting this manual for Tex is called 'elisp.texi'.
It contains @include commands to include all the chapters that make up
the manual.

* This distribution contains a Makefile that you can use with GNU Make.

** To make an Info file, you need to install Texinfo, then run 'make info'.

** Use 'make elisp.pdf' or 'make elisp.html' to create PDF or HTML versions.

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