All Projects → hellerve → sbcli

hellerve / sbcli

Licence: GPL-3.0 License
A REPL for my SBCL needs

Programming Languages

common lisp
692 projects
shell
77523 projects

Labels

Projects that are alternatives of or similar to sbcli

ShenScript
Shen for JavaScript
Stars: ✭ 40 (-41.18%)
Mutual labels:  repl
ReplCustoms
A database of users, posts, and comments from the ReplTalk API
Stars: ✭ 17 (-75%)
Mutual labels:  repl
ts-c99-compiler
ANSI C 16bit Compiler + NASM Assembler + Intel 8086 / 80186 + X87 emulator written entirely in TypeScript
Stars: ✭ 78 (+14.71%)
Mutual labels:  repl
malluscript
A simple,gentle,humble scripting language for mallus, based on malayalam memes.
Stars: ✭ 112 (+64.71%)
Mutual labels:  repl
aik
Frontend Playground
Stars: ✭ 43 (-36.76%)
Mutual labels:  repl
clojure
Practicalli Clojure REPL Driven Development
Stars: ✭ 40 (-41.18%)
Mutual labels:  repl
ocamline
👨🏻‍💻 Command line interface for user input
Stars: ✭ 32 (-52.94%)
Mutual labels:  repl
cuic
Clojure UI testing with Chrome
Stars: ✭ 23 (-66.18%)
Mutual labels:  repl
pytezos
🐍 Python SDK & CLI for Tezos | Michelson REPL and testing framework
Stars: ✭ 93 (+36.76%)
Mutual labels:  repl
moses-smt
Dock You a Moses: Moses Statistical MT in a container
Stars: ✭ 12 (-82.35%)
Mutual labels:  repl
repl
Framework Agnostic REPL For Node.js. Used by AdonisJS
Stars: ✭ 76 (+11.76%)
Mutual labels:  repl
lambda-dti
Interpreter of the ITGL with dynamic type inference
Stars: ✭ 18 (-73.53%)
Mutual labels:  repl
repline
Haskeline wrapper for GHCi-like REPL interfaces
Stars: ✭ 98 (+44.12%)
Mutual labels:  repl
dirac-sample
An example integration of Dirac DevTools
Stars: ✭ 17 (-75%)
Mutual labels:  repl
ptrepl
Run command as REPL with completion(based on prompt_toolkit)
Stars: ✭ 38 (-44.12%)
Mutual labels:  repl
Clojure-Sublimed
Clojure support for Sublime Text 4
Stars: ✭ 268 (+294.12%)
Mutual labels:  repl
replay-csharp
An editable C# REPL (Read Eval Print Loop) powered by Roslyn and .NET Core
Stars: ✭ 69 (+1.47%)
Mutual labels:  repl
magic-console
Interactive programming for Atom
Stars: ✭ 13 (-80.88%)
Mutual labels:  repl
jsxt
The collection of Javascript / JScript / VBScript extensions, tools and more
Stars: ✭ 23 (-66.18%)
Mutual labels:  repl
await-outside
Await outside of async functions
Stars: ✭ 19 (-72.06%)
Mutual labels:  repl

sbcli

A better REPL for SBCL. It handles errors greacefully, is not too verbose, has readline capabilities, including multiline input and reset, and has optional syntax highlighting capabilities using pygmentize.

Installation

For most cases, calling ./install.sh should suffice. It will install sbcli into $PREFIX/bin, with the environment variable PREFIX defaulting to /usr/local. If you are using Mac and having issues with cl-readline see the installation notes for cl-readline.

Dependencies

sbcli depends on Quicklisp and cl-readline. If you have Quicklisp installed, cl-readline will be installed on sbclis first launch. sbcli assumes that Quicklisp is installed under ~/quicklisp.

Usage

You should be able to launch sbcli by just typing sbcli. Once you’re in the REPL, you can edit normally with readline capabilities. Hitting tab will autocomplete (note that if there is more than one possibility, you’ll have to hit tab twice).

Typing :help will give you an overview over all the available special cases and give you an overview over what you’ve defined.

Typing :h symbol will enter inspection mode for a symbol. Typing CTRL-D exits inspection mode.

Typing :doc symbol prints the available documentation for this symbol.

Typing (symbol ? also prints the available documentation for this symbol.

Typing :q, CTRL-D, or CTRL-C will exit the REPL.

Typing :r resets the environment.

Typing :d symbol dumps the disassembly of a symbol.

Typing :t <expression> prints the type returned by an expression.

Typing :s filename will save all of the expressions that were typed and evaluated to the file specified, in the format:

(+ 1 2) ; => 3
(* 6 10) ; => 60

Of course, depending on your result, this can result in very long lines, or break if your result contains newlines. Use at your own peril for now!

Customization

If you want you can add customizations to sbcli. On startup it will load a file called .sbclirc in your home directory if it exists. You can execute arbitrary code there, two of the more interesting values to set are *prompt* and *ret*. Check out an example resource file here.

Exposed Variables

For reference, here is a complete list of the variables we expose:

; the name of the REPL, printed on top
*repl-name*    ; => "Veit's REPL for SBCL"

; the prompt and continuation prompt variables
*prompt*       ; => "sbcl> "
*prompt2*      ; => "....> "

; the return value prompt
*ret*          ; => "=> "

; where to store the history
*hist-file*    ; => "~/.sbcli_history"

; the history variable
; while nothing prevents you from writing to it, i advise against it
*hist*         ; => ()

; you can optionally set a path to pygmentize to enable syntax-coloring
; in the REPL. N.B: might lead to slower rendering speed
;
; if you're unsure what to put there, i suggest using
; [which](https://github.com/eudoxia0/which)
*pygmentize* ; => nil

Have fun!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].