1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-04 22:50:59 -08:00
Commit graph

2359 commits

Author SHA1 Message Date
Paul Eggert
42e7e267e5 Avoid Fortran-style floating-point optimization
When optimizing arithmetic operations, avoid optimizations that
are valid for mathematical numbers but invalid for floating-point.
For example, do not optimize (+ 1 v 0.5) to (+ v 1.5), as they may
not be the same due to rounding errors.  In general,
floating-point numbers cannot be constant-folded, since that would
make .elc files platform-dependent.
* lisp/emacs-lisp/byte-opt.el (byte-optimize-associative-math):
Do not optimize floats.
(byte-optimize-nonassociative-math, byte-optimize-approx-equal)
(byte-optimize-delay-constants-math, byte-compile-butlast)
(byte-optimize-logmumble):
Remove; no longer used.
(byte-optimize-minus): Do not optimize (- 0 x) to (- x).
(byte-optimize-multiply): Do not optimize (* -1 x) to (- x).
(byte-optimize-divide): Do not optimize (/ x -1) to (- x).
(logand, logior, logxor): Optimize with byte-optimize-predicate
instead of with byte-optimize-logmumble.
* test/lisp/emacs-lisp/bytecomp-tests.el:
(byte-opt-testsuite-arith-data): Add a couple of test cases.
2018-03-23 12:59:18 -07:00
Michael Albinus
d088137473 Instrument tramp-test39-utf8
* test/lisp/net/tramp-tests.el (tramp--test-expensive-test):
Add the test name to the template.
(tramp-test39-utf8): Instrument test.
2018-03-23 17:39:29 +01:00
Stefan Monnier
3ddff08034 Fix bug#30846, along with misc cleanups found along the way
* test/src/data-tests.el (data-tests-kill-all-local-variables): New test.

* src/buffer.c (swap_out_buffer_local_variables): Remove.
Fuse the body of its loop into that of reset_buffer_local_variables.
(Fkill_buffer, Fkill_all_local_variables): Don't call it any more.
(reset_buffer_local_variables): Make sure the buffer's local binding
is swapped out before removing it from the alist (bug#30846).
Call watchers before actually killing the var.

* src/data.c (Fmake_local_variable): Simplify.
Use swap_in_global_binding to swap out any local binding, instead of
a mix of find_symbol_value followed by messing with where&found.
Don't call swap_in_symval_forwarding since the currently swapped
binding is never one we've modified.
(Fkill_local_variable): Use swap_in_global_binding rather than messing
with where&found to try and trick find_symbol_value into doing the same.

* src/alloc.c (mark_localized_symbol): 'where' can't be a frame any more.
2018-03-23 11:29:06 -04:00
Paul Eggert
011186279c Port emacs-module-tests to 32-bit Emacs
Fix a portability bug when emacs-module-tests.el is byte-compiled
with a 32-bit Emacs (where #x20000000 evaluates to a
floating-point number) and then is run on a 64-bit Emacs (where
the floating-point number causes a test failure).
* test/src/emacs-module-tests.el (mod-test-sum-test):
Don’t assume #x20000000 can be represented as an Emacs integer.
2018-03-22 09:33:33 -07:00
Glenn Morris
0afb436eeb Merge from origin/emacs-26
8ac621b (origin/emacs-26) Document DEFUN attributes
16d0cc7 * etc/NEWS: Add an entry for auth-source-pass.
cc1702f Fix the MSDOS build
daa9e85 Improve warning and error messages
7612dd1 Adjust eieio persistence tests for expected failure
f0cf4dc Let eieio-persistent-read read what object-write has written
40ad1ff Handle possible classtype values in eieio-persistent-read
4ec935d Add new tests for eieio persistence
47917d8 * lisp/gnus/gnus-cloud.el (gnus-cloud-synced-files): Fix doc ...
e32f352 * lisp/ibuf-ext.el (ibuffer-never-search-content-mode): Fix t...
5268f30 * doc/lispref/windows.texi (Selecting Windows): Fix a typo.
143b485 * doc/lispref/internals.texi (Writing Emacs Primitives): Fix ...
4ab4551 Firm up documentation of generalized variables
a5bf099 Improve documentation of Auto-Revert mode
ed05eaa Improvements in dired.texi

Conflicts:
	etc/NEWS
2018-03-22 07:50:37 -07:00
Michael Albinus
aeb107b630 Tag tramp-test39-utf8* as :unstable
* test/lisp/net/tramp-tests.el (tramp-test39-utf8)
(tramp-test39-utf8-with-stat, tramp-test39-utf8-with-perl)
(tramp-test39-utf8-with-ls): Tag the tests as :unstable.
2018-03-22 09:43:44 +01:00
Eric Abrahamsen
7612dd14b6 Adjust eieio persistence tests for expected failure
* test/lisp/emacs-lisp/eieio-tests/eieio-test-persist.el
 (eieio-test-persist-hash-and-vector,
  eieio-test-persist-interior-lists): Persistence does not currently
 handle deeply-nested objects. Expect current failures, and mark for
 future fixes.
2018-03-22 10:46:08 +08:00
Pierre Téchoueyres
4ec935dc5b Add new tests for eieio persistence
* test/lisp/emacs-lisp/eieio-tests/eieio-test-persist.el:
  (hash-equal): New comparison test for hash-tables.
  (persist-test-save-and-compare): Use test for hash-tables.
  (eieio-test-persist-hash-and-vector,
  eieio-test-persist-interior-lists): New tests.
2018-03-22 10:46:07 +08:00
Paul Eggert
cae9e0fa03 Port data-tests-popcnt to 32-bit Emacs
* test/src/data-tests.el (data-tests-popcnt):
Don’t assume Emacs integers can represent 32-bit quantities.
Change to a simple and straightforward approach, since runtime
performance is not important here.
2018-03-21 16:08:53 -07:00
Paul Eggert
e70d0c9e66 Add tests for Bug#30408
* test/src/editfns-tests.el (format-%d-large-float)
(format-%x-large-float, format-%o-invalid-float): New tests.
2018-03-21 12:11:52 -07:00
Glenn Morris
5648746756 Quieten eieio-test compilation
* test/lisp/emacs-lisp/eieio-tests/eieio-test-methodinvoke.el:
* test/lisp/emacs-lisp/eieio-tests/eieio-test-persist.el:
* test/lisp/emacs-lisp/eieio-tests/eieio-tests.el:
Remove obsolete name args where not being explicitly tested.
2018-03-21 14:13:53 -04:00
Paul Eggert
a5f190dd65 Merge from origin/emacs-26
23527013c7 ; Rewrap doc string
4328d5f744 Correct Info link markup
2fb52abd9e Improve documentation of 'with-help-window'
ec08c62f03 Minor improvements in building.texi
663aafe1ff * lisp/textmodes/bibtex.el (bibtex-mark-entry): activate mark
05781b2e88 ; Spelling fix
aa40014ba3 * doc/emacs/building.texi (Starting GUD): Mention 'guiler'.
23072e468f Yet more proofreading of the Emacs manual
ba5a372540 * doc/emacs/rmail.texi: Fix broken link.
6b2210cc29 ; Spelling fix
067c8c4f5b Fix recently-added POP doc glitch
fb3dc0e8aa More proofreading of the Emacs manual
a776ce7be6 Fix typo in the Emacs manual's VC chapter
7f27d42f0b Pass json-readtable-error data as a list (bug#30489)
10bd3b3af8 Improve word motion docs (Bug#30815)
2b8507fbdc Replace "carriage-return" by "carriage return" in manuals
2616cd94f1 Minor copyedits in mule.texi
36a1d52814 Fix problems caused by fontconfig-2.13.0
2018-03-20 08:59:39 -07:00
Michael Albinus
97608c60b8 Extend Tramp's UTF8 tests
* test/lisp/net/tramp-tests.el (tramp--test-utf8):
Apply more exhaustive tests.
2018-03-20 16:33:51 +01:00
Paul Eggert
b39ca55e29 ; Spelling fix 2018-03-19 18:55:14 -07:00
Glenn Morris
6b168a3b24 ; * test/lisp/info-xref-tests.el: Remove stray line from previous. 2018-03-19 17:08:46 -04:00
Glenn Morris
5c8c8f0a49 * test/lisp/info-xref-tests.el (info-xref-test-emacs-manuals): New. 2018-03-19 16:57:28 -04:00
Michael Albinus
1979bce57d Print top time consuming tests if advised
* lisp/emacs-lisp/ert.el (ert-summarize-tests-batch-and-exit):
New argument HIGH.  Print top-running tests.

* test/Makefile.in (check-doit): Use ${SUMMARIZE_TESTS}.

* test/README: Explain SUMMARIZE_TESTS.
2018-03-19 12:58:45 +01:00
Basil L. Contovounesios
7f27d42f0b Pass json-readtable-error data as a list (bug#30489)
* lisp/json.el (json-readtable-dispatch): Fix error data.
* test/lisp/json-tests.el (test-json-read): Check error data is a
list.
2018-03-18 23:13:29 -04:00
Nicolas Petton
9667ba25b4
Fix compilation warnings in subr-x-tests.el
* test/lisp/emacs-lisp/subr-x-tests.el (subr-x-test-if-let*-false)
(subr-x-test-when-let*-false): Make tests simpler and compiler warning
free.
2018-03-18 22:21:30 +01:00
Nicolas Petton
6d2b50a245
Add URL handler for file-name-directory (Bug#30444)
* lisp/url/url-handlers.el (url-handler-file-name-directory): New
function which handles special cases for `file-name-directory' and
URLs.
* test/lisp/url/url-handlers-test.el: New file.  Add tests for
`url-handler-file-name-directory'.
2018-03-18 20:47:35 +01:00
Michael Albinus
bcc146a668 Optimize tramp-tests.el
* test/lisp/net/tramp-tests.el (tramp--test-expensive-test):
Make it a defsubst.  Adapt all callees.
(tramp--test-print-duration): New defmacro.
(tramp-test11-copy-file, tramp-test12-rename-file)
(tramp-test21-file-links, tramp--test-special-characters):
Run some parts only if expensive tests are enabled.  (Bug#30807)
2018-03-17 15:10:46 +01:00
Michael Albinus
bcec2a8a39 Print test timings unconditionally
* lisp/emacs-lisp/ert.el (ert-batch-print-duration): Remove.
(ert-run-tests-batch): Adapt accordingly.

* test/Makefile.in:
* test/README: Remove TEST_PRINT_TEST_DURATION.
2018-03-17 10:25:22 +01:00
Michael Albinus
2d0853f62a Optimize "make check" and "make check-maybe"
* lisp/emacs-lisp/ert.el (ert-run-tests-batch): Print summary duration.

* test/Makefile.in (TEST_LOAD_EL): Set default to "no" for
targets all, check, and check-maybe.  (Bug#30807)

* test/README: Reflect recent changes in Makefile.

* test/lisp/net/tramp-archive-tests.el
(tramp-archive-test99-libarchive-tests): Tag it :unstable.
2018-03-16 16:19:10 +01:00
Glenn Morris
711b94c8bb * test/lisp/ses-tests.el: Quieten compilation. 2018-03-15 12:32:50 -04:00
Eli Zaretskii
9e73c9d038 Support variable-unquoting syntax in bat-mode
* lisp/progmodes/bat-mode.el (bat-font-lock-keywords): Fontify
argument numbers in %~n.  Suggested by Jostein Kjønigsen
<jostein@secure.kjonigsen.net> in emacs-devel.

* test/lisp/progmodes/bat-mode-tests.el
(bat-test-fontification-iter-var-1): Update the test to check also
the %~n construct.
2018-03-15 15:23:01 +02:00
Michael Albinus
c8c486bd38 Fix an error in tramp-archive-test42-auto-load
* test/lisp/net/tramp-archive-tests.el (tramp-archive-test42-auto-load):
Do not use "/ssh::" as test directory, it could harm.  (Bug#30807)
2018-03-15 11:32:50 +01:00
Michael Albinus
d993d00394 ; * test/README: Fix typo 2018-03-14 16:45:45 +01:00
Michael Albinus
84a946a519 Extend ert to print duration of single tests
* lisp/emacs-lisp/ert.el (ert-test-result): New slot ´duration'.
(ert-run-or-rerun-test): Set it.
(ert-batch-print-duration): New defvar.
(ert-run-tests-batch): Print duration if needed.

* test/Makefile.in (TEST_PRINT_TEST_DURATION): New variable.

* test/README: Explain TEST_PRINT_TEST_DURATION.
2018-03-14 16:21:06 +01:00
Noam Postavsky
4c33ad4a24 Fix line-wrapping for term.el (Bug#30775)
* lisp/term.el (term-emulate-terminal): Leave line-wrapping state if
point was moved after we entered it.
* test/lisp/term-tests.el (term-line-wrapping-then-motion): New test.
2018-03-13 21:58:38 -04:00
Glenn Morris
ae80854e9a Try to stop tramp test hangs on hydra
* test/lisp/net/tramp-tests.el (tramp-test41-asynchronous-requests):
Use fewer processes on hydra.
2018-03-13 18:45:38 -04:00
Paul Eggert
a3f26048a9 Merge from origin/emacs-26
5c91ca8 Fix create_process bug breaking eudc-expand-inline
e244fed Clarify that nil doesn't match itself as a cl-case clause (Bu...
df0e7e2 Improve SVG documentation
a34ef52 Document the "URL" keyword in library headers
fbc7f9a * test/lisp/international/mule-tests.el: Avoid local variable...
16faff6 ; * lisp/org/org-table.el: Replace obsolete alias in comment.
2018-03-10 18:30:54 -08:00
Noam Postavsky
60c4cf6311 ; Revert "; Tracing for eieio-test random failure (Bug#24503)"
The tracing seems to prevent the bug from happening.
2018-03-10 21:02:10 -05:00
Glenn Morris
6edbc03f8f * test/Makefile.in (check-declare): New PHONY rule. 2018-03-09 16:39:51 -05:00
Glenn Morris
d3ceff630e Quieten --without-json compilation of json-tests.el
* test/src/json-tests.el (json-serialize, json-insert)
(json-parse-string, json-parse-buffer): Declare.
2018-03-09 16:38:02 -05:00
Glenn Morris
01675be387 * test/lisp/vc/vc-tests.el (w32-application-type): Fix declaration. 2018-03-09 16:36:50 -05:00
Glenn Morris
94a59a6d83 Quieten compilation of some test/lisp files
* test/lisp/dired-tests.el (dired-test-bug27243-02)
(dired-test-bug27243-03, dired-test-bug27899)
(dired-test-with-temp-dirs): Remove unused local variables.
* test/lisp/hi-lock-tests.el (hi-lock-bug26666)
(hi-lock-test-set-pattern): Mark unused arguments.
* test/lisp/ses-tests.el (ses-tests-renamed-cells-row-insertion):
Remove unused global "ses-tests-trigger".
* test/lisp/simple-tests.el (line-number-at-pos-when-passing-point):
Remove unused local "pos".
* test/lisp/emacs-lisp/benchmark-tests.el (benchmark-tests):
Pacify compiler.
* test/lisp/emacs-lisp/package-tests.el (package-test-signed):
Replace obsolete function epg-configuration.
* test/lisp/ls-lisp-tests.el:
* test/lisp/eshell/em-ls-tests.el: Require dired.
* test/lisp/progmodes/ruby-mode-tests.el
(ruby-forward-sexp-skips-method-calls-with-keyword-names):
* test/lisp/vc/diff-mode-tests.el
(diff-mode-test-ignore-trailing-dashes): Replace interactive funcs.
2018-03-09 15:04:59 -05:00
Glenn Morris
fbc7f9ae44 * test/lisp/international/mule-tests.el:
Avoid local variables confusion.
2018-03-09 14:05:36 -05:00
Michael Heerdegen
f6bd7e0686 Revert last commit
This reverts commit af4697faa1.  It's
too late for this to be in the release.
2018-03-06 18:32:04 +01:00
Michael Heerdegen
af4697faa1 Define if-let* and derivatives as aliases for if-let etc
This commit reverts declaring `if-let' and `when-let' obsolete in
favor of the new `if-let*' and `when-let*' versions because of the
compiler warning mess (Bug#30039).  Instead we make foo-let* aliases
for foo-let.  The old single-tuple variable spec case is still
supported for backward compatibility.
* lisp/emacs-lisp/subr-x.el (if-let, when-let): Don't declare
obsolete.  Tweak edebug specs.
(and-let): Renamed from `and-let*' for compatibility with the names
`if-let' and `when-let'.
(if-let*, when-let*, and-let*): Define as aliases for `if-let',
`when-let' and `and-let'.
* test/lisp/emacs-lisp/subr-x-tests.el (if-let-single-tuple-case-test)
(when-let-single-tuple-case-test): New tests for the single-binding
tuple case.
In the whole file, prefer the names without "*".
2018-03-06 15:47:05 +01:00
Stefan Monnier
9793a46168 * test/lisp/emacs-lisp/package-tests.el: Improve signature tests
(package-test-signed): Don't rely on return value of 'package-install'.
Make sure 'package-install' does indeed install the package.
2018-02-22 17:00:00 -05:00
Glenn Morris
3267763e6b Speed up parallel make check by testing slower files first
* test/Makefile.in (SLOW_TESTS): New variable.
(ELFILES): Move slow tests to the front.
2018-02-21 20:49:40 -05:00
Glenn Morris
4fa90ff8f5 Merge from origin/emacs-26
e5a2933 (origin/emacs-26) lisp/vc/: documentation fixes
f21f8e6 Document 'desktop-files-not-to-save'
d8917eb Improve documentation of Profiling features
b228839 Improve indexing of "performance" in ELisp manual
ab67b3e Minor change in Emacs manual's VC chapter
c352434 Avoid memory corruption with specpdl overflow + edebug (Bug#3...
593bbda Document comment-fill-column in the manual (Bug#11636)
bd4cc8d * doc/emacs/dired.texi (Marks vs Flags): Copyedits.
69107f3 ; Fix doc typos related to indefinite articles
aaad1e6 Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/emac...
5906418 More fixes for the Emacs manual
9ab3df1 ; Fix doc typos related to indefinite articles
66a4e65 ; Fix doc typos related to indefinite articles
35e5c57 ; Fix doc typos related to indefinite articles
2018-02-17 07:50:28 -08:00
Allen Li
0f5cc9a085 Preserve special abbrev properties when writing
Fixes bug#29924

* lisp/abbrev.el (abbrev--write): Write abbrev properties when set.
2018-02-17 08:47:20 -05:00
Noam Postavsky
c352434ab8 Avoid memory corruption with specpdl overflow + edebug (Bug#30481)
If grow_specpdl fails due to outgrowing max_specpdl_size, it will
signal an error *before* growing the specpdl array.  Therefore, when
handling the signal, specpdl_ptr points past the end of the specpdl
array and any further use of of specpdl before unwinding (e.g., if
edebug binds signal-hook-function) will cause memory corruption.
* src/eval.c (signal_or_quit): Don't call `signal-hook-function' if
the specpdl_ptr is already past the end of the specpdl array.
* test/src/eval-tests.el (eval-tests--exceed-specbind-limit)
(eval-exceed-specbind-with-signal-hook): New test & helper function.
2018-02-16 22:13:34 -05:00
Noam Postavsky
82379efaaf ; Add test for iter-lambda variable shadowing (Bug#26073)
* test/lisp/emacs-lisp/generator-tests.el
(iter-lambda-variable-shadowing): New test.
2018-02-14 21:31:06 -05:00
Glenn Morris
875cb835f0 Merge from origin/emacs-26
0276743 (origin/emacs-26) Doc string fix in latin-alt.el
c9269af Minor improvements in package.texi
898a3e4 Minor improvement in Emacs user manual
8f7d718 * doc/lispref/anti.texi (Antinews): Replace 25.2 with 25.3.
989d0af Improve documentation of mini-window resizing
923e415 More changes in the Emacs manual
565adf2 Clarify that text-quoting-style doesn't affect *Info* (Bug#24...
2dd273b Mention that shell quoting of % on w32 may fail (Bug#19350)
19fa6d5 Fix --no-build-details for w32 and macOS
979944c * doc/lispref/anti.texi (Antinews): Add some more antinews.
c2727e3 Fix crashes when run with --no-build-details
dc08490 More changes for the manual
04c5bd5 Doc fixes for process functions (Bug#30349)
e209034 Fix shr and CSS 4 color maps
5fe8192 Yet another round of improvements in the manual

Conflicts:
	doc/emacs/files.texi
	test/lisp/subr-tests.el
2018-02-09 11:12:48 -08:00
Stefan Monnier
6b183f85e0 * lisp/emacs-lisp/cl-macs.el (cl--sm-macroexpand): Handle lambda!
(cl--old-macroexpand): Remove.
(cl--sm-macroexpand): Change its calling convention, so it can use
advice-add.  Extend re-binding treatment of vars so it applies to all
var-introducing forms rather than only to 'let'.
(cl-symbol-macrolet): Use advice-add rather than fset.
2018-02-08 21:41:21 -05:00
Noam Postavsky
2dd273b985 Mention that shell quoting of % on w32 may fail (Bug#19350)
* doc/lispref/os.texi (Security Considerations): Mention that quoting
of '%' assumes no '^' in variable names.
* test/lisp/subr-tests.el (shell-quote-argument-%-on-w32): New test,
demonstrating what doesn't work.
2018-02-08 19:10:11 -05:00
Basil L. Contovounesios
e209034536 Fix shr and CSS 4 color maps
* lisp/net/shr-color.el (shr-color-html-colors-alist): Fix typos.
Add RebeccaPurple.
* lisp/textmodes/css-mode.el (css--color-map): Add fuchsia-magenta
and aqua-cyan aliases.
* test/lisp/textmodes/css-mode-tests.el (css-test-property-values):
Bump color count.
2018-02-07 22:14:00 +01:00
Glenn Morris
a0c7157a16 Merge from origin/emacs-26
c787a49 (origin/emacs-26) * lisp/vc/vc-git.el (vc-git-print-log): Res...
b654791 * doc/emacs/misc.texi (Interactive Shell): Refer to node "Min...
f1102d2 Yet another round of fixing the Emacs manual
76b5a68 * etc/NEWS: Expunge the solecism "allow(s)" + infinitive
b4ff8cc Two minor fixes in Antinews
aafcd12 * etc/NEWS: Rename image-dired-thumb-job-limit
a893924 * lisp/simple.el (async-shell-command, shell-command): Fix gr...
699081f Fix deferred display of async shell-command buffers
d2d5e54 Mention remote file name completion in Emacs manual
f589f5a Yest another round of manual copyedits
1ed4089 Update xdisp.c commentary
e23de39 Fix Bug#30324
e1a9dc0 Recognize Org as builtin package (bug#30310)

Conflicts:
	etc/NEWS
2018-02-05 07:50:22 -08:00