Version 30.0.0.0 of package Compat has just been released in GNU ELPA. You can now find it in M-x list-packages RET.
Compat describes itself as: ================================ Emacs Lisp Compatibility Library ================================ More at https://elpa.gnu.org/packages/compat.html ## Summary: Compat is the Elisp forwards compatibility library, which provides definitions introduced in newer Emacs versions. The definitions are only installed if necessary for your current Emacs version. If Compat is compiled on a recent version of Emacs, all of the definitions are disabled at compile time, such that no negative performance impact is incurred. The provided compatibility implementations of functions and macros are at least subsets of the actual implementations. Be sure to read the documentation string and the Compat manual. ## Recent NEWS: Release of "Compat" Version 30.0.0.0 ════════════════════════════════════ • compat-28: Mark `subr-native-elisp-p' as obsolete (renamed in Emacs 30). • compat-30: New function `char-to-name'. • compat-30: New function `obarray-clear'. • compat-30: New function `interpreted-function-p'. • compat-30: New function `primitive-function-p'. • compat-30: New function `closurep'. • compat-30: Add extended function `sort' with keyword arguments. • compat-30: New function `value<'. • compat-30: Add extended `copy-tree' with support for copying records with non-nil optional second argument. • compat-30: New macro `static-if'. • compat-30: New alias `drop'. • compat-30: New function `merge-ordered-lists'. • compat-30: New variables `completion-lazy-hilit' and `completion-lazy-hilit-fn' and new function `completion-lazy-hilit'. • compat-30: New function `require-with-check'. • compat-30: New functions `find-buffer' and `get-truename-buffer'. • compat-30: Add extended `completion-metadata-get' with support for `completion-category-overrides' and `completion-extra-properties'. (Release <2024-07-08 Mon>) Release of "Compat" Version 29.1.4.5 ════════════════════════════════════ • Minor optimization of `plist-get' and `plist-put'. • Minor compatibility adjustments for the Emacs 30 development version. • A minimal version of `compat.el' will be part of Emacs 30. Emacs :core packages can directly `(require 'compat)' without the `NOERROR' flag. Furthermore Compat will not be installed unnecessarily. If a package depending on Emacs 25.1 and Compat 29.1 is installed on Emacs 30.1, Compat 29.1 will not be installed from ELPA, since Emacs 30.1 already provides the required functionality. (Release <2024-03-16 Sat>) Release of "Compat" Version 29.1.4.4 ════════════════════════════════════ • Fix `Package-Requires' header in compat.el • Fix `Maintainer' header in compat.el (Release <2023-11-13 Mon>) Release of "Compat" Version 29.1.4.3 ════════════════════════════════════ • compat-29: Add function `char-uppercase-p'. • compat-29: Add function `window-configuration-equal-p'. (Release <2023-11-04 Sat>) Release of "Compat" Version 29.1.4.2 ════════════════════════════════════ • compat-28: Improve `make-separator-line' visuals on graphic displays. • compat-28: Add `native-comp-available-p', which always returns nil. • compat-29: Add variable `lisp-directory'. (Release <2023-07-30 Sun>) Release of "Compat" Version 29.1.4.1 ════════════════════════════════════ • compat-29: Add `directory-abbrev-apply'. • compat-29: Add `directory-abbrev-make-regexp'. (Release <2023-03-26 Sun>) Release of "Compat" Version 29.1.4.0 ════════════════════════════════════ • compat-27: Drop obsolete `compat-call dired-get-marked-files'. • compat-28: Add support for `defcustom' type `natnum'. • compat-29: Add `with-restriction' and `without-restriction'. • compat-29: Add `cl-constantly'. • compat-29: Drop `with-narrowing' which was renamed to `with-restriction'. • compat-28: Add support for `defcustom' type `key'. (Release <2023-03-05 Sun>) Release of "Compat" Version 29.1.3.4 ════════════════════════════════════ • Ensure that `seq' is required properly both at compile time and runtime, such that compilation of downstream packages works even if Compat itself is not compiled. Magit uses a complex continuous integration system, where Magit is compiled and tested, while the Compat dependency is not compiled. • compat-28: Add `process-lines-handling-status' and `process-lines-ignore-status'. (Release <2023-02-11 Sat>) Release of "Compat" Version 29.1.3.3 ════════════════════════════════════ • compat-27: Add `with-suppressed-warnings'. • compat-29: Add `cl-with-gensyms' and `cl-once-only'. • compat-29: Load `seq', which is preloaded on Emacs 29. (Release <2023-02-08 Wed>) Release of "Compat" Version 29.1.3.2 ════════════════════════════════════ • compat-26: Add `make-temp-file' with optional argument TEXT. • compat-27: Mark `compat-call dired-get-marked-files' as obsolete. See the section limitations in the Compat manual. • compat-29: Add `funcall-with-delayed-message' and `with-delayed-message'. • compat-29: Add `ert-with-temp-file' and `ert-with-temp-directory'. … …