mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2026-09-09 23:36:34 -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>
|
||||
|
||||
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.
|
||||
|
|
|
|||
|
|
@ -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))
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
@ -231,8 +217,8 @@ General steps (for each step, check for possible errors):
|
|||
Alternatively, if you want to do this manually using the compressed
|
||||
tarballs:
|
||||
|
||||
tar tJf emacs-OLD.tar.xz | sed -e 's,^[^/]*,,' | sort > old_tmp
|
||||
tar tJf emacs-NEW.tar.xz | sed -e 's,^[^/]*,,' | sort > new_tmp
|
||||
tar tJf emacs-OLD.tar.xz | sed -e 's,^[^/]*,,' | sort >old_tmp
|
||||
tar tJf emacs-NEW.tar.xz | sed -e 's,^[^/]*,,' | sort >new_tmp
|
||||
diff -u old_tmp new_tmp
|
||||
|
||||
If this is the first pretest of a major release, just comparing
|
||||
|
|
@ -289,8 +275,8 @@ General steps (for each step, check for possible errors):
|
|||
|
||||
11. Decide what compression schemes to offer.
|
||||
For a release, at least gz and xz:
|
||||
gzip --best --no-name -c emacs-NEW.tar > emacs-NEW.tar.gz
|
||||
xz -c emacs-NEW.tar > emacs-NEW.tar.xz
|
||||
gzip --best --no-name -c emacs-NEW.tar >emacs-NEW.tar.gz
|
||||
xz -c emacs-NEW.tar >emacs-NEW.tar.xz
|
||||
For pretests, just xz is probably fine (saves bandwidth).
|
||||
|
||||
Now we will upload the files to the GNU FTP server. In the case of
|
||||
|
|
@ -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 ...
|
||||
|
||||
|
|
@ -321,8 +309,8 @@ General steps (for each step, check for possible errors):
|
|||
clearsigned directive file like this:
|
||||
|
||||
gpg -b FILE
|
||||
echo directory: emacs/pretest > FILE.directive (for a pretest)
|
||||
echo directory: emacs > FILE.directive (for a release)
|
||||
echo directory: emacs/pretest >FILE.directive (for a pretest)
|
||||
echo directory: emacs >FILE.directive (for a release)
|
||||
gpg --clearsign FILE.directive
|
||||
Upload by anonymous ftp to ftp://ftp-upload.gnu.org/ the files FILE,
|
||||
FILE.sig, FILE.directive.asc.
|
||||
|
|
@ -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.
|
||||
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue