https://github.com/yitzchak/trivial-ed-functions
A compatibility layer for ed hook extensions of various Common Lisp implementations.
https://github.com/yitzchak/trivial-ed-functions
common-lisp
Last synced: 3 months ago
JSON representation
A compatibility layer for ed hook extensions of various Common Lisp implementations.
- Host: GitHub
- URL: https://github.com/yitzchak/trivial-ed-functions
- Owner: yitzchak
- License: mit
- Created: 2021-05-31T16:55:17.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2021-07-02T01:02:00.000Z (almost 4 years ago)
- Last Synced: 2025-01-31T15:35:49.786Z (5 months ago)
- Topics: common-lisp
- Language: Common Lisp
- Homepage: https://yitzchak.github.io/trivial-ed-functions
- Size: 10.7 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# [trivial-ed-functions](https://github.com/yitzchak/trivial-ed-functions)
A compatibility layer for the `ED` hook extensions of various Common Lisp
implementations.## Usage
The main export is `trivial-ed-functions:*ed-functions*` which is a list of
hook functions. If supported by the current lisp implementation then functions
from the list `trivial-ed-functions:*ed-functions*` are called in order by
`cl:ed` with `X` as an argument until one of them returns non-`nil`; these
functions are responsible for signalling a `file-error` to indicate failure to
perform an operation on the file system.If the current implementation supports `*ed-functions*` then `:ed-functions`
will be present in `*features*`. If the current implementation does not support
`*ed-functions*` then it is still safe to add a function to the list, but this
function will never be invoked.## Supported Implementations
Recent versions of ABCL, ACL, CCL, CLASP, ECL, Mezzano, and SBCL all support
`*ed-functions*` in some way. ABCL, CLASP, ECL, and SBCL include native support.
ACL, CCL, and Mezzano support a single hook function, not a list
of functions. In this case, a hook function is automatically installed that
emulates the behavior of `*ed-functions*`.