mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2026-09-10 07:46:51 -04:00
Merge from origin/emacs-31
6800426743admin/make-manuals: Include type hierarchy auxiliary filesa013cdd3e8; * admin/make-tarball.txt: Various improvements.82ba6298aeMerge branch 'emacs-31' of git.savannah.gnu.org:/srv/git/...091398b045; * src/treesit.c: Fix wording and typos in commentary.83ef59ef5e; Update tree-sitter docstringsc51104de28; * ChangeLog.5: Fix position of one entry.
This commit is contained in:
commit
78df4833e6
|
|
@ -1,3 +1,7 @@
|
||||||
|
2026-08-24 Sean Whitton <spwhitton@spwhitton.name>
|
||||||
|
|
||||||
|
* Version 31.1 released.
|
||||||
|
|
||||||
2026-08-24 Sean Whitton <spwhitton@spwhitton.name>
|
2026-08-24 Sean Whitton <spwhitton@spwhitton.name>
|
||||||
|
|
||||||
Delete test that hangs
|
Delete test that hangs
|
||||||
|
|
@ -113,10 +117,6 @@
|
||||||
skip-syntax-forward always works regardless whether
|
skip-syntax-forward always works regardless whether
|
||||||
adaptive-fill-regexp has a match group for the prefix.
|
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>
|
2026-08-17 Sean Whitton <spwhitton@spwhitton.name>
|
||||||
|
|
||||||
* doc/misc/efaq.texi (New in Emacs 31): New node.
|
* doc/misc/efaq.texi (New in Emacs 31): New node.
|
||||||
|
|
|
||||||
|
|
@ -322,8 +322,8 @@ Optional argument TYPE is type of output (nil means all)."
|
||||||
(push (concat i j) res))))
|
(push (concat i j) res))))
|
||||||
(manual-misc-manuals root)))))))
|
(manual-misc-manuals root)))))))
|
||||||
(let* ((dest (expand-file-name "manual" root))
|
(let* ((dest (expand-file-name "manual" root))
|
||||||
(html-node-dir (expand-file-name "html_node" dest))
|
(html-node-dir (expand-file-name "html_node/" dest))
|
||||||
(html-mono-dir (expand-file-name "html_mono" dest))
|
(html-mono-dir (expand-file-name "html_mono/" dest))
|
||||||
(ps-dir (expand-file-name "ps" dest))
|
(ps-dir (expand-file-name "ps" dest))
|
||||||
(pdf-dir (expand-file-name "pdf" dest))
|
(pdf-dir (expand-file-name "pdf" dest))
|
||||||
(emacs (expand-file-name "doc/emacs/emacs.texi" root))
|
(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)
|
(dolist (manual misc)
|
||||||
(if (member type `(nil ,manual "misc"))
|
(if (member type `(nil ,manual "misc"))
|
||||||
(manual-misc-html manual root html-node-dir html-mono-dir)))
|
(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)))
|
(message "Manuals created in %s" dest)))
|
||||||
|
|
||||||
(defconst manual-doctype-string
|
(defconst manual-doctype-string
|
||||||
|
|
@ -761,6 +768,9 @@ style=\"text-align:left\">")
|
||||||
(and (equal type "lispintro")
|
(and (equal type "lispintro")
|
||||||
(string-match-p "\\.\\(eps\\|pdf\\)\\'" file)))
|
(string-match-p "\\.\\(eps\\|pdf\\)\\'" file)))
|
||||||
(copy-file file stem)))
|
(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
|
(with-temp-buffer
|
||||||
(let ((outvars make-manuals-dist-output-variables)
|
(let ((outvars make-manuals-dist-output-variables)
|
||||||
(case-fold-search nil))
|
(case-fold-search nil))
|
||||||
|
|
|
||||||
|
|
@ -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
|
easiest way of creating the new ChangeLog.N is to rename the file
|
||||||
ChangeLog (without the .N suffix) left over from the last release
|
ChangeLog (without the .N suffix) left over from the last release
|
||||||
(it is usually unversioned) and commit it, together with the
|
(it is usually unversioned) and commit it, together with the
|
||||||
modified Makefile.in. If you don't have the unversioned ChangeLog
|
modified Makefile.in.
|
||||||
file from the last release, you can take it from the release
|
|
||||||
tarball.
|
|
||||||
|
|
||||||
Now:
|
Now:
|
||||||
|
|
||||||
|
|
@ -133,6 +131,7 @@ General steps (for each step, check for possible errors):
|
||||||
Save the "*Authors*" buffer as etc/AUTHORS.
|
Save the "*Authors*" buffer as etc/AUTHORS.
|
||||||
Check the diff looks reasonable. Maybe add more entries to
|
Check the diff looks reasonable. Maybe add more entries to
|
||||||
authors-ambiguous-files or authors-aliases, and repeat.
|
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:
|
Commit and push any fixes to authors.el with a message like this:
|
||||||
|
|
||||||
; Update exported ChangeLog files and etc/AUTHORS
|
; 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
|
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
|
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
|
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
|
file. Merge the entries from the unversioned ChangeLog into the
|
||||||
actually made. Merge the entries from (unversioned) ChangeLog
|
top of the current versioned ChangeLog.N and commit that along
|
||||||
into the top of the current versioned ChangeLog.N and commit that
|
with etc/HISTORY. Name the tar file as emacs-XX.Y-rc1.tar.
|
||||||
along with etc/HISTORY. Then you can tag that commit as the
|
|
||||||
release.
|
|
||||||
|
|
||||||
Alternatively, you can commit and tag with the RC tag right away,
|
If you need another release candidate, remember to adjust the
|
||||||
and delay the final tagging until you actually decide to make a
|
ChangeLog and etc/HISTORY entries. Never replace an existing
|
||||||
release and announce it. The "git tag" command can tag a specific
|
tarfile! If you need to fix something, always upload it with a
|
||||||
commit if you give it the SHA1 of that commit, even if additional
|
different name.
|
||||||
commits have been pushed in the meantime.
|
|
||||||
|
|
||||||
Name the tar file as emacs-XX.Y-rc1.tar. If all goes well in the
|
If this is the release itself, copy the unversioned ChangeLog from
|
||||||
following week, you can simply rename the file and use it for the
|
the previous release candidate tarball into your worktree.
|
||||||
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.
|
|
||||||
|
|
||||||
4. autoreconf -i -I m4 --force && make bootstrap
|
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 ...
|
-- NEW_FILE.gz NEW_FILE.xz ...
|
||||||
|
|
||||||
For a release:
|
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 \
|
gnupload [--user your@gpg.key.email] --to ftp.gnu.org:emacs \
|
||||||
NEW_FILE.gz NEW_FILE.xz ...
|
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
|
12. After five minutes, verify that the files are visible at
|
||||||
<https://alpha.gnu.org/gnu/emacs/pretest/> for a pretest, or
|
<https://alpha.gnu.org/gnu/emacs/pretest/> for a pretest, or
|
||||||
<https://ftp.gnu.org/gnu/emacs/> for a release. If uploading a
|
<https://ftp.gnu.org/gnu/emacs/> for a release. If uploading a
|
||||||
pretest, the delete of the previous pretest a few minutes before the
|
pretest, the deletion of the previous pretest happens a few minutes
|
||||||
creation of the new file.
|
before the creation of the new file.
|
||||||
|
|
||||||
Download them and check the signatures and SHA1/SHA256 checksums.
|
Download them and check the signatures and SHA1/SHA256 checksums.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -421,19 +421,19 @@ init_treesit_functions (void)
|
||||||
:-)
|
:-)
|
||||||
|
|
||||||
Parsers in indirect buffers: We make indirect buffers share the
|
Parsers in indirect buffers: We make indirect buffers share the
|
||||||
parser of their base buffer. Indirect buffers and their base buffer
|
parser list of their base buffer. Indirect buffers and their base
|
||||||
share the same buffer content but not other buffer attributes. If
|
buffer share the same buffer content but not other buffer attributes.
|
||||||
they have separate parser lists, changes made in an indirect buffer
|
If they had separate parser lists, changes made in an indirect
|
||||||
will only update parsers of that indirect buffer, and not parsers in
|
buffer would only update parsers of that indirect buffer, and not
|
||||||
the base buffer or other indirect buffers, and vice versa. For that
|
parsers in the base buffer or other indirect buffers, and vice versa.
|
||||||
reason, the base buffer and all ot its indirect buffers share a
|
For that reason, the base buffer and all of its indirect buffers
|
||||||
single parser list. But each parser in this shared parser list still
|
share a single parser list. But each parser in this shared parser
|
||||||
points to their own buffer. On top of that, treesit-parser-list only
|
list still points to their own buffer. On top of that,
|
||||||
return parsers that belongs to the calling buffer. So ultimately,
|
treesit-parser-list only returns parsers that belong to the calling
|
||||||
from the user's POV, each buffer, regardless of indirect or not,
|
buffer. So ultimately, from the user's POV, each buffer, regardless
|
||||||
appears to have their own parser list. A discussion can be found in
|
of whether indirect or not, appears to have its own parser list. A
|
||||||
bug#59693. Note that that discussion led to an earlier design, which
|
discussion can be found in bug#59693. Note that the discussion led
|
||||||
is different from the current one.
|
to an earlier design, which is different from the current one.
|
||||||
|
|
||||||
Line and column reporting to tree-sitter: technically we had to send
|
Line and column reporting to tree-sitter: technically we had to send
|
||||||
tree-sitter the line and column position of each edit. But in
|
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.
|
NO-REUSE is non-nil, always create a new parser.
|
||||||
|
|
||||||
TAG can be any symbol except t, and defaults to nil. Different
|
TAG can be any symbol except t, and defaults to nil. Different
|
||||||
parsers can have the same tag.
|
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. */)
|
|
||||||
(Lisp_Object language, Lisp_Object buffer, Lisp_Object no_reuse,
|
(Lisp_Object language, Lisp_Object buffer, Lisp_Object no_reuse,
|
||||||
Lisp_Object tag)
|
Lisp_Object tag)
|
||||||
{
|
{
|
||||||
|
|
@ -2517,9 +2512,7 @@ DEFUN ("treesit-parser-list",
|
||||||
0, 3, 0,
|
0, 3, 0,
|
||||||
doc: /* Return BUFFER's parser list, filtered by LANGUAGE and TAG.
|
doc: /* Return BUFFER's parser list, filtered by LANGUAGE and TAG.
|
||||||
|
|
||||||
BUFFER defaults to the current buffer. If that buffer is an indirect
|
BUFFER defaults to the current buffer.
|
||||||
buffer, its base buffer is used instead. That is, indirect buffers
|
|
||||||
use their base buffer's parsers.
|
|
||||||
|
|
||||||
If LANGUAGE is non-nil, only return parsers for that language.
|
If LANGUAGE is non-nil, only return parsers for that language.
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue