Version 29.1.4.2 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.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'. • compat-27: Add `make-decoded-time'. • compat-27: Add `minibuffer-history-value'. • compat-27: Add `read-char-from-minibuffer'. • compat-27: Add `ring-resize'. • compat-28: Add `color-dark-p'. • compat-28: Add `directory-files-and-attributes' with COUNT argument. • compat-28: Add `text-quoting-style'. • compat-28: Add `with-window-non-dedicated'. • compat-29: Add `buffer-local-set-state' and `buffer-local-restore-state'. • compat-29: Add `compiled-function-p'. • compat-29: Add `count-sentences'. • compat-29: Add `delete-line'. • compat-29: Add `get-scratch-buffer-create'. • compat-29: Add `list-of-strings-p'. • compat-29: Add `plist-get' generalized variable. • compat-29: Add `plistp'. • compat-29: Add `read-multiple-choice' with LONG-FORM argument. • compat-29: Add `readablep'. • compat-29: Add `substitute-quotes'. • compat-29: Add `use-region-beginning', `use-region-end' and `use-region-noncontiguous-p'. … …