PAX v0.1
Tags: tech, lisp, Date: 2022-02-16
PAX v0.1 is released. At this point, I consider it fairly complete. Here is the changelog for the last year or so.
New Features
- To reduce deployment size, made the MGL-PAX system autoload navigation, documentation generation, and transcription code.
- Symbols in the CL package are linked to the hyperspec like this:
PRINT, which renders asPRINT. - Hyperspec sections and issues can be linked to with the
CLHSlocative like this:[lambda lists][CLHS], which renders as lambda lists. - Added support for
[see this][foo function]and[see this][foo]style of linking. - Added
DECLARATIONlocative. - Added
READTABLElocative. - Added
SYMBOL-MACROlocative. - Added
METHOD-COMBINATIONlocative. - Added
EXPORTABLE-REFERENCE-Pto allow specializing decisions on whether to export a symbol inDEFPOSTbased onSECTION-PACKAGE. PAX no longer exports its documentation and drops theMGL-PAX-prefix from names like@MGL-PAX-LINKSto reduce clutter. - Downcasing now works well and is the default for PAX World.
- Warn on unresolvable reflinks.
Transcribe
- Transcription consistency checking is now customizable.
- Transcription consistency checking and dynamic environment can be controlled for code blocks.
- Errors during transcribing are included in the transcript.
Portability
- Tested on ABCL, AllegroCL, CCL, CLISP, CMUCL, ECL, and SBCL.
- SLIME
M-.is now as capable on all Lisps as the Swank implementation allows.
Improvements
- Generalized, cleaned up, and documented handling trimming of punctuation and plurals.
DOCUMENTworks onSTRINGs.- Autolinking for the same name happens at most once per docstring.
- Within the same docstring explicit links (in addition to autolinks) also prevent subsequent autolinking of the same object
- Unexported superclasses are not listed in the generated documentation of classes.
- Improved documentation.
- Introduced double backslash escapes to prevent downcasing in addition to linking.
- Removed
DESCRIBE-OBJECTmethod onSECTIONs. CallDOCUMENTdirectly. - Made URLs in the generated documentation more stable across implementations and made them more human readable. Existing URLs still work.
- Exported api for extending
DOCUMENTand FIND-SOURCE DOCUMENTcan produce reasonably readable output with:FORMAT:PLAIN(the default). It is now suitable for use in the REPL as a kind of replacement forCL:DOCUMENTATION.
Bugs
- Made Emacs-side parsing for
M-.navigation more robust. - Fixed documentation generation on
TRACEd functions. - Fixed lots of minor bugs.
Internals
- Tests moved to Try.
- Added lost of tests.
- Made documentation generation faster especially for small jobs.
- Improved error reporting.
- Autoloading no longer produces warnings on SBCL and fresh SLIME.
