mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 18:40:39 -08:00
Merge from origin/emacs-26
3f4b8e9* src/data.c (Fmake_local_variable): Fix bug#34318b384996Minor fixes in ELisp manual wrt syntax-table properties71fc6d2* admin/notes/emba: New file.3aaa2d2Fix 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
|
@defvar parse-sexp-lookup-properties
|
||||||
If this is non-@code{nil}, the syntax scanning functions, like
|
If this is non-@code{nil}, the syntax scanning functions, like
|
||||||
@code{forward-sexp}, pay attention to syntax text properties.
|
@code{forward-sexp}, pay attention to @code{syntax-table} text
|
||||||
Otherwise they use only the current syntax table.
|
properties. Otherwise they use only the current syntax table.
|
||||||
@end defvar
|
@end defvar
|
||||||
|
|
||||||
@defvar syntax-propertize-function
|
@defvar syntax-propertize-function
|
||||||
|
|
@ -927,9 +927,9 @@ nicely.
|
||||||
|
|
||||||
@defvar multibyte-syntax-as-symbol
|
@defvar multibyte-syntax-as-symbol
|
||||||
If this variable is non-@code{nil}, @code{scan-sexps} treats all
|
If this variable is non-@code{nil}, @code{scan-sexps} treats all
|
||||||
non-@acronym{ASCII} characters as symbol constituents regardless
|
non-@acronym{ASCII} characters as symbol constituents regardless of
|
||||||
of what the syntax table says about them. (However, text properties
|
what the syntax table says about them. (However, @code{syntax-table
|
||||||
can still override the syntax.)
|
}text properties can still override the syntax.)
|
||||||
@end defvar
|
@end defvar
|
||||||
|
|
||||||
@defopt parse-sexp-ignore-comments
|
@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}.
|
@code{scan-lists} and @code{scan-sexps}.
|
||||||
@end defopt
|
@end defopt
|
||||||
|
|
||||||
@vindex parse-sexp-lookup-properties
|
|
||||||
The behavior of @code{parse-partial-sexp} is also affected by
|
The behavior of @code{parse-partial-sexp} is also affected by
|
||||||
@code{parse-sexp-lookup-properties} (@pxref{Syntax Properties}).
|
@code{parse-sexp-lookup-properties} (@pxref{Syntax Properties}).
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1107,12 +1107,19 @@ dictionary from that list was found."
|
||||||
null-device
|
null-device
|
||||||
t
|
t
|
||||||
nil
|
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
|
;; Hunspell 1.7.0 (and later?) won't
|
||||||
;; show LOADED DICTIONARY unless
|
;; show LOADED DICTIONARY unless
|
||||||
;; there's at least one file argument
|
;; there's at least one file argument
|
||||||
;; on the command line. So we feed
|
;; on the command line. So we feed
|
||||||
;; it with the null device.
|
;; it with the null device.
|
||||||
"-D" null-device)
|
null-device)
|
||||||
(buffer-string))
|
(buffer-string))
|
||||||
"[\n\r]+"
|
"[\n\r]+"
|
||||||
t))
|
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,
|
(current_buffer,
|
||||||
Fcons (Fcons (variable, XCDR (blv->defcell)),
|
Fcons (Fcons (variable, XCDR (blv->defcell)),
|
||||||
BVAR (current_buffer, local_var_alist)));
|
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;
|
return variable;
|
||||||
|
|
|
||||||
|
|
@ -669,4 +669,22 @@ comparing the subr with a much slower lisp implementation."
|
||||||
(should (= (lsh -1 -1) most-positive-fixnum))
|
(should (= (lsh -1 -1) most-positive-fixnum))
|
||||||
(should-error (lsh (1- most-negative-fixnum) -1)))
|
(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
|
;;; data-tests.el ends here
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue