Easy-ISLisp(EISL) is an interpreter and compiler compatible with the ISLisp standard. EISL was written by Kenichi Sasagawa
See ISLisp YouTube introduction of Easy-ISLisp
Change to the git cloned or downloaded Easy-ISLisp directory.
- Type "sudo make install".
Update Easy-ISlisp
- Type "sudo make clean".
- Type "sudo make install".
see document ATFRIST.md
Easy-ISLisp requires ncurses library. Please install ncurses.
sudo apt install libncurses-dev
-
Raspberry Pi OS
-
Ubuntu
-
Linux Mint
-
Use of other operating systems is at your own discretion. Unsupported Operating Systems Operating systems other than the officially supported ones (Raspberry Pi OS, Ubuntu, Mint) are not officially supported, as I do not have the hardware or sufficient experience to properly test them. If you wish to run this project on an unsupported OS, please feel free to adapt the code on your own. If your modifications are successful, we encourage you to publish a branch so that others can benefit from your work.
ISLisp-mode of Emacs is developed by Mr. sasanidas. Watch the video to see how to use it. https://vimeo.com/614514131
Repository URL: https://gitlab.com/sasanidas/islisp-mode
eisl
In the Linux version,the REPL is editable. If you do not want to use the editable REPL, invoke with the -r option.
eisl -r
If you want to start after reading a file, use the -l command-line option. e.g.
eisl -l foo.lsp
For other options, see eisl -h
:
$ eisl -h
List of options:
-c -- EISL starts after reading compiler.lsp.
-f -- EISL starts after reading formatter.lsp.
-h -- display help.
-l filename -- EISL starts after reading the file.
-r -- EISL does not use editable REPL.
-s filename -- EISL runs the file with script mode.
-v -- dislplay version number.
You can also write ISLisp scripts, following the usual UNIX convention of pointing to the interpreter with the first line, e.g.
#!/Users/me/bin/eisl -s
(format (standard-output) "Hello world~%")
In the REPL type (quit) or Esc+Q.
In the non-editable REPL type (quit) or CTRL+D.
Mr. Hiroi has published introductory articles about ISLisp. It's written in plain Japanese, so you can easily translate it into your native language with google translator. http://www.nct9.ne.jp/m_hiroi/clisp/islisp.html
When entering a line in the REPL, syntax highlighting, completion, and text editing are available. Key bindings are as follows:
Key | Description |
---|---|
ctrl+F or → | move right |
ctrl+B or ← | move left |
ctrl+P or ↑ | recall history older |
ctrl+N or ↓ | recall history newer |
ctrl+A | move to begin of line |
strl+E | move to end of line |
ctrl+J ctrl+M or return | send S-exp to Lisp |
ctrl+H or back-space | backspace |
ctrl+D | delete one char |
Esc Tab | completion |
I hope that Lisp will become more popular. I hope many people enjoy it. EISL aims to be user-friendly.
EISL has a compiler. It generates C code that can be compiled using gcc or clang to object code.
Invoke with the -c option,
eisl -c
or (import "compiler")
in the REPL.
Then you can
(compile-file "foo.lsp")
(load "foo.o")
For example:
eisl -c
Easy-ISLisp Ver1.6
> (compile-file "tests/tarai.lsp")
type inference
initialize
pass1
pass2
compiling PACK
compiling TARAI
compiling FIB
compiling FIB*
compiling ACK
compiling GFIB
compiling TAK
compiling LISTN
compiling TAKL
compiling CTAK
compiling CTAK-AUX
finalize
invoke GCC
T
> (load "tests/tarai.o")
T
> (time (tarai 12 6 0))
Elapsed Time(second)=0.024106
<undef>
> (time (ack 4 1))
Elapsed Time(second)=3.728262
<undef>
>
By default the edit
function invokes the
Edlis
editor.
But note that it respects the UNIX convention of the VISUAL
and EDITOR
environment variables, so if either of those is defined it will be used instead.
(edit file-name-string) example (edit "foo.lsp")
see documents/DEBUG/md
see documents/EXTENDED.md
see documents/PARA.md
see documents/TCPIP.md