using_ecl_embeddable_common-lisp_on_sdf
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
using_ecl_embeddable_common-lisp_on_sdf [2021/03/11 05:24] – [ECL one-liners] hc9 | using_ecl_embeddable_common-lisp_on_sdf [2021/03/12 18:34] (current) – [References:] hc9 | ||
---|---|---|---|
Line 15: | Line 15: | ||
By default ECL starts up in interactive mode. Log into SDF host //miku// and type "' | By default ECL starts up in interactive mode. Log into SDF host //miku// and type "' | ||
- | | + | < |
- | Copyright (C) 1984 Taiichi Yuasa and Masami Hagiya | + | |
- | Copyright (C) 1993 Giuseppe Attardi | + | ECL (Embeddable Common-Lisp) 11.1.1 |
- | Copyright (C) 2000 Juan J. Garcia-Ripoll | + | Copyright (C) 1984 Taiichi Yuasa and Masami Hagiya |
- | ECL is free software, and you are welcome to redistribute it | + | Copyright (C) 1993 Giuseppe Attardi |
- | under certain conditions; see file ' | + | Copyright (C) 2000 Juan J. Garcia-Ripoll |
- | Type :h for Help. | + | ECL is free software, and you are welcome to redistribute it |
- | Top level. | + | under certain conditions; see file ' |
- | > | + | Type :h for Help. |
+ | Top level. | ||
+ | > | ||
+ | |||
+ | </code> | ||
The default ECL prompt is ">" | The default ECL prompt is ">" | ||
- | | + | <code> |
- | 6 | + | |
- | | + | > (+ 1 2 3) |
- | 20 | + | 6 |
- | | + | > (* 4 5) |
- | hello SDF | + | 20 |
- | NIL | + | |
- | > | + | > (format t "hello SDF~& |
+ | hello SDF | ||
+ | NIL | ||
+ | > | ||
+ | |||
+ | </code> | ||
In-line help is available ; type :h for options. The debugger can be entered using " | In-line help is available ; type :h for options. The debugger can be entered using " | ||
Line 46: | Line 54: | ||
ex: hello.lsp | ex: hello.lsp | ||
- | % echo ' | + | <code> |
- | | + | % echo ' |
- | Hello SDF | + | |
+ | % ecl -norc -script hello.lsp | ||
+ | Hello SDF | ||
+ | |||
+ | </ | ||
It's also possible to use ECL to execute simple Common-Lisp one-liners at the command line (note that //princ// is needed for screen output): | It's also possible to use ECL to execute simple Common-Lisp one-liners at the command line (note that //princ// is needed for screen output): | ||
- | | + | < |
- | 6 | + | |
+ | % ecl -norc -shell /dev/null -eval " | ||
+ | 6 | ||
+ | |||
+ | </ | ||
A nicer way to accomplish the same is to create a small shell script: | A nicer way to accomplish the same is to create a small shell script: | ||
Line 60: | Line 76: | ||
< | < | ||
- | | + | #!/bin/sh |
- | # lispit - executes a lisp expression and dumps it to stdout | + | # lispit - executes a lisp expression and dumps it to stdout |
- | | + | LSP_EXPR=${@} |
- | | + | if [ " |
- | echo " | + | echo " |
- | echo " | + | echo " |
- | echo "" | + | echo "" |
- | exit 1 | + | exit 1 |
- | fi | + | fi |
- | | + | ecl -norc -shell /dev/null -eval " |
- | echo "" | + | echo "" |
- | exit 0 | + | exit 0 |
</ | </ | ||
Line 80: | Line 96: | ||
Example run: | Example run: | ||
- | | + | < |
- | (1 4 9 16 25) | + | |
+ | % lispit ' | ||
+ | (1 4 9 16 25) | ||
+ | |||
+ | </ | ||
===== ASDF / enabling readline ===== | ===== ASDF / enabling readline ===== | ||
Line 91: | Line 111: | ||
1) Create the user-level ASDF repository: | 1) Create the user-level ASDF repository: | ||
- | | + | < |
+ | |||
+ | % mkdir -p $HOME/ | ||
+ | |||
+ | </ | ||
2) Create the ASDF config directory and config file*: | 2) Create the ASDF config directory and config file*: | ||
Line 97: | Line 121: | ||
< | < | ||
- | | + | % cd $HOME |
- | % mkdir -p .config/ | + | % mkdir -p .config/ |
- | % vi .config/ | + | % vi .config/ |
- | | + | # ../ |
- | ;; | + | ;; |
- | (:directory "/ | + | (:directory "/ |
</ | </ | ||
Line 111: | Line 135: | ||
3) Download ecl-readline module and copy select files to $HOME/ | 3) Download ecl-readline module and copy select files to $HOME/ | ||
- | | + | < |
- | % snarf http:// | + | |
- | % tar xzf ecl-readline-0.4.1.tar.gz | + | % cd /tmp |
- | % cd ecl-readline-0.4.1/ | + | % snarf http:// |
- | % cp ecl-*.* $HOME/ | + | % tar xzf ecl-readline-0.4.1.tar.gz |
+ | % cd ecl-readline-0.4.1/ | ||
+ | % cp ecl-*.* $HOME/ | ||
+ | |||
+ | </ | ||
4) Create the ECL startup file: | 4) Create the ECL startup file: | ||
- | | + | < |
- | (require ' | + | |
- | (asdf: | + | # $HOME/ |
- | (ecl-readline:: | + | (require ' |
+ | (asdf: | ||
+ | (ecl-readline:: | ||
+ | |||
+ | </ | ||
The next time you startup ECL it will compile the ecl-readline module and launch an interactive session. With ecl-readline enabled the default ECL prompt is "// | The next time you startup ECL it will compile the ecl-readline module and launch an interactive session. With ecl-readline enabled the default ECL prompt is "// | ||
Line 132: | Line 164: | ||
< | < | ||
- | | + | # $HOME/ |
- | (require ' | + | (require ' |
- | (setf ASDF: | + | (setf ASDF: |
- | (setf *load-verbose* nil) ; quiets the LOAD process some | + | (setf *load-verbose* nil) ; quiets the LOAD process some |
- | (asdf: | + | (asdf: |
- | (ecl-readline:: | + | (ecl-readline:: |
- | ;; | + | ;; |
- | ;; customizations | + | ;; customizations |
- | | + | ;; GNU clisp-like SHELL cmd |
- | (defun shell (& | + | (defun shell (& |
- | "Args: (& | + | "Args: (& |
- | SHELL calls the EXT:SYSTEM function. Executes SHELL_CMD if given, otherwise | + | SHELL calls the EXT:SYSTEM function. Executes SHELL_CMD if given, otherwise |
- | User sub-shell is spawned. SHELL_CMD be string or symbol, 256 characters max." | + | User sub-shell is spawned. SHELL_CMD be string or symbol, 256 characters max." |
- | | + | |
</ | </ | ||
Line 160: | Line 192: | ||
---- | ---- | ||
- | $Id: ecl_tutorial.html, | + | $Id: ecl_tutorial.html, |
using_ecl_embeddable_common-lisp_on_sdf.txt · Last modified: 2021/03/12 18:34 by hc9