Merge from origin/emacs-31

6800426743 admin/make-manuals: Include type hierarchy auxiliary files
a013cdd3e8 ; * admin/make-tarball.txt: Various improvements.
82ba6298ae Merge branch 'emacs-31' of git.savannah.gnu.org:/srv/git/...
091398b045 ; * src/treesit.c: Fix wording and typos in commentary.
83ef59ef5e ; Update tree-sitter docstrings
c51104de28 ; * ChangeLog.5: Fix position of one entry.
This commit is contained in:
Sean Whitton 2026-08-24 13:42:13 +01:00
commit 78df4833e6
4 changed files with 52 additions and 61 deletions

View file

@ -1,3 +1,7 @@
2026-08-24 Sean Whitton <spwhitton@spwhitton.name>
* Version 31.1 released.
2026-08-24 Sean Whitton <spwhitton@spwhitton.name>
Delete test that hangs
@ -113,10 +117,6 @@
skip-syntax-forward always works regardless whether
adaptive-fill-regexp has a match group for the prefix.
2026-08-24 Sean Whitton <spwhitton@spwhitton.name>
* Version 31.1 released.
2026-08-17 Sean Whitton <spwhitton@spwhitton.name>
* doc/misc/efaq.texi (New in Emacs 31): New node.

View file

@ -322,8 +322,8 @@ Optional argument TYPE is type of output (nil means all)."
(push (concat i j) res))))
(manual-misc-manuals root)))))))
(let* ((dest (expand-file-name "manual" root))
(html-node-dir (expand-file-name "html_node" dest))
(html-mono-dir (expand-file-name "html_mono" dest))
(html-node-dir (expand-file-name "html_node/" dest))
(html-mono-dir (expand-file-name "html_mono/" dest))
(ps-dir (expand-file-name "ps" dest))
(pdf-dir (expand-file-name "pdf" dest))
(emacs (expand-file-name "doc/emacs/emacs.texi" root))
@ -369,6 +369,13 @@ Optional argument TYPE is type of output (nil means all)."
(dolist (manual misc)
(if (member type `(nil ,manual "misc"))
(manual-misc-html manual root html-node-dir html-mono-dir)))
;; Auxiliary files
(when (member type '(nil "elisp" "elisp-mono" "elisp-node"))
(dolist (file '("doc/lispref/elisp_type_hierarchy.txt"
"doc/lispref/elisp_type_hierarchy.jpg"))
(let ((file (expand-file-name file root)))
(copy-file file html-mono-dir t)
(copy-file file (expand-file-name "elisp/" html-node-dir) t))))
(message "Manuals created in %s" dest)))
(defconst manual-doctype-string
@ -761,6 +768,9 @@ style=\"text-align:left\">")
(and (equal type "lispintro")
(string-match-p "\\.\\(eps\\|pdf\\)\\'" file)))
(copy-file file stem)))
(when (equal type "lispref")
(copy-file "../doc/lispref/elisp_type_hierarchy.txt" stem)
(copy-file "../doc/lispref/elisp_type_hierarchy.jpg" stem))
(with-temp-buffer
(let ((outvars make-manuals-dist-output-variables)
(case-fold-search nil))

View file

@ -102,9 +102,7 @@ General steps (for each step, check for possible errors):
easiest way of creating the new ChangeLog.N is to rename the file
ChangeLog (without the .N suffix) left over from the last release
(it is usually unversioned) and commit it, together with the
modified Makefile.in. If you don't have the unversioned ChangeLog
file from the last release, you can take it from the release
tarball.
modified Makefile.in.
Now:
@ -133,6 +131,7 @@ General steps (for each step, check for possible errors):
Save the "*Authors*" buffer as etc/AUTHORS.
Check the diff looks reasonable. Maybe add more entries to
authors-ambiguous-files or authors-aliases, and repeat.
If making a release, move the "Version NN.N released." back to the top.
Commit and push any fixes to authors.el with a message like this:
; Update exported ChangeLog files and etc/AUTHORS
@ -161,30 +160,17 @@ General steps (for each step, check for possible errors):
one, as described above). Pick a date about a week from now when
you intend to make the release. Use M-x add-release-logs from
admin/admin.el to add entries to etc/HISTORY and the ChangeLog
file. It's best not to commit these files until the release is
actually made. Merge the entries from (unversioned) ChangeLog
into the top of the current versioned ChangeLog.N and commit that
along with etc/HISTORY. Then you can tag that commit as the
release.
file. Merge the entries from the unversioned ChangeLog into the
top of the current versioned ChangeLog.N and commit that along
with etc/HISTORY. Name the tar file as emacs-XX.Y-rc1.tar.
Alternatively, you can commit and tag with the RC tag right away,
and delay the final tagging until you actually decide to make a
release and announce it. The "git tag" command can tag a specific
commit if you give it the SHA1 of that commit, even if additional
commits have been pushed in the meantime.
If you need another release candidate, remember to adjust the
ChangeLog and etc/HISTORY entries. Never replace an existing
tarfile! If you need to fix something, always upload it with a
different name.
Name the tar file as emacs-XX.Y-rc1.tar. If all goes well in the
following week, you can simply rename the file and use it for the
actual release. If you need another release candidate, remember
to adjust the ChangeLog and etc/HISTORY entries.
If you need to change only a file(s) that cannot possibly affect
the build (README, ChangeLog, NEWS, etc.) then rather than doing
an entirely new build, it is better to unpack the existing
tarfile, modify the file(s), and tar it back up again.
Never replace an existing tarfile! If you need to fix something,
always upload it with a different name.
If this is the release itself, copy the unversioned ChangeLog from
the previous release candidate tarball into your worktree.
4. autoreconf -i -I m4 --force && make bootstrap
@ -304,6 +290,8 @@ General steps (for each step, check for possible errors):
-- NEW_FILE.gz NEW_FILE.xz ...
For a release:
gnupload [--user your@gpg.key.email] --to alpha.gnu.org:emacs/pretest \
--delete NEW-rc1_FILE.xz
gnupload [--user your@gpg.key.email] --to ftp.gnu.org:emacs \
NEW_FILE.gz NEW_FILE.xz ...
@ -333,8 +321,8 @@ General steps (for each step, check for possible errors):
12. After five minutes, verify that the files are visible at
<https://alpha.gnu.org/gnu/emacs/pretest/> for a pretest, or
<https://ftp.gnu.org/gnu/emacs/> for a release. If uploading a
pretest, the delete of the previous pretest a few minutes before the
creation of the new file.
pretest, the deletion of the previous pretest happens a few minutes
before the creation of the new file.
Download them and check the signatures and SHA1/SHA256 checksums.

View file

@ -421,19 +421,19 @@ init_treesit_functions (void)
:-)
Parsers in indirect buffers: We make indirect buffers share the
parser of their base buffer. Indirect buffers and their base buffer
share the same buffer content but not other buffer attributes. If
they have separate parser lists, changes made in an indirect buffer
will only update parsers of that indirect buffer, and not parsers in
the base buffer or other indirect buffers, and vice versa. For that
reason, the base buffer and all ot its indirect buffers share a
single parser list. But each parser in this shared parser list still
points to their own buffer. On top of that, treesit-parser-list only
return parsers that belongs to the calling buffer. So ultimately,
from the user's POV, each buffer, regardless of indirect or not,
appears to have their own parser list. A discussion can be found in
bug#59693. Note that that discussion led to an earlier design, which
is different from the current one.
parser list of their base buffer. Indirect buffers and their base
buffer share the same buffer content but not other buffer attributes.
If they had separate parser lists, changes made in an indirect
buffer would only update parsers of that indirect buffer, and not
parsers in the base buffer or other indirect buffers, and vice versa.
For that reason, the base buffer and all of its indirect buffers
share a single parser list. But each parser in this shared parser
list still points to their own buffer. On top of that,
treesit-parser-list only returns parsers that belong to the calling
buffer. So ultimately, from the user's POV, each buffer, regardless
of whether indirect or not, appears to have its own parser list. A
discussion can be found in bug#59693. Note that the discussion led
to an earlier design, which is different from the current one.
Line and column reporting to tree-sitter: technically we had to send
tree-sitter the line and column position of each edit. But in
@ -2398,12 +2398,7 @@ already has a parser for LANGUAGE with TAG, return that parser, but if
NO-REUSE is non-nil, always create a new parser.
TAG can be any symbol except t, and defaults to nil. Different
parsers can have the same tag.
If that buffer is an indirect buffer, its base buffer is used instead.
That is, indirect buffers use their base buffer's parsers. Lisp
programs should widen as necessary should they want to use a parser in
an indirect buffer. */)
parsers can have the same tag. */)
(Lisp_Object language, Lisp_Object buffer, Lisp_Object no_reuse,
Lisp_Object tag)
{
@ -2517,9 +2512,7 @@ DEFUN ("treesit-parser-list",
0, 3, 0,
doc: /* Return BUFFER's parser list, filtered by LANGUAGE and TAG.
BUFFER defaults to the current buffer. If that buffer is an indirect
buffer, its base buffer is used instead. That is, indirect buffers
use their base buffer's parsers.
BUFFER defaults to the current buffer.
If LANGUAGE is non-nil, only return parsers for that language.