Commit graph

6681 commits

Author SHA1 Message Date
Andrea Corallo
48b131c6d1 * Add two hooks for async native compilation 2020-02-23 16:50:15 +00:00
Andrea Corallo
1dc237f280 Make build process robust against interruptions
During boo-strap we produce both the .eln and the .elc together.
Because the make target is the later this has to be produced as last
to be resilient to build interruptions.
2020-02-23 16:50:15 +00:00
AndreaCorallo
3a7aa06d15 Emit 'top_level_run' objects as impure 2020-02-21 16:05:53 +00:00
AndreaCorallo
d8e4ba2693 Reorder m-var slots 2020-02-21 15:26:45 +00:00
Andrea Corallo
de17b43370 Merge remote-tracking branch 'savannah/master' into HEAD 2020-02-21 15:25:01 +00:00
Andrea Corallo
81c34a35aa Update copyright years plus two style nits 2020-02-16 18:34:22 +01:00
Andrea Corallo
8c108ce607 Add a simple pass for self TCO 2020-02-16 18:11:43 +01:00
Andrea Corallo
5bd485340f Introduce comp-dry-run 2020-02-16 10:31:46 +00:00
Andrea Corallo
2a8a3a9f28 Use `sxhash-eq' to generate mvar SSA ids 2020-02-16 08:46:30 +00:00
AndreaCorallo
4b4c7535a0 Speed 2 goes default 2020-02-15 10:17:08 +01:00
AndreaCorallo
3b3525b916 Backward propagate only once 2020-02-15 10:17:08 +01:00
Andrea Corallo
c27394da7e Rework frame layout
Every function call by reference gets use one unique array of
arguments.
2020-02-15 10:17:08 +01:00
Andrea Corallo
fe9e4c42b3 Better function naming for comp-function-call-maybe-remove 2020-02-14 23:26:20 +01:00
Andrea Corallo
f1bc8e480c Merge remote-tracking branch 'savannah/master' into HEAD 2020-02-14 23:22:10 +01:00
Stefan Kangas
b2e27d8617 Revert "Signal user-error on duplicate package refresh"
That commit caused errors when the connection was dropped in the
middle of a package refresh.  To avoid any further issues this close
to the pretest, we simply remove this feature.  (Bug#39187)

Don't merge to master, where we will instead try to fix the bug.
2020-02-06 13:37:38 +01:00
Tino Calancha
ebff24c0b8 Eval macro arg just once
* lisp/emacs-lisp/cl-macs.el (cl--push-clause-loop-body):
Use `macroexp-let2' (Bug#39428).
2020-02-05 19:05:23 +01:00
Stefan Kangas
feb681dc36 Silence byte-compiler warning
* lisp/emacs-lisp/bytecomp.el (byte-compile-insert-header): Silence
byte-compiler warning about "Unused lexical variable".
2020-02-05 13:28:31 +01:00
Stefan Kangas
aea12d4903 Add new filter commands to Package Menu (Bug#38424)
* lisp/emacs-lisp/package.el (package-menu-filter-by-version)
(package-menu-filter-by-status, package-menu-filter-by-archive):
New filter commands.
(package-menu--filter-by): New helper function.
(package-menu-filter-by-keyword, package-menu-filter-by-name): Use
the above helper function.
(package-menu-mode-menu):
(package-menu-mode-map): Update menu to include new filter commands.
* doc/emacs/package.texi (Package Menu): Document the new commands and
re-arrange the sort order of commands to be closer to the one in
describe-major-mode.
* etc/NEWS: Announce the new commands.

* lisp/emacs-lisp/package.el (package-menu--display): New function
extracted from....
(package-menu--generate): ...here.

* test/lisp/emacs-lisp/package-tests.el (with-package-menu-test):
New macro.
(package-test-update-listing, package-test-list-filter-by-name)
(package-test-list-filter-clear): Use above macro.
(package-test-list-filter-by-archive)
(package-test-list-filter-by-keyword)
(package-test-list-filter-by-status)
(package-test-list-filter-by-version-=)
(package-test-list-filter-by-version-<)
(package-test-list-filter-by-version->): New tests.
(package-test-filter-by-version): New helper function.
2020-02-05 13:18:12 +01:00
Adam Porter
e287da5a81 * lisp/emacs-lisp/map.el: Add keyword-only pattern abbreviation
* lisp/emacs-lisp/map.el: Update version to 2.1.
((pcase-defmacro map)): Update docstring.
(map--make-pcase-bindings): Match keyword pattern.

* test/lisp/emacs-lisp/map-tests.el (test-map-plist-pcase): Add test.
2020-02-04 12:30:31 -05:00
Andrea Corallo
15aedf3e3d Merge remote-tracking branch 'savannah/master' into HEAD 2020-02-04 15:11:20 +01:00
Paul Pogonyshev
0223a1577c * lisp/emacs-lisp/debug.el (debug): Merge the non-interactive cases
bug#38927

(cherry picked from commit 502059433c)
2020-01-31 16:09:42 +02:00
Paul Eggert
a02b179242 Revert the --with-install-srcdir patch
Also, update description of debuginfo and sources to match
Debian and Red Hat more accurately, and move this sad tale
from INSTALL to etc/PROBLEMS which is a better home for it.
* Makefile.in (emacs_srcdir, install-c-src):
* configure.ac (emacs_srcdir, --with-install-srcdir):
* src/epaths.in (PATH_EMACS_SOURCE):
* src/lread.c (emacs-source-directory):
Remove.  All uses removed.
* lisp/emacs-lisp/find-func.el (find-function-C-source):
Do not worry about compressed C sources.
* src/lread.c: Do not include <dosname.h>.
2020-01-27 23:17:10 -08:00
Paul Pogonyshev
502059433c * lisp/emacs-lisp/debug.el (debug): Merge the non-interactive cases
bug#38927
2020-01-26 22:54:32 -05:00
Paul Eggert
f42d57c7db Install C source code for C-h f etc.
Without this change, on typical GNU/Linux distributions
like Debian, the first button of ‘C-h f car RET’ does not work
because the source code for ‘car’ is not installed (Bug#37527).
Fix this by installing the (compressed) C source code alongside
the (compressed) Lisp source code that is already installed.
This adds about 3 MB (about 2%) to the size of the installed files
on my platform.
* Makefile.in (emacs_srcdir): New macro.
(epaths-force): Substitute PATH_EMACS_SOURCE.
(install-c-src): New rule, that installs a copy of the C source
code if emacs_srcdir says to.
(install-arch-indep): Depend on it.
* configure.ac (emacs_srcdir): New var.
Add support for --disable-install-srcdir.
* lisp/emacs-lisp/find-func.el (find-function-C-source-directory):
Look in emacs-source-directory first.
(find-function-C-source): Also look for gzipped source files.
* lisp/startup.el (normal-top-level):
Also recode emacs-source-directory.
* src/epaths.in (PATH_EMACS_SOURCE): New macro.
* src/lread.c: Include dosname.h, for IS_ABSOLUTE_FILE_NAME.
(syms_of_lread): New var emacs-source-directory.
2020-01-24 16:46:42 -08:00
Bruno Félix Rezende Ribeiro
963a9ffd66 Globally sanitize single-file package long descriptions (Bug#37548)
Consistent with multi-file package descriptions which don’t have
commentary sections nor double semicolon prefixes.
* lisp/emacs-lisp/lisp-mnt.el (lm-commentary): Remove commentary
header, double semicolon prefixes of each line, trailing new-lines and
trailing white-space from commentary.
* lisp/emacs-lisp/package.el (package--get-description)
(describe-package-1):
* lisp/finder.el (finder-commentary):
* lisp/info.el (Info-finder-find-node): Remove ad-hoc sanitation.
2020-01-23 22:57:23 +01:00
Glenn Morris
cd2d812ec1 Unbreak byte compilation
* lisp/emacs-lisp/bytecomp.el (byte-compile-fix-header):
Update for recent header changes.
(byte-compile-insert-header): Add more padding.
2020-01-23 12:22:49 -08:00
Stefan Kangas
c4687d920d Remove irrelevant info from .elc headers
* lisp/emacs-lisp/bytecomp.el (byte-compile-insert-header): Don't
insert information on ancient Emacs in bytecode headers.  (Bug#39233)
2020-01-23 17:55:02 +01:00
Helmut Eller
0c9da50e96 Default lisp-mode to use Common Lisp indentation
* lisp/emacs-lisp/lisp-mode.el (lisp-mode): Use
common-lisp-indent-function instead of lisp-indent-function as
Common Lisp is the most common non-Emacs Lisp today (bug#10097).
2020-01-22 14:18:17 +01:00
Andrea Corallo
9e08edf98f Extend propagation to a wider set of (non pure) functions 2020-01-21 22:06:19 +00:00
Andrea Corallo
fce1333c22 Clean-up unnecessary member usage 2020-01-20 19:30:24 +00:00
Glenn Morris
215ceadcc8 Merge from origin/emacs-27
154cd116be (origin/emacs-27) * admin/release-process: Adapt bug numbe...
fd19282134 Fix shell-tests failures
891f7de8ed * test/lisp/simple-tests.el: Full path to Emacs binary (bu...
92f30d62c0 * lisp/tab-line.el (tab-line-auto-hscroll): Fix for long t...
dde313151d * lisp/menu-bar.el (menu-bar-options-menu): Add desktop-sa...
3543b9fad9 ; Fix a test (Bug#39067)
83f9fe44fa ; * etc/NEWS: Fix typo.
2eb0b7835d Fix shell-command-dont-erase-buffer feature
c134978a76 Remove reference to Emacs 19 from FAQ
fabf0065c5 Doc fixes in package.el

# Conflicts:
#	etc/NEWS
2020-01-20 07:50:30 -08:00
Glenn Morris
519de2f88e Merge from origin/emacs-27
f3d30b5303 Remove some doc references to old Emacs versions
4217bc229b Fix infloop in shell.el
74b151195d Fix erc-notifications-notify for non-PRIVMSGs, broken in l...
db4436eaf9 Fix the notification action for PRIVMSG in erc-notificatio...
36a4068105 ERC: New maintainer.
2391d3f45d ; spelling fixes
e898442be3 Honor tags-case-fold-search during xref identifer completion

# Conflicts:
#	etc/NEWS
2020-01-20 07:50:26 -08:00
Rüdiger Sonderfeld
0e57792395 Add space before messsage in byte compiler warnings
According to the GNU coding standards (info "(standards) Errors"):
> If you want to mention the column number, use one of these formats:
>      SOURCE-FILE-NAME:LINENO:COLUMN: MESSAGE
>      SOURCE-FILE-NAME:LINENO.COLUMN: MESSAGE

* lisp/emacs-lisp/bytecomp.el (byte-compile-warning-prefix): Add space
before message in byte compiler warnings to comply with the GNU coding
standards.  (Bug#18969)
2020-01-19 02:02:28 +01:00
Stefan Kangas
fabf0065c5 Doc fixes in package.el
* lisp/emacs-lisp/package.el (package-process-define-package)
(package-generate-description-file): Doc fixes.
(package-generate-autoloads, package--write-file-no-coding)
(package--archive-file-exists-p, package-desc-status): Add doc
strings.
2020-01-19 00:51:58 +01:00
Paul Eggert
2391d3f45d ; spelling fixes 2020-01-17 14:24:15 -08:00
Alan Mackenzie
8d2fecdf6c Introduce element &error into edebug specification lists for macros
This fixes bug #37540.

* lisp/emacs-lisp/edebug.el (top level): New entry for &error in alist used to
associate elements with their handling functions.
(edebug-match-&error): New function.
(nested-backquote-form): Use the new element &error to abort instrumentation
on encountering a three deep nesting of backquotes (without intervening
commas).

* doc/lispref/edebug.texi (Specification List): Add an entry for &error.

* etc/NEWS: Add an entry for &error.
2020-01-17 21:53:13 +00:00
Glenn Morris
d97a77c481 Merge from origin/emacs-27
4df0c1c6c4 (origin/emacs-27) ; * src/lread.c (force_new_style_backquo...
069741b2f7 ; * etc/NEWS: Mention latest changes in checkdoc.  (Bug#38...
a785be29bf Fix wording and punctuation of a recent commit
0d3d3be35c Merge branch 'emacs-27' of git.savannah.gnu.org:/srv/git/e...
5da372e17e ; Minor edit in anti.texi

# Conflicts:
#	etc/NEWS
2020-01-17 07:50:28 -08:00
Eli Zaretskii
a785be29bf Fix wording and punctuation of a recent commit
* lisp/textmodes/ispell.el (ispell-correct-p): Doc fix.
* lisp/emacs-lisp/checkdoc.el (checkdoc-ispell-init): Fix
capitalization and punctuation of comments.
2020-01-17 11:35:35 +02:00
Damien Cassou
6338f69102 Add unattended spell-checking to checkdoc
This commit makes checkdoc capable of spell-checking even when the
user isn't using it interactively.  When TAKE-NOTES is non-nil,
checkdoc will run spell-checking (with ispell) and report spelling
mistakes.

Fixes: (bug#38583).

* lisp/textmodes/ispell.el (ispell-word): Extract part of it to
`ispell--run-on-word`.
(ispell--run-on-word): New function, extracted from `ispell-word`.
(ispell-error-checking-word): New function.
(ispell-correct-p): New function.  Use `ispell--run-on-word` and
`ispell-error-checking-word`.
* lisp/emacs-lisp/checkdoc.el (checkdoc-current-buffer): Pass
TAKE-NOTES to `checkdoc-start`.
(checkdoc-continue): Pass TAKE-NOTES to `checkdoc-this-string-valid`.
(checkdoc-this-string-valid): Add optional argument TAKE-NOTES and
pass it to `checkdoc-this-string-valid-engine`.
(checkdoc-this-string-valid-engine): Add optional argument TAKE-NOTES
and pass it to `checkdoc-ispell-docstring-engine`.
(checkdoc-ispell-init): Call `ispell-set-spellchecker-params` and
`ispell-accept-buffer-local-defs`.  These calls are required to
properly use ispell.  The problem went unnoticed until now because
checkdoc was only using ispell through the high-level command
`ispell-word` which takes care of all the initialization for the user.
(checkdoc-ispell-docstring-engine): Add optional argument TAKE-NOTES
to force reporting of spell-checking errors.  Throw error
when (checkdoc-ispell-init) fails configuring ispell.  Replace a
few (if cond nil body) with (unless cond body). Replace (let ((var
nil))) with (let (var)).  Replace (if (not (eq checkdoc-autofix-flag
'never)) body) with just body because `checkdoc-autofix-flag` is
checked at the beginning of the function.

(cherry picked from commit 25adbc4a5e)
2020-01-17 11:29:06 +02:00
Glenn Morris
e32bae6177 Replace add-hook load-hook with with-eval-after-load
* lisp/info.el (Info-install-speedbar-variables):
* lisp/cedet/ede.el (speedbar):
* lisp/cedet/semantic/imenu.el (speedbar):
* lisp/emacs-lisp/eieio-opt.el (eieio-class-speedbar-key-map):
* lisp/emacs-lisp/eieio-speedbar.el (eieio-speedbar-create):
* lisp/erc/erc-speedbar.el (erc-install-speedbar-variables):
* lisp/mail/rmail.el (rmail-install-speedbar-variables):
* lisp/progmodes/gud.el (gud-install-speedbar-variables):
Use with-eval-after-load.
2020-01-16 21:21:29 -08:00
Glenn Morris
ee0e3a792b edebug: remove ancient code for ancient XEmacs support libs
* lisp/emacs-lisp/edebug.el (edebug--require-cl-read): Remove.
(edebug-setup-hook, cl-read-load-hooks): Don't modify.
(edebug-unload-function): Don't modify cl-read-load-hooks.
2020-01-16 21:15:02 -08:00
Stefan Kangas
f18c78e611 Remove a FIXME from package.el
* lisp/emacs-lisp/package.el (package-unpack): Remove FIXME about
maybe deleting the package directory.  It was decided that this was
undesirable.  (Bug#7756)
2020-01-17 00:48:02 +01:00
Damien Cassou
25adbc4a5e Add unattended spell-checking to checkdoc
This commit makes checkdoc capable of spell-checking even when the
user isn't using it interactively. When TAKE-NOTES is non-nil,
checkdoc will run spell-checking (with ispell) and report spelling
mistakes.

Fixes: (bug#38583).

* lisp/textmodes/ispell.el (ispell-word): Extract part of it to
`ispell--run-on-word`.
(ispell--run-on-word): New function, extracted from `ispell-word`.
(ispell-error-checking-word): New function.
(ispell-correct-p): New function.  Use `ispell--run-on-word` and
`ispell-error-checking-word`.
* lisp/emacs-lisp/checkdoc.el (checkdoc-current-buffer): Pass
TAKE-NOTES to `checkdoc-start`.
(checkdoc-continue): Pass TAKE-NOTES to `checkdoc-this-string-valid`.
(checkdoc-this-string-valid): Add optional argument TAKE-NOTES and
pass it to `checkdoc-this-string-valid-engine`.
(checkdoc-this-string-valid-engine): Add optional argument TAKE-NOTES
and pass it to `checkdoc-ispell-docstring-engine`.
(checkdoc-ispell-init): Call `ispell-set-spellchecker-params` and
`ispell-accept-buffer-local-defs`.  These calls are required to
properly use ispell.  The problem went unnoticed until now because
checkdoc was only using ispell through the high-level command
`ispell-word` which takes care of all the initialization for the user.
(checkdoc-ispell-docstring-engine): Add optional argument TAKE-NOTES
to force reporting of spell-checking errors.  Throw error
when (checkdoc-ispell-init) fails configuring ispell.  Replace a
few (if cond nil body) with (unless cond body). Replace (let ((var
nil))) with (let (var)). Replace (if (not (eq checkdoc-autofix-flag
'never)) body) with just body because `checkdoc-autofix-flag` is
checked at the beginning of the function.
2020-01-16 20:41:48 +02:00
Andrea Corallo
c1d034fc27 Split relocated data into two separate arrays
Rework the functionality of the previous commit to be more efficient.
2020-01-12 13:22:30 +01:00
Andrea Corallo
93ed2c32df Move function reloc data into pure space during bootstrap 2020-01-11 14:34:58 +01:00
Mattias Engdegård
35d5694825 Mark 'catch' and 'condition-case' bytecodes as obsolete
They have not been generated by the byte-compiler since Emacs 25.

* lisp/emacs-lisp/bytecomp.el (byte-catch, byte-condition-case):
* src/bytecode.c (BYTE_CODES, exec_byte_code):
Mark as obsolete (since Emacs 25; they were still generated in 24.4).
2020-01-05 23:30:05 +01:00
Paul Eggert
088bfcc2d8 Move “Fix some broken conditional forms” to master
Revert 2020-01-04T19:17:12Z!eggert@cs.ucla.edu
which recently I installed into the emacs-27 branch by mistake.
These patches are now on master instead (via merging).
Do not merge to master.
2020-01-05 11:50:31 -08:00
Paul Eggert
f909433228 Merge from origin/emacs-27
448df8fec7 Improve doc-strings of 'quit-window' and 'quit-restore-win...
7f01dfca56 Fix MH-E bug #470: Show buffer discards text properties
f95a2b8301 Fix some broken conditional forms
28727444f1 Fix a scoping error in tramp-sudoedit.el
6cbdd048bd * lisp/autorevert.el (auto-revert-notify-handler): Fix bra...
076dd1f69a Fix typo in 'window_box_height'
2020-01-05 11:44:48 -08:00
Mattias Engdegård
2d5d0fa1b4 Remove generation of old bytecodes for catch/unwind
* lisp/emacs-lisp/bytecomp.el (byte-compile--use-old-handlers)
(byte-compile-condition-case, byte-compile-condition-case--old):
Remove.
(byte-compile-condition-case--new):
Rename to byte-compile-condition-case.
(byte-compile-catch, byte-compile-unwind-protect):
* lisp/emacs-lisp/cconv.el (cconv-convert, cconv-analyze-form):
* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
Simplify.
2020-01-05 11:19:52 +01:00
Paul Eggert
e086a9fddc * lisp/emacs-lisp/bindat.el: Remove obsolete comment. 2020-01-04 19:14:50 -08:00