Getting started / Tutorials

Advanced Installation

Roswell as a scripting environment

Roswell as an implementation manager

Roswell as a Testing Environment

Distributing applications


For Developers/Maintainers

Initial Recommended Setup

Setting up SLIME

This section is not mandatory to use Roswell, but we strongly recommend following the instructions below.

for Emacs

  • Run the following command on the command line:
  • ros install slime
  • Add the following lines to init.el, as suggested by the message
  • (load (expand-file-name "~/.roswell/helper.el"))
  • Also add the following lines to init.el.
(setq inferior-lisp-program "ros -Q run")

The actual implementation launched by roswell depends on the current configuration. Initially, the implementation is set to SBCL. You can later check it with ros config and change it with ros use.

for vim

For Vim, an equivalent of SLIME called slimv is available. There is a tutorial for installing it. After the installation, add the following commands to .vimrc:

let g:slimv_swank_cmd = "!ros -e '(ql:quickload :swank) (swank:create-server)' wait &"
let g:slimv_lisp = 'ros run'
let g:slimv_impl = 'sbcl'

for Atom editor

If you are an Atom user, the slima package is available. Follow the tutorial on the website, and specify the Roswell executable ros as the lisp implementation.

If you are running it on Windows, you may have to create an ASDF config file C:\Users\your-name\AppData\Local\config\common-lisp\source-registry.conf as follows:

  (:tree "/Users/your-name/.roswell/lisp/quicklisp/dists/quicklisp/software/")


To new lisp users: Setting up a lisp environment with Roswell is complete with this step. Launch SLIME and enjoy the REPL, write a script following the tutorial (Roswell as a Scripting Environment), or proceed to Basic Usage if you want to learn more about Roswell.

Advanced users section

Slime also has another (and historically newer) interface for switching between multiple lisps through a variable slime-lisp-implementations. Expert lispers may already have this variable customized and if you are a bit conservative you might want to add roswell as just one of them. The following sample code does not override the existing setting: elisp (setf slime-lisp-implementations `((sbcl ("sbcl" "--dynamic-space-size" "2000")) (roswell ("ros" "-Q" "run")))) (setf slime-default-lisp 'roswell)

  • In order to launch SBCL with .sbclrc, try the following instead: elisp (setq inferior-lisp-program "ros -L sbcl -Q -l ~/.sbclrc run")

  • When you need to jump to the implementation source code with M-. , run ros install sbcl which compiles the new sbcl from the source code.

  • ros emacs also launches emacs with slime setup.

  • To have .roswell in somewhere other than your home directory, set the environment variable ROSWELL_HOME:

export ROSWELL_HOME=/tmp
ros setup # will create /tmp/.roswell and install files there instead of ~/.roswell