Commit Graph

142462 Commits

Author SHA1 Message Date
Paul Eggert
cf95bb0213 Avoid some false matches in mark_maybe_pointer
This lets Emacs avoid marking some garbage as if it were in use.
On one test platform (RHEL 7.8, Intel Xeon Silver 4116) it
sped up ‘cd lisp; make compile-always’ by a bit over 1%.
* src/alloc.c (live_string_holding, live_cons_holding)
(live_symbol_holding, live_large_vector_holding)
(live_small_vector_holding):
Count only pointers that point to a struct component,
or are a tagged pointer to the start of the struct.
Exception: for non-bool-vector pseudovectors,
count any pointer past the header, since it’s too much
of a pain to write code for every pseudovector.
(live_vector_pointer): New function.
2020-08-31 00:05:56 -07:00
Paul Eggert
aa1b586a1a Omit no-longer-needed stack mark_maybe_object
* src/alloc.c (mark_memory): Do not bother using mark_maybe_object
on the stack, since mark_maybe_pointer now marks everything that
mark_maybe_object would.
2020-08-31 00:05:56 -07:00
Paul Eggert
2ff930d861 Fix GC bug with Lisp floats and --with-wide-int
On --with-wide-int platforms where Lisp_Object can be
put into non-adjacent registers, mark_maybe_pointer failed
to mark a float whose only reference was as a tagged pointer.
* src/alloc.c (live_float_holding): New function,
a generalization of the old live_float_p.
(live_float_p): Use it.
(mark_maybe_pointer): Use live_float_holding, not live_float_p.
2020-08-31 00:05:56 -07:00
Stefan Kangas
886ba068c8 Bind 'n' and 'p' in compilation-mode-map
* lisp/progmodes/compile.el (compilation-mode-map): Bind
'(next|previous)-error-no-select' to 'n' and 'p'.  (Bug#41844)
2020-08-30 21:12:33 +02:00
Stefan Kangas
6593d73928 Use lexical-binding in life.el and add tests
* lisp/play/life.el: Use lexical-binding.
(life--tick): Extract from...
(life): ...here.
(life--max-width, life--max-height): New variables.
(life-mode, life-setup): Use above variables.

* test/lisp/play/life-tests.el: New file.
2020-08-30 21:09:07 +02:00
Stefan Kangas
be2ef629ee Various life.el improvements
* lisp/play/life.el (life): New defgroup.
(life-step-time): New defcustom (lower default from 1 to 0.5).
(life): Use above new variable.  Make prefix arguments set step time
in tenths of a second instead of whole seconds.
(life-expand-plane-if-needed): Rename argument to step-time.

(life-setup): Fix running `M-x life' with existing buffer.

(life-patterns): Add three more classic patterns.
2020-08-30 21:09:07 +02:00
Stefan Kangas
87b4368862 Remove some XEmacs compat code from gamegrid.el
* lisp/play/gamegrid.el (gamegrid-setup-face): Remove XEmacs
compat code.
2020-08-30 21:09:07 +02:00
Stefan Kangas
2c284889e0 * lisp/play/tetris.el: Use lexical-binding. 2020-08-30 21:09:07 +02:00
Lars Ingebrigtsen
9d10a8ca05 Tweak background colours in shr when there's indentation
* lisp/net/shr.el (shr-fill-line): Get the background colour right
for the indentation, too.
2020-08-30 17:03:11 +02:00
Mauro Aranda
34e7617365 Respect :must-match for file types in customization buffers
* lisp/wid-edit.el (file widget): Add a :match and a :validate
function to the 'file widget, to be able to check if the widget
value is an existent file, when required (bug#25678).
2020-08-30 17:03:11 +02:00
João Távora
dd910dd2f8 Place flymake-eldoc-function at the end of eldoc-documentation-functions
Having it placed in the beginning of that hook meant it was mostly
impossible to track the args to a function call while writing it from
scratch, since most compilers issue a diagnostic about incorrect
number of arguments.

See bug#43103.

* lisp/progmodes/flymake.el (flymake-mode): Lower priority of
flymake-eldoc-function.
2020-08-30 14:55:36 +01:00
João Távora
bf018eefa2 ; tiny indentation fix to lisp/progmodes/elisp-mode.el
* lisp/progmodes/elisp-mode.el (elisp-eldoc-var-docstring): Fix
indentation.
2020-08-30 14:55:36 +01:00
Lars Ingebrigtsen
130bf51c41 Make format-prompt interpret a nil default value as "no default"
* doc/lispref/minibuf.texi (Text from Minibuffer): Document it.

* lisp/help-fns.el (describe-function): Adjust the caller.

* lisp/minibuffer.el (format-prompt): Interpret a nil default
value as "no default".
2020-08-30 15:22:20 +02:00
Lars Ingebrigtsen
6ac270dcd3 Fix compilation warning in snake.el
* lisp/play/snake.el (snake-reset-game): Avoid warning about
unused variable.
2020-08-30 14:16:07 +02:00
Michael Albinus
6803328561 * .gitlab-ci.yml (test-all): Run only when needed. 2020-08-30 14:05:55 +02:00
Stefan Kangas
cb1563f3ca Convert manual rmailmm tests to ert
* test/manual/rmailmm.el: Move from here...
* test/lisp/mail/rmailmm-tests.el: ...to here, and convert to ert.
2020-08-30 02:46:06 +02:00
Stefan Kangas
826192409a Convert unsafep tests to ert
* lisp/emacs-lisp/tcover-unsafep.el: Move from here...
* test/lisp/emacs-lisp/unsafep-tests.el: ...to here, and convert to
use ert instead of tcover.
2020-08-29 23:35:00 +02:00
Stefan Kangas
17291414b1 * lisp/play/snake.el: Use lexical-binding. 2020-08-29 22:47:39 +02:00
Stefan Kangas
2aeff0794a Use lexical-binding in more tests
* test/lib-src/emacsclient-tests.el:
* test/lisp/emacs-lisp/hierarchy-tests.el:
* test/lisp/eshell/eshell-tests.el:
* test/lisp/gnus/gnus-util-tests.el:
* test/lisp/progmodes/js-tests.el:
* test/lisp/textmodes/bibtex-tests.el:
* test/src/editfns-tests.el:
* test/src/fns-tests.el: Use lexical-binding.

* test/lisp/emacs-lisp/hierarchy-tests.el
(hierarchy-leafs-includes-lonely-roots):
* test/src/editfns-tests.el (transpose-test-get-byte-positions):
* test/src/fns-tests.el (fns-tests-func-arity):
Adjust for lexical-binding.
2020-08-29 22:41:51 +02:00
Paul Eggert
e709c187fd Mark failing fileio test on MS-Windows
* test/src/fileio-tests.el (fileio-tests--HOME-trailing-slash):
Expect failure on MS-Windows.
2020-08-29 13:34:40 -07:00
Alan Third
e2702ca5fb Run GNUstep build test more often
* .gitlab-ci.yml (test-gnustep): Include more files that may affect
the GNUstep build.
2020-08-29 16:32:44 +01:00
Stefan Kangas
665e05543c * lisp/mail/mspools.el: Remove redundant :group args. 2020-08-29 16:14:48 +02:00
João Távora
c7e297e906 Prevent ElDoc blinking when eldoc-documentation-enthusiast is used
This eldoc-documentation-strategy function didn't always obey protocol
since it returned nil sometimes, which the eldoc engine took it as a
hint for the "old" protocol to clear the echo area.

* lisp/emacs-lisp/eldoc.el (eldoc-documentation-enthusiast):
Return t.
(Version): Bump to 1.9.0
2020-08-29 14:29:22 +01:00
Ulrich Müller
f8484f6683 Delete duplicate definition for koi8-u coding system
* lisp/language/cyrillic.el (koi8-u): Delete duplicate definition.
2020-08-29 13:19:36 +02:00
Mattias Engdegård
63578dc435 * test/lisp/emacs-lisp/rx-tests.el: Improve test coverage. 2020-08-29 13:10:18 +02:00
Paul Eggert
7d5807277f Revert recent expand-file-name changes if DOS_NT
* src/fileio.c (Fexpand_file_name): Restore pre-August-26
behavior, if DOS_NT.  This should fix the recently-introduced
expand-file-name bugs on DOS_NT (Bug#26911).
2020-08-28 22:41:45 -07:00
Paul Eggert
2b59cfaaa3 * src/fileio.c (Fexpand_file_name): Omit unnecessary assignment. 2020-08-28 22:36:55 -07:00
Andrew G Cohen
726b758005 Allow direct choice of smtp authentication method
* lisp/mail/smtpmail.el (smtpmail-try-auth-methods): Let the
authorization credentials have an entry with key :smtp-auth containing
a preferred authentication mechanism.
2020-08-29 12:22:40 +08:00
Stefan Kangas
a811a618e0 ; Bump seq version to 2.22 2020-08-29 00:42:36 +02:00
Alan Third
72f66f70ee Fix Objective-C C99 build problem
* configure.ac (NS_IMPL_GNUSTEP): GCC appears to need to be told to
use C99 when compiling Objective-C.
2020-08-28 19:47:14 +01:00
Alan Third
89286b1f45 Add GNUstep build to Gitlab CI/CD
* .gitlab-ci.yml (test-gnustep): New test target.
2020-08-28 19:47:14 +01:00
Daniel Martín
6e25d61544 Add support for parsing column numbers in Visual Studio messages
* lisp/progmodes/compile.el (compilation-error-regexp-alist-alist):
Extend regular expression to match optional column numbers.
*
test/lisp/progmodes/compile-tests.el (compile-tests--test-regexps-data):
Add a test.
* test/lisp/progmodes/compile-tests.el (compile-test-error-regexps):
Update the total number of compilation errors in a test.
* etc/compilation.txt: Update compilation.txt with the newly supported
message format.
* etc/NEWS: Advertise the feature.
2020-08-28 14:45:15 -04:00
Michael Albinus
2af8f7a1e4 Fix Bug#43052
* test/lisp/net/tramp-tests.el (tramp-test04-substitute-in-file-name):
Make user name unique.  (Bug#43052)
2020-08-28 19:54:50 +02:00
Stefan Kangas
8d3160ec08 Add commands to run shell commands in project root
* lisp/progmodes/project.el (project-async-shell-command)
(project-shell-command): New commands to run 'async-shell-command'
and 'shell-command' in project's root directory.
(project-prefix-map): Bind commands to '!' and '&'.
* doc/emacs/maintaining.texi (Project File Commands): Document the
new commands.
* etc/NEWS: Announce the new commands.
2020-08-28 19:27:47 +02:00
Stefan Kangas
d2412492ca Make XEmacs compat aliases obsolete in warnings.el
* lisp/emacs-lisp/warnings.el (display-warning-minimum-level)
(log-warning-minimum-level): Make XEmacs compat aliases into obsolete
aliases for 'warning-minimum-level' and 'warning-minimum-log-level'.
2020-08-28 17:33:44 +02:00
Stefan Kangas
766cd0c7c3 Use lexical-binding in warnings.el and add tests
* lisp/warnings.el: Use lexical-binding.
Remove redundant :group args.

* test/lisp/warnings-tests.el: New file.
2020-08-28 17:33:44 +02:00
Eric Abrahamsen
7974422dfc New eieio-persistent-make-instance generic function
This allows override of the read process for eieio-persistent objects,
providing the possibility of matching read/write customization for
eieio-persistent subclasses.

* lisp/emacs-lisp/eieio-base.el (eieio-persistent-make-instance): New
generic function for constructing instances from object data written
to disk. Previously known as eieio-persistent-convert-list-to-object.
2020-08-28 08:20:28 -07:00
Eric Abrahamsen
4d741e577f Remove redundant slot validation in eieio-persistent-read
Actual object creation (in `make-instance') will later run all slot
values through cl-typep, which does a better job of validation. This
validation is redundant, and slows the read process down.

* lisp/emacs-lisp/eieio-base.el (eieio-persistent-fix-value): Rename
from `eieio-persistent-validate/fix-slot-value', as we no longer
validate, and we don't care about the slot definition.
(eieio-persistent-slot-type-is-class-p): Delete function.
(eieio-persistent-convert-list-to-object): Still call
`eieio--full-class-object', to trigger an autoload if necessary, but
discard the return value.
2020-08-28 08:20:28 -07:00
Harald Jörg
649a52822f Fix indent-region for identifiers with underscores in cperl-mode
* lisp/progmodes/cperl-mode.el (cperl-fix-line-spacing): Fix Bug#18985.
 Hash keys or function names starting with a Perl keyword followed
 by an underscore (as in "for_me" are no longer split into two words
 by M-x indent-region.
2020-08-28 16:33:13 +02:00
Stefan Kangas
d77dc2609f * lisp/mwheel.el: Improve package description. 2020-08-28 16:15:21 +02:00
Mattias Engdegård
f5ed8ded9d * test/src/fileio-tests.el: Preserve HOME when a test fails 2020-08-28 10:26:32 +02:00
Eli Zaretskii
43d0fbd270 Fix most of fileio-tests on MS-Windows
* test/src/fileio-tests.el (fileio-tests--HOME-trailing-slash)
(fileio-tests--expand-file-name-trailing-slash): Account for drive
letters in MS-Windows/MS-DOS file names.  (Bug#26911)
2020-08-28 09:58:50 +03:00
Paul Eggert
0bbc84630f Fix recently-introduced expand-file-name bug
The bug was that (expand-file-name "~") returned something
like "/home/eggert/" instead of "/home/eggert".
Problem	reported by Mattias Engdegård (Bug#26911#27).
* src/fileio.c (Fexpand_file_name): When concatenating NEWDIR to
NM, instead of stripping trailing slashes from NEWDIR (which can
turn non-symlinks into symlinks), strip leading slashes from NM.
This also simplifies the code by removing no-longer-needed DOS_NT
special-casing.  Also, remove an unnecessary ‘target[length] = 0;’
as that byte will be overwritten by the next memcpy anyway.
* test/src/fileio-tests.el (fileio-tests--HOME-trailing-slash):
New test.
2020-08-27 14:49:38 -07:00
Eric Abrahamsen
1153b238ae Set Gnus server 'closed status in gnus-close-server
* lisp/gnus/gnus-int.el (gnus-close-server): Set 'closed status here.
* lisp/gnus/gnus-group.el (gnus-group-suspend): Not here.
2020-08-27 14:19:07 -07:00
Eric Abrahamsen
6ff37fc439 Switch Gnus D-Bus signal from :session to :system
* lisp/gnus/gnus-dbus.el (gnus-dbus-register-sleep-signal): Apparently
this needs to be :system -- perhaps because PrepareForSleep is a
system-level event?
2020-08-27 14:19:07 -07:00
Michael Albinus
0016f5f149 Adapt tramp-tests
* test/lisp/net/tramp-tests.el (tramp-test05-expand-file-name)
(tramp-test05-expand-file-name-relative): Adapt tests.
2020-08-27 20:34:36 +02:00
Eli Zaretskii
85f42836b6 ; * etc/NEWS: Fix formatting of a recently-added entry. 2020-08-27 20:06:33 +03:00
Mauro Aranda
01819490b6 Keep the user theme in sync when marking a variable as set
* lisp/custom.el (customize-mark-as-set): Keep the user theme in sync
even if the new value of the variable is the saved-value or the
standard-value.  If we don't do this, custom themes might end up
stepping over the user preferences in a session (bug#28904).
2020-08-27 16:22:35 +02:00
Lars Ingebrigtsen
19bff57f60 Make minibuf-eldef respect minibuffer-default-prompt-format
* lisp/minibuf-eldef.el (minibuffer-default--in-prompt-regexps):
Take minibuffer-default-prompt-format into account.
2020-08-27 14:46:27 +02:00
Stefan Kangas
6a95676cce Substitute command keys in display-local-help
* lisp/help-at-pt.el (display-local-help): Pass 'help-echo' property
through 'substitute-command-keys' before displaying to be consistent
with tooltips.  (Bug#37628)

This was discussed in:
https://lists.gnu.org/archive/html/emacs-devel/2019-10/msg00090.html
2020-08-27 14:04:36 +02:00