GNU Emacs NEWS -- history of user-visible changes. Copyright (C) 2017-2020 Free Software Foundation, Inc. See the end of the file for license conditions. Please send Emacs bug reports to 'bug-gnu-emacs@gnu.org'. If possible, use 'M-x report-emacs-bug'. This file is about changes in Emacs version 28. See file HISTORY for a list of GNU Emacs versions and release dates. See files NEWS.27, NEWS.26, ..., NEWS.18, and NEWS.1-17 for changes in older Emacs versions. 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'. Temporary note: +++ indicates that all relevant manuals in doc/ have been updated. --- means no change in the manuals is needed. When you add a new item, use the appropriate mark if you are sure it applies, and please also update docstrings as needed. * Installation Changes in Emacs 28.1 ** Cairo is now used by default if found. '--with-cairo' is now the default, if the appropriate development files are found by 'configure' --- ** The ftx font backend driver has been removed. It was declared obsolete in Emacs 27.1. * Startup Changes in Emacs 28.1 * Changes in Emacs 28.1 * Editing Changes in Emacs 28.1 * Changes in Specialized Modes and Packages in Emacs 28.1 +++ ** Dired shows in a different color broken or circular links. * New Modes and Packages in Emacs 28.1 * Incompatible Lisp Changes in Emacs 28.1 ** 'equal' no longer examines some contents of window configurations. Instead, it considers window configurations to be equal only if they are 'eq'. To compare contents, use 'compare-window-configurations' instead. This change helps fix a bug in 'sxhash-equal', which returned incorrect hashes for window configurations and some other objects. ** The obsolete function 'thread-alive-p' has been removed. * Lisp Changes in Emacs 28.1 ** The module header 'emacs-module.h' now contains type aliases 'emacs_function' and 'emacs_finalizer' for module functions and finalizers, respectively. ** Module functions can now install an optional finalizer that is called when the function object is garbage-collected. Use 'set_function_finalizer' to set the finalizer and 'get_function_finalizer' to retrieve it. * Changes in Emacs 28.1 on Non-Free Operating Systems +++ ** On macOS, Emacs can now load dynamic modules with a '.dylib' suffix. 'module-file-suffix' now has the value ".dylib" on macOS, but the '.so' suffix is supported as well. ---------------------------------------------------------------------- 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 . +++ ** 'read-number' now has its own history variable. Additionally, the function now accepts a HIST argument which can be used to specify a custom history variable. +++ ** Input history for 'goto-line' is now local to every buffer. Each buffer will keep a separate history of line numbers used with 'goto-line'. This should help making faster the process of finding line numbers that were previously jumped to. Local variables: coding: utf-8 mode: outline paragraph-separate: "[ ]*$" end: