ciel/docs
2021-06-03 15:40:54 +02:00
..
assets (minor) add assets/ 2020-12-02 14:20:48 +01:00
.nojekyll doc: setup docsify 2020-11-06 15:00:12 +01:00
_coverpage.md version: 0.0-dev 2021-01-17 00:53:18 +01:00
_navbar.md doc: add forgotten navbar with "More", add three special pages (symbols from xyz) 2021-05-12 12:07:25 +02:00
_sidebar.md see also: CLNG 2021-01-15 09:17:49 +01:00
after-plus.jpeg doc: copy README to docs 2020-11-06 15:00:11 +01:00
alexandria.md add generic-ciel by removing a couple conflicting symbols 2021-05-12 11:57:36 +02:00
before.jpeg doc: copy README to docs 2020-11-06 15:00:11 +01:00
dependencies.md auto-document the exported symbols for: alexandria, trivial-types 2020-12-02 00:04:26 +01:00
FAQ.md docs: FAQ: mention the new core-builder 2020-12-07 13:32:26 +01:00
index.html add :edit special command (magic-ed) 2020-12-15 13:24:34 +01:00
install.md (minor) update doc, REPL commands start with % 2021-05-12 11:59:43 +02:00
language-extensions.md don't enable pythonic triple quote syntax by default 2021-06-03 15:40:54 +02:00
libraries.md docs: mv sections from "libraries" to "language extensions" 2020-12-11 00:41:25 +01:00
README.md (minor) update doc, REPL commands start with % 2021-05-12 11:59:43 +02:00
repl.md REPL: special commands start with % (%help) 2021-02-19 10:24:50 +01:00
see-also.md see also: CLNG 2021-01-15 09:17:49 +01:00
serapeum.md add generic-ciel by removing a couple conflicting symbols 2021-05-12 11:57:36 +02:00
trivial-types.md auto-document the exported symbols for: alexandria, trivial-types 2020-12-02 00:04:26 +01:00

CIEL

CIEL is a collection of useful libraries.

It's Common Lisp, batteries included.

Questions, doubts? See the FAQ.

Status: it's very much a work in progress, but it should always be usable from master.

Rationale

One of our goals is to make Common Lisp useful out of the box for mundane tasks -by today's standards.

Consequently, we ship libraries to handle JSON and CSV, as well as others to ease string manipulation, to have regular expressions out of the box, for threads and jobs scheduling, for HTTP and URI handling, to create simple GUIs with Ltk, and so on. You can of course do all this without CIEL, but then you'd have to install the library manager (Quicklisp) first and load these libraries into your Lisp image every time you start it. Now, you have them at your fingertips whenever you start CIEL. Some of the libraries we bring in are for extending the language syntax a bit. For example, we include the Trivia library for pattern matching.

We also aim to soften the irritating parts of standard Common Lisp. A famous one, puzzling for beginners and non-optimal for seasoned lispers, is the creation of hash-tables. We include the dict function from the Serapeum library (which we enhanced further with a pull request):

CIEL-USER> (dict :a 1 :b 2 :c 3)

which prints:

(dict
 :A 1
 :B 2
 :C 3
)

In standard Common Lisp, the equivalent is more convoluted:

  (let ((ht (make-hash-table :test 'equal)))
    (setf (gethash :a ht) 1)
    (setf (gethash :b ht) 2)
    (setf (gethash :c ht) 3)
    ht)
;; #<HASH-TABLE :TEST EQUAL :COUNT 3 {1006CE5613}>
;; (and we don't get a readable representation, so our example is not even equivalent)

We also add some missing functions. For example, after you used parse-integer, you are probably looking for a parse-float function… but you can't find it, because it isn't defined by the standard. You must install a third-party library. Now you have it.

Moreover, we want to bring a user friendly REPL on the terminal, with bells and whistles useful to the developer and people living in a terminal window. For example, our repl for the terminal has readline support, multi-line editing, optional syntax highlighting, a shell passthrough, and more goodies.

We are only started. You can sponsor us on GitHub sponsors

ko-fi

Install

Let's get started. See the installation instructions.

Final words

That was your life in CL:

and now: