Merge from origin/emacs-26
3f4b8e9
* src/data.c (Fmake_local_variable): Fix bug#34318b384996
Minor fixes in ELisp manual wrt syntax-table properties71fc6d2
* admin/notes/emba: New file.3aaa2d2
Fix Hunspell invocation for discovering its dictionaries # Conflicts: # test/src/data-tests.el
This commit is contained in:
commit
a29c70d29b
5 changed files with 105 additions and 7 deletions
64
admin/notes/emba
Normal file
64
admin/notes/emba
Normal file
|
@ -0,0 +1,64 @@
|
|||
-*- mode: outline; coding: utf-8 -*-
|
||||
|
||||
Copyright (C) 2019 Free Software Foundation, Inc.
|
||||
See the end of the file for license conditions.
|
||||
|
||||
NOTES FOR EMACS CONTINUOUS BUILD ON EMBA
|
||||
|
||||
A continuous build for Emacs can be found at
|
||||
<https://emba.gnu.org/emacs/emacs>, a Gitlab instance. It watches the
|
||||
Emacs git repository and starts a pipeline (jobset) if there are new
|
||||
changes. This happens for all Emacs branches.
|
||||
|
||||
* Mail notifications
|
||||
|
||||
In addition to the web interface, emba can send notifications by email
|
||||
when a job fails. It sends notifications about test status to
|
||||
<emacs-buildstatus@gnu.org>.
|
||||
|
||||
If you want to receive these notifications, please subscribe at
|
||||
<https://lists.gnu.org/mailman/listinfo/emacs-buildstatus>.
|
||||
|
||||
Alternatively, these notifications can be read via gmane at
|
||||
<nntp+news.gmane.org:gmane.emacs.buildstatus>.
|
||||
|
||||
The messages contain a URL to the log file of the failed job, like
|
||||
<https://emba.gnu.org/emacs/emacs/-/jobs/739/raw>.
|
||||
|
||||
* Emacs jobset
|
||||
|
||||
The Emacs jobset is defined in the Emacs source tree, file
|
||||
'.gitlab-ci.yml'. It could be adapted for every Emacs branch, see
|
||||
<https://emba.gnu.org/help/ci/yaml/README.md>.
|
||||
|
||||
Every job runs in a Debian docker container. It uses the local clone
|
||||
of the Emacs git repository to perform a bootstrap and test of Emacs.
|
||||
This could happen for several jobs with changed configuration, compile
|
||||
and test parameters.
|
||||
|
||||
* Emba configuration
|
||||
|
||||
The emba configuration files are hosted on
|
||||
<https://gitlab.com/emacs-ci/emba-ansible>.
|
||||
|
||||
* Identifying emba
|
||||
|
||||
Lisp packages, Makefiles, scripts, and other software could determine
|
||||
whether they run on emba by checking for the environment variable
|
||||
EMACS_EMBA_CI.
|
||||
|
||||
|
||||
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/>.
|
|
@ -556,8 +556,8 @@ the current syntax table in the usual way.
|
|||
|
||||
@defvar parse-sexp-lookup-properties
|
||||
If this is non-@code{nil}, the syntax scanning functions, like
|
||||
@code{forward-sexp}, pay attention to syntax text properties.
|
||||
Otherwise they use only the current syntax table.
|
||||
@code{forward-sexp}, pay attention to @code{syntax-table} text
|
||||
properties. Otherwise they use only the current syntax table.
|
||||
@end defvar
|
||||
|
||||
@defvar syntax-propertize-function
|
||||
|
@ -927,9 +927,9 @@ nicely.
|
|||
|
||||
@defvar multibyte-syntax-as-symbol
|
||||
If this variable is non-@code{nil}, @code{scan-sexps} treats all
|
||||
non-@acronym{ASCII} characters as symbol constituents regardless
|
||||
of what the syntax table says about them. (However, text properties
|
||||
can still override the syntax.)
|
||||
non-@acronym{ASCII} characters as symbol constituents regardless of
|
||||
what the syntax table says about them. (However, @code{syntax-table
|
||||
}text properties can still override the syntax.)
|
||||
@end defvar
|
||||
|
||||
@defopt parse-sexp-ignore-comments
|
||||
|
@ -939,7 +939,6 @@ whitespace by the functions in this section and by @code{forward-sexp},
|
|||
@code{scan-lists} and @code{scan-sexps}.
|
||||
@end defopt
|
||||
|
||||
@vindex parse-sexp-lookup-properties
|
||||
The behavior of @code{parse-partial-sexp} is also affected by
|
||||
@code{parse-sexp-lookup-properties} (@pxref{Syntax Properties}).
|
||||
|
||||
|
|
|
@ -1107,12 +1107,19 @@ dictionary from that list was found."
|
|||
null-device
|
||||
t
|
||||
nil
|
||||
"-D"
|
||||
;; Use -a to prevent Hunspell from
|
||||
;; trying to initialize its
|
||||
;; curses/termcap UI, which causes it
|
||||
;; to crash or fail to start in some
|
||||
;; MS-Windows ports.
|
||||
"-a"
|
||||
;; Hunspell 1.7.0 (and later?) won't
|
||||
;; show LOADED DICTIONARY unless
|
||||
;; there's at least one file argument
|
||||
;; on the command line. So we feed
|
||||
;; it with the null device.
|
||||
"-D" null-device)
|
||||
null-device)
|
||||
(buffer-string))
|
||||
"[\n\r]+"
|
||||
t))
|
||||
|
|
10
src/data.c
10
src/data.c
|
@ -1958,6 +1958,16 @@ Instead, use `add-hook' and specify t for the LOCAL argument. */)
|
|||
(current_buffer,
|
||||
Fcons (Fcons (variable, XCDR (blv->defcell)),
|
||||
BVAR (current_buffer, local_var_alist)));
|
||||
|
||||
/* If the symbol forwards into a C variable, then load the binding
|
||||
for this buffer now, to preserve the invariant that forwarded
|
||||
variables must always hold the value corresponding to the
|
||||
current buffer (they are swapped eagerly).
|
||||
Otherwise, if C code modifies the variable before we load the
|
||||
binding in, then that new value would clobber the default binding
|
||||
the next time we unload it. See bug#34318. */
|
||||
if (blv->fwd)
|
||||
swap_in_symval_forwarding (sym, blv);
|
||||
}
|
||||
|
||||
return variable;
|
||||
|
|
|
@ -669,4 +669,22 @@ comparing the subr with a much slower lisp implementation."
|
|||
(should (= (lsh -1 -1) most-positive-fixnum))
|
||||
(should-error (lsh (1- most-negative-fixnum) -1)))
|
||||
|
||||
(ert-deftest data-tests-make-local-forwarded-var () ;bug#34318
|
||||
;; Boy, this bug is tricky to trigger. You need to:
|
||||
;; - call make-local-variable on a forwarded var (i.e. one that
|
||||
;; has a corresponding C var linked via DEFVAR_(LISP|INT|BOOL))
|
||||
;; - cause the C code to modify this variable from the C side of the
|
||||
;; forwarding, but this needs to happen before the var is accessed
|
||||
;; from the Lisp side and before we switch to another buffer.
|
||||
;; The trigger in bug#34318 doesn't exist any more because the C code has
|
||||
;; changes. Instead I found the trigger below.
|
||||
(with-temp-buffer
|
||||
(setq last-coding-system-used 'bug34318)
|
||||
(make-local-variable 'last-coding-system-used)
|
||||
;; This should set last-coding-system-used to `no-conversion'.
|
||||
(decode-coding-string "hello" nil)
|
||||
(should (equal (list last-coding-system-used
|
||||
(default-value 'last-coding-system-used))
|
||||
'(no-conversion bug34318)))))
|
||||
|
||||
;;; data-tests.el ends here
|
||||
|
|
Loading…
Add table
Reference in a new issue