Releases: radian-software/el-patch
Releases · radian-software/el-patch
el-patch 3.1
Features
- New user option
el-patch-use-advice
which can be customized to haveel-patch
install patches using the built-in advice system instead of overwriting function definitions directly.
Enhancements
- Some minor improvements to the way errors are reported from
el-patch-template
.
el-patch 3.0
Breaking changes
- The arguments to
el-patch-feature
after the feature name are no longer quoted byel-patch-feature
before being passed toel-patch-require-function
. This means you can write them as normal function arguments instead as unquoted symbols. - The default value of
el-patch-require-function
has changed fromrequire
toel-patch-default-require-function
, which ignores all arguments toel-patch-feature
aside from the feature name, and convertsrequire
errors to warnings (#47). - Emacs 25 is no longer supported.
Features
- You can define patch variants using the new variable
el-patch-variant
. For advanced usage. See #29 for discussion. - You can validate patches automatically during byte-compilation by setting
el-patch-validate-during-compile
to non-nil (#48).
Enhancements
- All
el-patch
forms are now fontified the same way as their built-in counterparts, e.g. the function name in anel-patch-defun
is fontified the same as the function name in adefun
would be. See #35.
Internal changes
- The autoloading mechanism used by
el-patch
has changed, reducing
the amount of work that is done at startup and simplifying the
implementation (#56). The user-facing impact is as follows:el-patch--patches
andel-patch-deftype-alist
are no longer autoloaded. If you use a compiled init-file, you may need to recompile it with the new version ofel-patch
; the code compiled with the old version ofel-patch
will not work at runtime with the new version ofel-patch
. However, evaluating patches in a compiled init-file, even one that usesel-patch-deftype
, still does not loadel-patch
.el-patch-defun
and analogous functions are now autoloaded, rather than fully defined at init time. This should not matter since a compiled init-file would have macroexpanded these into smaller components that do not have runtime dependencies onel-patch
.- There is a new file
el-patch-stub.el
that needs to be on theload-path
for autoloads to work. This should be taken care of automatically by any of the popular Emacs package managers.
el-patch 2.4
el-patch 2.3.1
Bugs fixed
- If a function is not defined, then
el-patch-validate-all
will proceed to check other patches before reporting the error, rather than crashing immediately (#46).
el-patch 2.3
Added
- New patch type
el-patch-cl-defun
(#39).
Enhancements
- When using
el-patch-ediff-patch
andel-patch-ediff-conflict
the compared buffers are put intoemacs-lisp-mode
automatically to enable syntax highlighting and Lisp navigation.
Bugs fixed
-
Under some circumstances, users received the error message
Unregistered definition type ‘defalias’
when evaluating an
el-patch
form. The problem could be worked around by explicitlyrequire
-ingel-patch
before the form underwent macroexpansion. However, it should now be impossible to get that error regardless of whetherel-patch
was loaded previously (#30).
el-patch 2.2.3
Enhancements
- The user option
el-patch-use-package-mode
is now correctly declared in the Custom groupel-patch
, rather than the separate groupel-patch-use-package
.
el-patch 2.2.2
Enhancements
- When a definition is patched,
el-patch
automatically adds a note to the docstring so that you know a patch is in effect. Previously, this behavior was suppressed if the modified definition did not contain a docstring at all; now, the note is included regardless, adding a docstring if one was missing (#31).
el-patch 2.2.1
This release includes only a minor documentation enhancement.
el-patch 2.2
New features
- The new patch directive
el-patch-concat
may be used to modify string literals in a patch without repeating their contents twice (#14). - You may now define functions analogous to
el-patch-defun
for your own definition types using the newel-patch-deftype
macro, which operates on the new user optionel-patch-deftype-alist
(#24). el-patch
now provides integration withuse-package
, controlled by the variableel-patch-enable-use-package-integration
and the minor modeel-patch-use-package-mode
. Two new keywords,:init/el-patch
and:config/el-patch
, are defined (#25).
Enhancements
- When a definition is patched,
el-patch
now automatically appends a note to the end of the docstring indicating that a patch was made (#14).
el-patch 2.1
New features
el-patch-let
now allows more than one body form; all body forms are spliced into the containing s-expression. This is fully backwards compatible.el-patch-literal
always allowed more than one body form, but this fact is now documented.
Bugfixes
-
Using
el-patch-let
could previously cause a circular list error. For example:(el-patch-let ((x y)) (x x x))
That has now been fixed.