mirror of
https://gitlab.com/vindarel/ciel.git
synced 2026-01-11 03:31:56 -08:00
README: system deps, Ultralisp link, can't share a core image
This commit is contained in:
parent
2b032d18d0
commit
70acbfb580
3 changed files with 24 additions and 14 deletions
24
README.org
24
README.org
|
|
@ -65,7 +65,7 @@ See [[docs/README.md][the documentation]].
|
|||
|
||||
- [-] settle on libraries that help newcomers
|
||||
- [-] automate the documentation
|
||||
- distribute (Quicklisp, Qlot, Quicklisp distribution, Ultralisp,
|
||||
- distribute (Quicklisp, Qlot, Quicklisp distribution, [[https://ultralisp.org/projects/ciel-lang/CIEL][Ultralisp]],
|
||||
Ultralisp distribution (upcoming)…)
|
||||
- [-] ship a binary +and a core image+.
|
||||
- optional: create a tool that, given a CIEL code base, explains what
|
||||
|
|
@ -97,25 +97,32 @@ Rules
|
|||
|
||||
* Install
|
||||
|
||||
You will probably need the following system dependencies (names for
|
||||
a Debian system):
|
||||
|
||||
: libmagic-dev libc6-dev gcc # from magicffi
|
||||
|
||||
** With Quicklisp
|
||||
|
||||
You need a Lisp implementation and Quicklisp installed.
|
||||
|
||||
CIEL is not yet on Quicklisp (but it is on [[https://ultralisp.org][Ultralisp]]), so clone this
|
||||
repository and load the .asd (with =load= or =C-c C-k= in
|
||||
Slime).
|
||||
CIEL is not yet on Quicklisp, but it is on [[https://ultralisp.org][Ultralisp]].
|
||||
|
||||
So, either clone this repository:
|
||||
|
||||
: git clone https://github.com/ciel-lang/CIEL ~/quicklisp/local-projects/CIEL
|
||||
|
||||
Then, quickload it:
|
||||
either install the Ultralisp distribution and pull the library from there:
|
||||
|
||||
: (ql-dist:install-dist "http://dist.ultralisp.org/" :prompt nil)
|
||||
|
||||
Then, load the .asd file (with =asdf:load-asd= or =C-c C-k= in Slime), quickload "ciel":
|
||||
|
||||
#+BEGIN_SRC lisp
|
||||
(ql:quickload "ciel")
|
||||
#+end_src
|
||||
|
||||
and enter the =ciel-user= package, instead of the default
|
||||
=common-lisp-user= (or =cl-user=):
|
||||
and enter the =ciel-user= package:
|
||||
|
||||
#+BEGIN_SRC lisp
|
||||
(in-package :ciel-user)
|
||||
|
|
@ -136,7 +143,8 @@ and use it:
|
|||
Then you can configure Slime to have the choice of the Lisp image to
|
||||
start. See below in [[*Use CIEL at startup]]
|
||||
|
||||
TODO: we will distribute ready-to-use core images.
|
||||
We +will distribute ready-to-use core images+ can not distribute core
|
||||
images, you must build it yourself.
|
||||
|
||||
** With a binary. Use CIEL's custom REPL.
|
||||
|
||||
|
|
|
|||
|
|
@ -60,11 +60,13 @@ And there is more. All the available macros are:
|
|||
|
||||
We import the `bind` macro from [metabang-bind](https://common-lisp.net/project/metabang-bind/user-guide.html) ([GitHub](https://github.com/gwkkwg/metabang-bind)).
|
||||
|
||||
The idiomatic way to declare local variables is `let`. Use it if it is fine for you.
|
||||
The idiomatic way to declare local variables is `let` (and `let*`),
|
||||
the way to declare local functions is `flet` (and `labels`). Use them
|
||||
if it is fine for you.
|
||||
|
||||
However, if you ever noticed to write convoluted `let` forms, adding
|
||||
list destructuring, multiple values or slot access into the mix, then
|
||||
read on.
|
||||
However, if you ever noticed you write convoluted `let` forms, adding
|
||||
list destructuring, multiple values or slot access into the mix, and
|
||||
if you use a `flet` *and then* a `let`, then read on.
|
||||
|
||||
`bind` integrates more variable binding and list destructuring idioms. It has two goals. Quoting:
|
||||
|
||||
|
|
@ -75,7 +77,7 @@ read on.
|
|||
### Bind in CIEL
|
||||
|
||||
We import the `bind` macro. However, the package has more external
|
||||
symbols that we don't import, such as its error type (`bind-erro`) and
|
||||
symbols that we don't import, such as its error type (`bind-error`) and
|
||||
its extension mechanism.
|
||||
|
||||
> Note: if you like object destructuring in general, you'll like [pattern matching](/language-extensions?id=pattern-matching).
|
||||
|
|
|
|||
|
|
@ -155,7 +155,7 @@ eventually be evaluated.
|
|||
|
||||
First rule for macros: don't write a macro when a function can do.
|
||||
|
||||
Example macros: IF WITH-OPEN-FILE UNWIND-PROTECT DEFUN LOOP
|
||||
Example macros: DEFUN LOOP SETF WITH-OPEN-FILE
|
||||
|
||||
See also: QUOTE BACKQUOTE GENSYM MACROEXPAND
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue