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:
(:source-registry
(:tree "/Users/your-name/.roswell/lisp/quicklisp/dists/quicklisp/software/")
:INHERIT-CONFIGURATION)
for lem Common-Lisp editor
lem editor is still in beta, but works. It is an emacs-style editor which is written completely in Common Lisp and thus has multi-threading, lexical-scoping, speed (compared to e-lisp), and Common Lisp all the way down. Installing it currently is easiest with roswell, which gives you SLIME and sbcl built-in (M-x slime). See the Installation section in the README.md on the project home page.
Complete!
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:
(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:
(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 sbclwhich compiles the new sbcl from the source code. -
ros emacsalso launches emacs with slime setup. -
To have
.roswellin somewhere other than your home directory, set the environment variableROSWELL_HOME:
export ROSWELL_HOME=/tmp
ros setup # will create /tmp/.roswell and install files there instead of ~/.roswell
Home
Getting started / Tutorials
- Installation
- Initial Recommended Setup
- Roswell as a Scripting Environment
- ros template
- Set up guide for Anaconda virtual env
Advanced Installation
Roswell as a scripting environment
- Roswell as a Scripting Environment
- Advanced scripting
- Reducing Startup Time
- List of Roswell Installable Scripts
- Practical Usecases
- Building images and executables
Roswell as an implementation manager
Roswell as a Testing Environment
- Roswell as a Testing Environment
- Travis CI
- Circle CI
- GitHub Actions
- Coveralls
- Roswell in Virtual Environments