Version 29.1.4.5 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 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'.
• compat-29: Add `set-transient-map' with optional arguments MESSAGE
and TIMEOUT.
(Release <2023-02-01 Wed>)
Release of "Compat" Version 29.1.3.1
════════════════════════════════════
• Fix regression, which prevented loading Compat in interpreted
mode. We ensure that Compat works interpreted and byte compiled by
running the entire test suite twice in the CI. See
<https://github.com/magit/magit/issues/4858> for the corresponding
Magit issue.
• compat-27: Add `file-name-unquote'.
• compat-28: Add `mark-thing-at-mouse'.
• compat-29: Replace `string-lines' with version from Emacs 29,
support optional KEEP-NEWLINES argument.
(Release <2023-01-25 Wed>)
Release of "Compat" Version 29.1.3.0
════════════════════════════════════
• compat-25: Add `hash-table-empty-p'.
• compat-25: Add `macroexp-parse-body' and `macroexp-quote'.
• compat-25: Add `region-noncontiguous-p'.
• compat-25: Add `save-mark-and-excursion'.
• compat-26: Add `read-answer'.
• compat-26: Add `region-bounds'.
• compat-27: Add `date-ordinal-to-time'.
• compat-27: Add `file-size-human-readable-iec'.
• compat-27: Add `major-mode-suspend' and `major-mode-restore'.
… …