40 lines
1.4 KiB
Text
40 lines
1.4 KiB
Text
croatoan is a set of bindings to the ncurses terminal library for
|
|
Common Lisp.
|
|
|
|
It is inspired by, but not derived from, cl-ncurses and cl-charms.
|
|
|
|
Its main goal is to provide a higher-level, lispy/CLOSy interface,
|
|
whereas the existing bindings clone the cryptic C API.
|
|
|
|
As of now, the library is in an early, but hopefully usable stage.
|
|
Ncurses is old and huge and it will take a while to cover completely.
|
|
|
|
The API is not yet stable.
|
|
|
|
It is developed and tested on Ubuntu 16.04 x86_64 and SBCL 1.5.7.
|
|
|
|
The only supported ncurses version is 6.x --with-abi-version=6.
|
|
Version 5.9 mostly works, but I will focus new efforts on 6.x.
|
|
|
|
Since many popular distributions ship ncurses --with-abi-version=5,
|
|
for full compatibility (wide characters, 256 colors and extended
|
|
mouse support), you will have to manually build ncurses 6.x.
|
|
|
|
The documentation is currently provided by the commented examples.
|
|
|
|
You are welcome to contribute and any form of help would be greatly
|
|
appreciated.
|
|
|
|
--
|
|
|
|
Since ncurses is not thread-safe, all IO has to occur in the main
|
|
thread of the REPL running in a terminal.
|
|
|
|
This makes it difficult to interact with ncurses from the Emacs SLIME
|
|
REPL which runs in its own thread.
|
|
|
|
A workaround is to pass all ncurses IO to the main thread via a
|
|
thread-safe queue. Basic support for this has been implemented.
|
|
|
|
A tutorial on interacting with ncurses from swank/slime is available
|
|
in docs/slime.md
|