Compat 29.1.3.0

This page summarizes the projects mentioned and recommended in the original post on /r/emacs

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • compat

    COMPATibility Library for Emacs Lisp

  • After that you can start using the functions, macros and variables provided by Compat. See the manual or the source for a detailed listing of all the provided functionality, and the NEWS file for new additions. Some functions have been extended between Emacs versions. For example the function plist-get supports an additional optional PREDICATE argument since Emacs 29. Such extended functions are provided by Compat too, but need special treatment if you want to use them. Compat provides the compat-call and compat-function macros specially for that purpose. Please take a look at the manual for further details.

  • vertico

    :dizzy: vertico.el - VERTical Interactive COmpletion

  • Compat is already widely rolled and may already be part of your setup, since it is used by the current Magit development version. I use Compat in all of my packages, including Vertico, Consult and Corfu. My packages usually depend on Emacs 27.1, which is not that far back. Given Compat I can keep supporting 27.1 for the foreseeable future. The reason for not supporting older Emacs versions is that these packages rely on proper behavior of the Emacs display engine. These examples show the limitations of Compat - while we can "polyfill" missing functions, we cannot fix bugs in the display engine or backport features relying on internals of the C runtime system.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • consult

    :mag: consult.el - Consulting completing-read

  • Compat is already widely rolled and may already be part of your setup, since it is used by the current Magit development version. I use Compat in all of my packages, including Vertico, Consult and Corfu. My packages usually depend on Emacs 27.1, which is not that far back. Given Compat I can keep supporting 27.1 for the foreseeable future. The reason for not supporting older Emacs versions is that these packages rely on proper behavior of the Emacs display engine. These examples show the limitations of Compat - while we can "polyfill" missing functions, we cannot fix bugs in the display engine or backport features relying on internals of the C runtime system.

  • corfu

    :desert_island: corfu.el - COmpletion in Region FUnction

  • Compat is already widely rolled and may already be part of your setup, since it is used by the current Magit development version. I use Compat in all of my packages, including Vertico, Consult and Corfu. My packages usually depend on Emacs 27.1, which is not that far back. Given Compat I can keep supporting 27.1 for the foreseeable future. The reason for not supporting older Emacs versions is that these packages rely on proper behavior of the Emacs display engine. These examples show the limitations of Compat - while we can "polyfill" missing functions, we cannot fix bugs in the display engine or backport features relying on internals of the C runtime system.

  • package-lint

    A linting library for elisp package metadata

  • Thank you for reading that far. If you have feedback, questions or improvement proposals, please let me know. I hope that Compat is useful for you. If you miss some important functionality, feel free to open an issue on the issue tracker. Any help in adding missing functionality is welcome. In case you are interested in upstream development, you may want to help with scanning through years of the Emacs Git log for added functionality. A laborious process, but the Emacs library diffs from package-lint are useful. Unfortunately package-lint does not yet support Compat and warns if you use compatibility functions. Also package-lint does not yet track argument number changes. Help with those package-lint issues would be greatly appreciated.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts