From: John Wiegley Date: Tue, 12 Jan 2016 06:50:30 +0000 (-0800) Subject: Merge from origin/emacs-25 X-Git-Tag: emacs-26.0.90~2819^2~7 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=fee9e3ff5e3181e5e477849b5db94e7e39a4e0c4;p=emacs.git Merge from origin/emacs-25 ce4a052 Add defvar-local to lisp-imenu-generic-expression a0121bc Revert commit b1e3d14845517bfa9fa5d6d3840f3ab3160306fd 76fe2d5 * lisp/emacs-lisp/autoload.el (autoload-find-destination): Doc fix. 1ae088f * lisp/emacs-lisp/autoload.el (autoload-find-destination): b6b47af Properly encode/decode base64Binary data in SOAP c632466 Obey coding-system-for-write when writing stdout/stderr in batch 2f32cb5 * doc/misc/efaq.texi (Packages that do not come with Emacs): Update the URI of MELPA and marmalade-repo. Reported by CHENG Goa in https://lists.gnu.org/archive/html/emacs-devel/2016-01/msg00390.html. d2937aa * lisp/progmodes/opascal.el (opascal-mode-syntax-table): 5330c25 * lisp/progmodes/xscheme.el (xscheme-prompt-for-expression-exit): 7380990 Remove function wrongly on AWK Mode value of context fontification hook. d400753 * src/buffer.c: Stick with ASCII in doc string. 221240c Reword transient-mark-mode doc string 977d3ea Update doc string of 'selective-display' 229c3fa Make C++ buffers writeable when writing their initial text properties. f5c762c Additional changes for "make check-expensive" 1729cf3 ; * admin/MAINTAINERS: Remove myself. 33219d3 Apply text properties for <, > in new after-change function (C++ Java Modes). --- fee9e3ff5e3181e5e477849b5db94e7e39a4e0c4 diff --cc CONTRIBUTE index 19ec68221c4,9c53fe2cccc..323f9b9d060 --- a/CONTRIBUTE +++ b/CONTRIBUTE @@@ -262,12 -251,20 +262,20 @@@ Emacs uses ERT, Emacs Lisp Regression T "(ert)") or https://www.gnu.org/software/emacs/manual/html_node/ert/ for more information on writing and running tests. + If your test lasts longer than some few seconds, mark it in its + `ert-deftest' definition with ":tags '(:expensive-test)". + To run tests on the entire Emacs tree, run "make check" from the top-level directory. Most tests are in the directory -"test/automated". From the "test/automated" directory, run "make +"test/". From the "test/" directory, run "make " to run the tests for .el(c). See -"test/automated/Makefile" for more information. +"test/Makefile" for more information. + Tests which are tagged ":expensive-test" are enabled additionally, if + you run "make check-expensive" from the top-level directory. "make + " as mentioned above incorporates expensive tests for + .el(c). + ** Understanding Emacs Internals. The best way to understand Emacs Internals is to read the code, diff --cc lisp/emacs-lisp/autoload.el index 401b419a993,e688d6be725..3405b09e6f5 --- a/lisp/emacs-lisp/autoload.el +++ b/lisp/emacs-lisp/autoload.el @@@ -738,22 -717,12 +739,22 @@@ removes any prior now out-of-date autol ;; last-time is the time-stamp (specifying ;; the last time we looked at the file) and ;; the file hasn't been changed since. - ((listp last-time) - (and (listp last-time) - (not (time-less-p last-time file-time))) ++ ((listp last-time) (= (length last-time) 2) + (not (time-less-p last-time file-time))) + ;; FIXME? Arguably we should throw a + ;; user error, or some kind of warning, + ;; if we were called from update-file-autoloads, + ;; which can update only a single input file. + ;; It's not appropriate to use the output + ;; file modtime in such a case, + ;; if there are multiple input files + ;; contributing to the output. + ((and output-time (eq t last-time)) + (not (time-less-p output-time file-time))) ;; last-time is an MD5 checksum instead. - (and (stringp last-time) - (equal last-time - (md5 buf nil nil 'emacs-mule))))) + ((stringp last-time) + (equal last-time + (md5 buf nil nil 'emacs-mule))))) (throw 'up-to-date nil) (autoload-remove-section begin) (setq found t)))) diff --cc test/Makefile.in index db386cebe29,00000000000..62443a195ef mode 100644,000000..100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@@ -1,165 -1,0 +1,164 @@@ +### @configure_input@ + +# Copyright (C) 2010-2016 Free Software Foundation, Inc. + +# 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 . + +### Commentary: + +## Some targets: +## check: re-run all tests, writing to .log files. +## check-maybe: run all tests whose .log file needs updating +## filename.log: run tests from filename.el(c) if .log file needs updating +## filename: re-run tests from filename.el(c), with no logging + +### Code: + +SHELL = @SHELL@ + +srcdir = @srcdir@ +VPATH = $(srcdir) + +SEPCHAR = @SEPCHAR@ + +# We never change directory before running Emacs, so a relative file +# name is fine, and makes life easier. If we need to change +# directory, we can use emacs --chdir. +EMACS = ../src/emacs + +EMACS_EXTRAOPT= + +# Command line flags for Emacs. +# Apparently MSYS bash would convert "-L :" to "-L ;" anyway, +# but we might as well be explicit. +EMACSOPT = -batch --no-site-file --no-site-lisp -L "$(SEPCHAR)$(srcdir)" $(EMACS_EXTRAOPT) + +# Prevent any settings in the user environment causing problems. +unexport EMACSDATA EMACSDOC EMACSPATH GREP_OPTIONS + +## To run tests under a debugger, set this to eg: "gdb --args". +GDB = + +# The locale to run tests under. Tests should work if this is set to +# any supported locale. Use the C locale by default, as it should be +# supported everywhere. +TEST_LOCALE = C + +# The actual Emacs command run in the targets below. +# Prevent any setting of EMACSLOADPATH in user environment causing problems. +emacs = EMACSLOADPATH= LC_ALL=$(TEST_LOCALE) EMACS_TEST_DIRECTORY=$(srcdir) \ + $(GDB) "$(EMACS)" $(EMACSOPT) + +.PHONY: all check + +all: check + +%.elc: %.el + @echo Compiling $< + @$(emacs) -f batch-byte-compile $< + +## Ignore any test errors so we can continue to test other files. +## But compilation errors are always fatal. +WRITE_LOG = > $@ 2>&1 || { stat=ERROR; cat $@; }; echo $$stat: $@ + +## I'd prefer to use -emacs -f ert-run-tests-batch-and-exit rather +## than || true, since the former makes problems more obvious. +## I'd also prefer to @-hide the grep part and not the +## ert-run-tests-batch-and-exit part. +## +## We need to use $loadfile because: +## i) -L :$srcdir -l basename does not work, because we have files whose +## basename duplicates a file in lisp/ (eg eshell.el). +## ii) Although -l basename will automatically load .el or .elc, +## -l ./basename treats basename as a literal file (it would be nice +## to change this; bug#17848 - if that gets done, this can be simplified). +## +## Beware: it approximates 'no-byte-compile', so watch out for false-positives! +%.log: %.el + @if grep '^;.*no-byte-compile: t' $< > /dev/null; then \ + loadfile=$<; \ + else \ + loadfile=$ $@ +# Makefile ends here.