Skip to content

A script to evaluate lisp expressions in multiple implementations

License

Notifications You must be signed in to change notification settings

Shinmera/cl-all

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

## About CL-ALL
This is a simple script to run a Lisp snippet in locally installed lisp implementations. Requires at least SBCL.

## How To
You can either build a fixed SBCL binary with ``make``, or symlink ``cl-all.lisp`` to ``cl-all``. Either way, once ``cl-all`` is in your path:

::
cl-all '(print :hi)'
cl-all sbcl ecl '(print "Oh man!")'
cl-all --print '"Oh man"'
cl-all --file "something.lisp"
echo ":stdin" | cl-all --print
::

You can also load this system into your SBCL session and use it from the comfort of the REPL:

:: common-lisp
(cl-all:eval-in-lisp :ecl "(print call-arguments-limit)")
::

## Example Output
::
$ cl-all --print call-arguments-limit
 --> ABCL:     50
 --> Allegro:  16384
 --> CCL:      65536
 --> CLisp:    4096
 --> CMUCL:    536870911
 --> ECL:      65536
 --> MKCL:     2305843009213693951
 --> SBCL:     4611686018427387903
::

## CLI Reference
::
cl-all (implementation | option | snippet)*

  implementation:
    The given implementation is run. If no implementations are
    explicitly specified, all known and available implementations
    are used. See -l for a list of available implementations.
  
  option:
    --print -p         Causes the last form's value to be printed.
                       Will also trim extraneous whitespace from the
                       output.

    --file  -f         Uses the given file as input.

    --eval  -e         Evaluates the given expression.

    --disassemble -d   Compiles and prints the disassembly of the
                       expressions.

    --no-rc -n         Do not run implementation init files.

    --lisps -l         List all known and available implementations
                       and exit.

    --help  -h         Show this usage prompt and exit.

    --                 All further arguments are used as tokens to be
                       evaluated, concatenated by spaces.
  
  snippet:
    A lisp snippet to be evaluated.
  
  If no snippet, file, or eval option is given, the standard input is
  used to read forms from. Forms are read until EOF is encountered
::

## Known Implementations
- ABCL
- Allegro
- CCL
- Clasp
- Clisp
- CMUCL
- ECL
- GCL
- JSCL
- MKCL
- SBCL

About

A script to evaluate lisp expressions in multiple implementations

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages