You can narrow news to a specific version by calling 'view-emacs-news'
with a prefix argument or by typing C-u C-h C-n.
-\f
-* Installation Changes in Emacs 26.2
-
----
-** Building Emacs with the '--with-xwidgets' option now requires WebKit2.
-To build Emacs with xwidgets support, you will need to install the
-webkit2gtk-4.0 package; version 2.12 or later is required.
-(This change was actually made in Emacs 26.1, but was not called out
-in its NEWS.)
+Temporary note:
++++ indicates that all necessary documentation updates are complete.
+ (This means all relevant manuals in doc/ AND lisp doc-strings.)
+--- means no change in the manuals is needed.
+When you add a new item, use the appropriate mark if you are sure it applies,
+ +++
+ ** Installing Emacs now installs the emacs-module.h file.
+ The emacs-module.h file is now installed in the system-wide include
+ directory as part of the Emacs installation. This allows to build
+ Emacs modules outside of the Emacs source tree.
+
\f
-* Startup Changes in Emacs 26.2
+* Installation Changes in Emacs 27.1
+
+** Emacs now uses GMP, the GNU Multiple Precision library.
+By default, if 'configure' does not find a suitable libgmp, it
+arranges for the included mini-gmp library to be built and used.
+The new 'configure' option --without-libgmp uses mini-gmp even if a
+suitable libgmp is available.
+
+** The new configure option '--with-json' adds support for JSON using
+the Jansson library. It is on by default; use 'configure
+--with-json=no' to build without Jansson support. The new JSON
+functions 'json-serialize', 'json-insert', 'json-parse-string', and
+'json-parse-buffer' are typically much faster than their Lisp
+counterparts from json.el.
+
+** The etags program now uses the C library's regular expression matcher
+when possible, and a compatible regex substitute otherwise. This will
+let developers maintain Emacs's own regex code without having to also
+support other programs. The new configure option '--without-included-regex'
+forces etags to use the C library's regex matcher even if the regex
+substitute ordinarily would be used to work around compatibility problems.
+
+** Emacs has been ported to the -fcheck-pointer-bounds option of GCC.
+This causes Emacs to check bounds of some arrays addressed by its
+internal pointers, which can be helpful when debugging the Emacs
+interpreter or modules that it uses. If your platform supports it you
+can enable it when configuring, e.g., './configure CFLAGS="-g3 -O2
+-mmpx -fcheck-pointer-bounds"' on Intel MPX platforms.
+
+** Emacs now normally uses a C pointer type instead of a C integer
+type to implement Lisp_Object, which is the fundamental machine word
+type internal to the Emacs Lisp interpreter. This change aims to
+catch typos and support -fcheck-pointer-bounds. The 'configure'
+option --enable-check-lisp-object-type is therefore no longer as
+useful and so is no longer enabled by default in developer builds,
+to reduce differences between developer and production builds.
-\f
-* Changes in Emacs 26.2
+** Ibuffer
---
-** Emacs is now compliant with the latest version 11.0 of the Unicode Standard.
-
----
-** New variable 'xft-ignore-color-fonts'.
-Default t means don't try to load color fonts when using Xft, as they
-often cause crashes. Set it to nil if you really need those fonts.
-
-\f
-* Editing Changes in Emacs 26.2
-
-\f
-* Changes in Specialized Modes and Packages in Emacs 26.2
-
-** Ibuffer
+*** All mode filters can now accept a list of symbols.
+This means you can now easily filter several major modes, as well
+as a single mode.
---
*** New toggle 'ibuffer-do-toggle-lock', bound to 'L'.
(insert-file-contents qfile)
(goto-char (point-min))
(while (not (eobp))
- (setq file-msg (buffer-substring (point) (line-end-position)))
+ (setq file-data (buffer-substring (point) (line-end-position)))
+ (setq file-elisp (concat file-data ".el"))
- (load file-elisp)
+ ;; FIXME: Avoid `load' which can execute arbitrary code and is hence
+ ;; a source of security holes. Better read the file and extract the
+ ;; data "by hand".
- ;;(load file-msg)
++ ;;(load file-elisp)
+ (with-temp-buffer
- (insert-file-contents (concat file-msg ".el"))
++ (insert-file-contents file-elisp)
+ (goto-char (point-min))
+ (pcase (read (current-buffer))
+ (`(setq smtpmail-recipient-address-list ',v)
+ (skip-chars-forward " \n\t")
+ (unless (eobp) (message "Ignoring trailing text in %S"
- (concat file-msg ".el")))
++ file-elisp))
+ (setq smtpmail-recipient-address-list v))
- (sexp (error "Unexpected code in %S: %S"
- (concat file-msg ".el") sexp))))
++ (sexp (error "Unexpected code in %S: %S" file-elisp sexp))))
;; Insert the message literally: it is already encoded as per
;; the MIME headers, and code conversions might guess the
;; encoding wrongly.