Releases: radian-software/el-patch
Releases · radian-software/el-patch
el-patch 2.1
New features
el-patch-letnow allows more than one body form; all body forms are spliced into the containing s-expression. This is fully backwards compatible.el-patch-literalalways allowed more than one body form, but this fact is now documented.
Bugfixes
-
Using
el-patch-letcould previously cause a circular list error. For example:(el-patch-let ((x y)) (x x x))That has now been fixed.
el-patch 2.0.1
Internal changes
el-patchnow uses lexical binding.el-patchis now tested on all supported Emacs versions.el-patchno longer uses the deprecatedelinttesting framework.
el-patch 2.0
Changed
el-patchcan now be used in your init-file without being loaded at
runtime. In other words, the patch definition macros expand, at
compile time, to code that does not referenceel-patch(#11).el-patchnow useselintto run its tests and stylistic
checks. Lines longer than 80 characters now fail the build.el-patchforms now have a well-defined return value, namely the
same as would have been returned by the corresponding non-el-patch
form (#15).
Fixed
el-patchpreviously failed with an error if you attempted to patch
an object which used a literal cons cell or improper list in its
definition. This has been fixed (#13).
el-patch 1.2
Added
el-patchnow has a Makefile for convenient byte-compilation,
linting, and table-of-contents updating.el-patchnow checks for byte-compilation and checkdoc warnings on
Travis CI (#7).- New macro
el-patch-feature(unrelated to the old obsolete
el-patch-featuremacro that was removed) which is a convenient way
to add feature-requiring functions toel-patch-pre-validate-hook
(#10). - New user option
el-patch-require-functionfor advanced users only.
It allows you to integrateel-patch-featurewith your package
manager, and other things like that.
Removed
- Deprecated patch directive
el-patch-featurehas been removed.
Fixed
- Messages emitted by
el-patch-validate-allnow have correct
pluralization (#9). - The documentation on
el-patch-validatewas not updated to reflect
its new signature in version 1.1.1. This has now been fixed.
el-patch 1.1.2
Added
- Patches can now be defined for more types of objects:
el-patch-defconst
- Custom group for
el-patch. - New user option
el-patch-aggressive-defvarto allow overriding the
existing value of a variable.
Changed
- Variables
el-patch-pre-validate-hookand
el-patch-post-validate-hookare now Custom variables.
Fixed
- Since version 1.1, the "But how does it work?" section of the README
contained an erroneous explanation implying thatsetandfset
were used to establish patched definitions. This has been replaced
with a correct explanation.
el-patch 1.1.1
Changed
- The function
el-patch-validatenow takes a patch name and type
rather than a patch definition. The remaining argumentsNOMSGand
RUN-HOOKShave not changed. - The meaning of the prefix argument has been inverted for
el-patch-validate. Now it runsel-patch-pre-validate-hookand
el-patch-post-validate-hookby default, and only omits doing so if
a prefix argument is provided.
Fixed
- Since version 1.1,
el-patch-validatefailed with an error in
el-patch--classify-definition-type. This has been fixed
(#8). - Since version 1.1, if a patch was defined in the same file as the
function it patched, the patch could not be validated. This has been
fixed. - Previously, when
el-patch-validatewas called noninteractively
with a non-nil value forRUN-HOOKS, it failed to run
el-patch-pre-validate-hook. This has been fixed.
el-patch 1.1
Added
- Patches can now be defined for more types of objects:
el-patch-defvarel-patch-defcustomel-patch-define-minor-mode
- New function
el-patch-getto get a patch definition by name. - Objects can now be renamed in a patch using
el-patch-swapon the
name (#4). - Actual description in the Commentary section of
el-patch.el
(#5). - MIT license
(melpa/melpa#4512). - Arbitrary functions can be run (to load patches) by adding things to
the new hookel-patch-pre-validate-hook. Cleanup can then be done
inel-patch-post-validate-hook.
Changed
- It is no longer necessary to specify
el-patch-featuredue to
improvements in theel-patchpatching mechanism. - The functions
el-patch-ediff-patch,el-patch-ediff-conflict, and
el-patch-unpatchnow take an object name and definition type
rather than a patch definition (or function name in the case of
el-patch-unpatch). Interactive usage has not changed.
Deprecated
- As a result of the aforementioned improvements,
el-patch-feature
is now a deprecated no-op.
Fixed
el-patch-splicepreviously acted the same asel-patch-wrap. Now
it functions correctly.- The patch definition macros now have their docstrings colored
correctly by the syntax highlighter (by specifying(declare (doc-string N))). .dir-locals.elis now ignored when validating patches
(#2).
el-patch 1.0
Added
- Public API functions:
- Functions for defining patches:
el-patch-defunel-patch-defmacroel-patch-defsubst
- Patch directives:
el-patch-addel-patch-removeel-patch-swapel-patch-wrapel-patch-spliceel-patch-letel-patch-literalel-patch-feature
- Functions for validating patches:
el-patch-validateel-patch-validate-all
- Functions for viewing patches:
el-patch-ediff-patchel-patch-ediff-conflict
- Functions for removing patches:
el-patch-unpatch
- Functions for defining patches: