GNU ELPA - compat

compat Atom Feed

Description
Emacs Lisp Compatibility Library
Latest
compat-31.0.0.1.tar (.sig), 2026-May-04, 400 KiB
Maintainer
Philip Kaludercic <philipk@posteo.net>, Daniel Mendler <mail@daniel-mendler.de>
Website
https://github.com/emacs-compat/compat
Browse ELPA's repository
CGit or Gitweb
Badge
Manual
compat

To install this package from Emacs, use package-install or list-packages.

Full description

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.

Not every function provided in newer versions of Emacs is provided
here.  Some depend on new features from the C core, others cannot
be implemented to a meaningful degree.  Please consult the Compat
manual for details regarding the usage of the Compat library and
the provided functionality.

The main audience for this library are not regular users, but
package maintainers.  Therefore no commands, user-facing modes or
user options are implemented here.

Old versions

compat-31.0.0.0.tar.lz2026-May-0283.1 KiB
compat-30.1.0.1.tar.lz2025-Jun-1980.8 KiB
compat-30.1.0.0.tar.lz2025-Apr-0280.8 KiB
compat-30.0.2.0.tar.lz2025-Jan-0480.0 KiB
compat-30.0.1.0.tar.lz2024-Dec-1580.2 KiB
compat-30.0.0.0.tar.lz2024-Jul-0878.8 KiB
compat-29.1.4.5.tar.lz2024-Mar-3172.8 KiB
compat-29.1.4.0.tar.lz2023-Mar-0571.3 KiB
compat-29.1.3.4.tar.lz2023-Feb-1170.3 KiB
compat-29.1.3.0.tar.lz2023-Jan-2263.7 KiB
compat-29.1.2.0.tar.lz2023-Jan-1656.0 KiB
compat-29.1.1.1.tar.lz2023-Jan-1456.7 KiB
compat-29.1.1.0.tar.lz2023-Jan-0756.0 KiB
compat-29.1.0.1.tar.lz2023-Jan-0558.9 KiB
compat-28.1.2.2.tar.lz2022-Aug-2548.8 KiB
compat-28.1.2.0.tar.lz2022-Jul-1837.2 KiB
compat-28.1.1.3.tar.lz2022-Jun-1936.8 KiB
compat-28.1.1.0.tar.lz2022-Apr-2235.8 KiB
compat-28.1.0.5.tar.lz2022-Apr-1833.9 KiB
compat-28.1.0.0.tar.lz2022-Apr-0530.9 KiB

News

Release of "Compat" Version 31.0.0.1

  • compat-31: Improve with-work-buffer implementation.

(Release <2026-05-03 Sun>)

Release of "Compat" Version 31.0.0.0

  • compat-28: New pcase pattern cl-type.
  • compat-29: Add string-glyph-compose and string-glyph-decompose.
  • compat-31: New macros static-when and static-unless.
  • compat-31: New functions oddp and evenp.
  • compat-31: New functions minusp and plusp.
  • compat-31: New macros incf and decf.
  • compat-31: New function color-blend.
  • compat-31: New function completion-table-with-metadata.
  • compat-31: New function completion-list-candidate-at-point.
  • compat-31: New macro with-work-buffer.
  • compat-31: New function unbuttonize-region.
  • compat-31: New extended function seconds-to-string.
  • compat-31: New function hash-table-contains-p.
  • compat-31: New function remove-display-text-property.
  • compat-31: New functions drop-while, take-while, member-if, any, all.
  • compat-31: New function set-local.
  • compat-31: New function ensure-proper-list.
  • compat-31: New error API functions error-type-p, error-has-type-p, error-type and error-slot-value.
  • Drop support for Emacs 24.x. Emacs 25.1 is required now. In case Emacs 24.x support is still needed, Compat 30 can be used.

(Release <2026-05-01 Fri>)

Release of "Compat" Version 30.1.0.1

  • compat-28: Fix named-let tail recursion.

(Release <2025-06-19 Thu>)

Release of "Compat" Version 30.1.0.0

  • compat-30: Add oklab color functions.

(Release <2025-04-02 Wed>)

Release of "Compat" Version 30.0.2.0

  • compat-30: Rename trusted-files to trusted-content.

(Release <2025-01-04 Sat>)

Release of "Compat" Version 30.0.1.0

  • compat-30: New variable untrusted-content.
  • compat-30: New variable trusted-files.
  • compat-30: New function trusted-content-p.

(Release <2024-12-15 Sun>)

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

… …