aboutsummaryrefslogtreecommitdiff
path: root/compat-macs.el
AgeCommit message (Collapse)Author
2023-01-06compat-defalias: Add missing debug declareDaniel Mendler
2023-01-06compat--function-definition: Add declare-functionDaniel Mendler
The functions are declared in order to avoid bytecompiler warnings about missing definitions at runtime. These warnings may be generated due to the dynamic unless fboundp check, which ensures that existing functions are not overridden.
2023-01-06compat-macs: Restore runtime checksDaniel Mendler
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.
2023-01-06Add runtime version checkDaniel Mendler
We must make sure that we don't load Compat in an incompatible Emacs version.
2023-01-06Rework the macros in compat-macsDaniel Mendler
- New macro compat--guarded-definition, which handles the generic feature and version checks (:feature, :min-version, :max-version). - compat--function-definition: Use compat--guarded-definition. - compat-defun, compat-defmacro: Use compat--function-definition. - compat-defvar: Use compat--guarded-definition. - compat-defalias: Use compat--guarded-definition. - compat--format-docstring: New helper function to format the compatibility docstring. Used by compat-defvar and compat-defun. - compat--condition-satisfied: New helper function which performs the version constraint checks. Used by compat--guarded-definition. - compat--check-attributes: New helper function which checks the attribute plists for validity. Used by compat--guarded-definition.
2023-01-06Remove deprecated prefixed compatibility functionsDaniel Mendler
These functions are only used by exactly two packages: Consult 0.30 (released) and Magit 3.4.0 (unreleased development version). Both packages have been updated to use compat-call.
2023-01-05Hotfix, add missing version checkDaniel Mendler
2023-01-05compat-macs: Fix docstringsDaniel Mendler
2023-01-05Exclusive bounds for :max-versionDaniel Mendler
2023-01-05Simplify macrosDaniel Mendler
2023-01-05Remove version checkDaniel Mendler
2023-01-05Remove :version keyDaniel Mendler
2023-01-05Add string-splitDaniel Mendler
2023-01-04compat-macs: Require subr-xDaniel Mendler
2023-01-04Use with-eval-after-load (24.4)Daniel Mendler
2023-01-04Mark tested functionsDaniel Mendler
2023-01-04RenameDaniel Mendler
2023-01-04Add UNTESTED labels behind compat-defuns for greppabilityDaniel Mendler
2023-01-04Update version numberDaniel Mendler
2023-01-04Run all checks at compile timeDaniel Mendler
2023-01-04Revert "Add compat-feature macro"Daniel Mendler
This reverts commit de7346396aab592610e05990aab154a02b73f46d.
2023-01-04Add compat-feature macroDaniel Mendler
2023-01-04Always require subr-x at compile timeDaniel Mendler
2023-01-04Require features at compile timeDaniel Mendler
2023-01-04Simplify the test suiteDaniel Mendler
2023-01-04Ensure that realname is always boundDaniel Mendler
2023-01-03Rename compat-funcall to compat-callDaniel Mendler
See the discussion with @tarsius in https://github.com/magit/magit/issues/4836
2023-01-03Move functions from compat--explicit- to compat--Daniel Mendler
2023-01-03Minor cleanupDaniel Mendler
2023-01-03Execute check inside of with-eval-after-load blockDaniel Mendler
2023-01-03compat-macs: Rename :prefix to :explicitDaniel Mendler
2023-01-03Deprecate all prefixed functionsDaniel Mendler
2023-01-03compat-macs: Minor simplificationDaniel Mendler
2023-01-03Disallow :realname to equal compat--<name>Daniel Mendler
I plan to use the naming convention compat--<name> for the compat-funcall and compat-function macros in the future. Intentionally use ugly compat--internal-* names. I hope we can remove some of those.
2023-01-03Add compat--with-feature helperDaniel Mendler
2023-01-03Minor simplificationDaniel Mendler
2023-01-03Remove :no-highlight from docstringDaniel Mendler
2023-01-03Minor simplification - remove type argument from compat--generate-functionDaniel Mendler
2023-01-03Disallow :prefix and :realname for compat-defvarDaniel Mendler
2023-01-03Update docstringsDaniel Mendler
2023-01-03Minor simplification, remove advice remnantsDaniel Mendler
2023-01-03Remove :note supportDaniel Mendler
2023-01-03compact-macs: Remove the advice mechanismDaniel Mendler
2023-01-03Remove compat--ignoreDaniel Mendler
2023-01-03Make some compat-macs functions privateDaniel Mendler
2023-01-03Avoid duplicating the package information in the headerDaniel Mendler
2023-01-03Rename compat-current-version to compat--current-versionDaniel Mendler
2023-01-03Always load prefixed definitionsDaniel Mendler
We will move away from prefixed definitions later on and introduce `compat-function' and `compat-funcall' macros. These macros make it possible to call compatibility functions with different calling conventions. The prefixed definitions will be deprecated. The problem with the prefixed definitions is two-fold: 1. They pollute the namespace and the API surface of Compat will become larger and larger with every version. 2. Since Compat is not part of Emacs itself, the prefixed definitions cannot be used by :core packages. By adding the `compat-funcall' and `compat-function' macro to the core itself, which is a minimal addition, using compatibility function with modified calling convention becomes possible.
2023-01-03Merge branch 'emacs-29.1'Philip Kaludercic
2023-01-03Update copyright yearsPhilip Kaludercic