cl-naive-deprecation
2024-10-12
No Description
1cl-naive-deprecation
We needed a generic way to mark depreciated functions in cl-naive-* libraries and the following stack overflow post gave us some inspiration.
https://stackoverflow.com/questions/71392756/best-practices-for-deprecating-functions
Of course the project took on a life of its own and we have the following.
The cl-naive-deprecation
package exports a facility to mark some
operators (function, generic function or macro), as being deprecated.
A compiler-macro is added to those operators, so that when the operator is used, a warning is produced at compilation time and the source file where it's used is recorded.
You can also supply code to replace the replaced operator with the new code to use.
We can get the list of deprecated operators and we may print a report.
You can mark operators as deprecated, removed or replaced.
1.1Alternatives Available to cl-naive-deprecation
https://shinmera.github.io/trivial-deprecate/ (only found this when submitting this project to quicklisp, pure fluke!).
1.2Design
N/A
1.3Use Cases
Erm, deprecation?
1.4Documentation
Documentation can be found in the docs folder in the repository.
1.5Tutorials
Simple step by step tutorial(s) to get you started fast.
1.6How To(s)
How to do different things can be found here.
1.7Dependencies
None.
1.8Supported CL Implementations
Should support all compliant implementations, no implementation specific code was used.
1.9Tests
To load and run the tests, clone the project and then:
(ql:quickload :cl-naive-deprecation.tests)
(cl-naive-tests:report (cl-naive-tests:run))