[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNU ELPA] Compat version

From: ELPA update
Subject: [GNU ELPA] Compat version
Date: Sat, 07 Jan 2023 17:02:34 -0500

Version 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

## Summary:

  To allow for the usage of Emacs functions and macros that are
  defined in newer versions of Emacs, compat.el provides definitions
  that are installed ONLY if necessary.  If Compat is installed on a
  recent version of Emacs, all of the definitions are disabled at
  compile time, such that no negative performance impact is incurred.
  These reimplementations of functions and macros are at least
  subsets of the actual implementations.  Be sure to read the
  documentation string to make sure.

## Recent NEWS:

                         COMPAT.EL - CHANGELOG

1 Release of "Compat" Version

  • The macros in `compat-macs.el' have been rewritten and
    simplified. The refactoring allows to further refine the criteria
    under which compatibility aliases, functions, macros and variables
    are installed.
  • Remove deprecated, prefixed compatibility functions.
  • Remove deprecated features `compat-help', `compat-font-lock' and
  • Compat uses runtime checks (`boundp', `fboundp') to ensure that
    existing definitions are never overridden, when Compat is loaded on
    a newer Emacs than it was compiled on.
  • Compat compiles without byte compilation warnings on all supported
    Emacs versions. Warnings are treated as errors in the test suite.
  • Compat takes great care to remove unneeded definitions at compile
    time. On recent Emacs 29 the byte compiled files are empty and not
    loaded, such that Compat does not any cost to the Emacs process.
  • compat-26: Fix and test `image-property' setter.
  • compat-26: Fix and test `read-multiple-choice'.
  • compat-28: Fix and test `with-existing-directory'.
  • compat-28: Drop obsolete function `make-directory-autoloads'.
  • compat-29: Drop broken functions `string-pixel-width' and
    `buffer-text-pixel-size'. These functions had poor performance which
    lead to a downstream issue in the doom-modeline package. If a more
    efficient solution is possible, the function will be added back.
  • compat-29: Drop broken function `string-limit'.
  • compat-29: Drop broken macro `with-buffer-unmodified-if-unchanged',
    which relied on `buffer-hash' which does not exist on all supported
    Emacs versions.
  • compat-29: Add `pos-bol' and `pos-eol'.

  (Release <2023-01-07 Sat>)

2 Release of "Compat" Version

  • Add multiple new tests for existing APIs.
  • Fix bugs in compatibility functions: `setq-local', `proper-list-p,
    prop-match-p', `file-name-concat', `replace-regexp-in-region',
  • Add new Emacs 29 APIs. Some of them are still untested and may
    change. If you intend to use an Emacs 29 API please be careful and
    if possible contribute test cases. All untested functions are marked
    as `<UNTESTED>' in the Compat code. Over time tests for all
    functions will be added gradually.
  • Add the macros `compat-call' and `compat-function' to call
    compatibility functions. Since Compat avoids overwriting already
    existing functions, we must define separate compatibility function
    definitions for functions which changed their calling convention or
    behavior. These compatibility definitions can be looked up using
    `compat-function' and called with `compat-call'. For example `assoc'
    can be called with a `TESTFN' since Emacs 26. In Emacs 25 and older
    the calling convention was `(assoc KEY ALIST)'. In order to use the
    new calling convention you can use `(compat-call assoc KEY ALIST
  • Deprecate all `compat-*' prefixed functions. Instead use the
    aforementioned `compat-call' or `compat-function' macros.
  • Deprecate `compat-help.el' and `compat-font-lock.el.'
  • Development moved to GitHub.
  • BREAKING: Drop broken function `func-arity'. Using `func-arity' is
    generally discouraged and the function is hard to implement properly
    due to all the various function types. There it is unlikely that the
    function will get reintroduced in Compat.
  • BREAKING: Drop broken function `directory-files-recursively'. In
    case you need this function, a patch including tests is welcome.
  • BREAKING: Drop support for Emacs 24.3. Emacs 24.4 is required
    now. In case you still need Emacs 24.3 support, you can rely on

  (Release <2023-01-05 Thu>)

3 Release of "Compat" Version

  This is a minor release that hopes to address .

  (Release <2022-08-25 Thu>)

4 Release of "Compat" Version

  This is a minor release adding the following changes:

  • Add `derived-mode-p' defined in Emacs 27
  • Add `provided-mode-derived-p' defined in Emacs 27
  • Add `read-multiple-choice' defined in Emacs 26
  …  …

reply via email to

[Prev in Thread] Current Thread [Next in Thread]