Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/s-expressionists/incless
A portable and extensible Common Lisp printer implementation
https://github.com/s-expressionists/incless
common-lisp extensible
Last synced: about 19 hours ago
JSON representation
A portable and extensible Common Lisp printer implementation
- Host: GitHub
- URL: https://github.com/s-expressionists/incless
- Owner: s-expressionists
- License: bsd-2-clause
- Created: 2020-12-16T15:47:49.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2024-07-30T14:12:13.000Z (7 months ago)
- Last Synced: 2024-07-30T17:51:48.676Z (7 months ago)
- Topics: common-lisp, extensible
- Language: Common Lisp
- Homepage:
- Size: 157 KB
- Stars: 7
- Watchers: 6
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Incless: a portable and extensible Common Lisp printer implemetation
This project implements `print-object` methods for many standard
classes and provides the interface to `write`, `print`, etc.# Requirements
[ABCL][], [Clasp][], [ECL][], and [SBCL][] is the only current
implementations that this system has been tested on.In addition to a clone of this repository in a location that is
discoverable by ASDF you will also need a clone of
[nontrivial-gray-streams][]. Incless does not implement pretty
printing or `format`. These systems are implemented by [Inravina][]
and [Invistra][] which work in coordination with Incless.# Usage
The core functionality is in the `incless` package, but the Common
Lisp-like interface of `write` and `print-object` is in the
`invistra-extrinsic` package and system. To call write try the
following in SBCL:```
* (asdf:load-system :incless-extrinsic)
T
* (incless-extrinsic:write :wibble)
:WIBBLE
NIL
```Incless can be loaded along with Inravina and Invistra to provide a
printer, pretty printer, and format. To load the complete stack try
the following:```
* (asdf:load-system :invistra-extrinsic)
T
* (incless-extrinsic:pprint '(loop for i in '(a b c)
unless (eq i b) do (stuff i) (quux i) and collect i))(LOOP FOR I IN '(A B C)
UNLESS (EQ I B)
DO (STUFF I)
(QUUX I)
AND COLLECT I)
* (invistra-extrinsic:format t "Wibble: ~a~%"
:quux)
Wibble: QUUX
NIL
```[ABCL]: https://armedbear.common-lisp.dev/
[CLASP]: https://github.com/clasp-developers/clasp
[ECL]: https://ecl.common-lisp.dev/
[Inravina]: https://github.com/s-expressionists/Inravina
[Invistra]: https://github.com/s-expressionists/Invistra
[SBCL]: http://sbcl.org
[SICL]: https://github.com/robert-strandh/SICL
[nontrivial-gray-streams]: https://github.com/yitzchak/nontrivial-gray-streams