User Tools

Site Tools


using_ecl_embeddable_common-lisp_on_sdf

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Next revisionBoth sides next revision
using_ecl_embeddable_common-lisp_on_sdf [2021/03/11 05:20] – created hc9using_ecl_embeddable_common-lisp_on_sdf [2021/03/11 05:33] – [ECL one-liners] hc9
Line 15: Line 15:
 By default ECL starts up in interactive mode. Log into SDF host //miku// and type "'ecl'"; you should see something like below: By default ECL starts up in interactive mode. Log into SDF host //miku// and type "'ecl'"; you should see something like below:
  
-  ECL (Embeddable Common-Lisp) 11.1.1 +<code> 
-  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' for details. +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 'Copyright' for details. 
-  >+Type :h for Help. 
 +Top level. 
 +
 + 
 +</code>
  
 The default ECL prompt is ">". Enter Common-Lisp commands in the usual way: The default ECL prompt is ">". Enter Common-Lisp commands in the usual way:
  
-  > (+ 1 2 3) +<code> 
-  6+ 
 +> (+ 1 2 3) 
 +6 
 + 
 +> (* 4 5) 
 +20
  
-  > (* 4 5+> (format t "hello SDF~&amp;"
-  20+hello SDF 
 +NIL 
 +>
  
-  > (format t "hello SDF~&amp;"+</code>
-  hello SDF +
-  NIL +
-  >+
  
 In-line help is available ; type :h for options. The debugger can be entered using "(break)" ; once entered typed :h to see options. To exit the ECL interactive session type ":exit" . In-line help is available ; type :h for options. The debugger can be entered using "(break)" ; once entered typed :h to see options. To exit the ECL interactive session type ":exit" .
Line 46: Line 54:
 ex: hello.lsp ex: hello.lsp
  
-  % echo '(format t "~&amp;Hello SDF~&amp;")' hello.lsp+<code>
  
-  % ecl -norc -script hello.lsp +% echo '(format t "~&amp;Hello SDF~&amp;")' > hello.lsp 
-  Hello SDF+ 
 +% ecl -norc -script hello.lsp 
 +Hello SDF 
 + 
 +</code>
  
 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):
  
-  % ecl -norc -shell /dev/null -eval "(princ (* 1 2 3))" +<code> 
-  6+ 
 +% ecl -norc -shell /dev/null -eval "(princ (* 1 2 3))" 
 +6 
 + 
 +</code>
  
 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:
  
-  #!/bin/sh +<code>
-  # lispit - executes a lisp expression and dumps it to stdout+
  
-  LSP_EXPR=${@}+#!/bin/sh 
 +# lispit - executes a lisp expression and dumps it to stdout
  
-  if [ "$#" -eq 0 ]; then +LSP_EXPR=${@}
-          echo "lispit - executes a lisp expression" +
-          echo "  usage: lispit '(lisp_expression)'" +
-          echo "" +
-          exit 1 +
-  fi+
  
-  ecl -norc -shell /dev/null -eval "(princ ${LSP_EXPR} )" +if [ "$#" -eq 0 ]; then 
-  echo "" +        echo "lispit - executes a lisp expression" 
-  exit 0+        echo "  usage: lispit '(lisp_expression)'" 
 +        echo "" 
 +        exit 1 
 +fi 
 + 
 +ecl -norc -shell /dev/null -eval "(princ ${LSP_EXPR} )" 
 +echo "" 
 +exit 0 
 + 
 +</code>
  
 Example run: Example run:
  
-  % lispit '(mapcar (lambda (x) (expt x 2)) `(1 2 3 4 5))' +<code> 
-  (1 4 9 16 25)+ 
 +% lispit '(mapcar (lambda (x) (expt x 2)) `(1 2 3 4 5))' 
 +(1 4 9 16 25) 
 + 
 +</code>
  
 ===== ASDF / enabling readline ===== ===== ASDF / enabling readline =====
Line 90: Line 114:
  
 2) Create the ASDF config directory and config file*: 2) Create the ASDF config directory and config file*:
 +
 +<code>
  
   % cd $HOME   % cd $HOME
Line 98: Line 124:
   ;;additional directory for ASDF to search (no recursion):   ;;additional directory for ASDF to search (no recursion):
   (:directory "/LISP/ASDF/")   (:directory "/LISP/ASDF/")
 +
 +</code>
  
 *note: you can call the conf file anything you want. *note: you can call the conf file anything you want.
Line 121: Line 149:
  
 Additional modifications can be made to the ECL startup file, such as user-defined functions and tweaks to various modules. Below is a more nuanced example which reduces the verbosity at startup, modifies ecl-readline's history file location, and adds an external SHELL function similar to that found in CLISP: Additional modifications can be made to the ECL startup file, such as user-defined functions and tweaks to various modules. Below is a more nuanced example which reduces the verbosity at startup, modifies ecl-readline's history file location, and adds an external SHELL function similar to that found in CLISP:
 +
 +<code>
  
   # $HOME/.eclrc   # $HOME/.eclrc
Line 137: Line 167:
   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."
      (ext:system shell_cmd))      (ext:system shell_cmd))
 +
 +</code>
  
 ===== References: ===== ===== References: =====
using_ecl_embeddable_common-lisp_on_sdf.txt · Last modified: 2021/03/12 18:34 by hc9