• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

.github/workflows/H29-Jun-2020-108104

debian/H07-May-2022-560302

documents/H03-May-2022-2,6432,079

lisp/H29-Jun-2020-7,0166,140

patch/H29-Jun-2020-4840

samples/H29-Jun-2020-95

scripts/H29-Jun-2020-948830

src/H29-Jun-2020-4,3603,823

t/H29-Jun-2020-216164

.appveyor.ymlH A D29-Jun-20202.5 KiB5852

.gitignoreH A D29-Jun-2020360 3232

.travis.ymlH A D29-Jun-20205.2 KiB177172

COPYINGH A D29-Jun-20201 KiB2016

ChangeLogH A D29-Jun-202031.5 KiB756510

HACKING.mdH A D29-Jun-2020397 134

INSTALL.mdH A D29-Jun-20201.6 KiB3523

ISSUE_TEMPLATE.mdH A D29-Jun-2020596 3821

Makefile.amH A D29-Jun-20203.3 KiB125117

README.mdH A D29-Jun-20206.5 KiB176121

bootstrapH A D29-Jun-202050 64

configure.acH A D29-Jun-20204.9 KiB143110

roswell-test.asdH A D29-Jun-2020413 1513

roswell.asdH A D29-Jun-20202.4 KiB4341

README.md

1# Roswell - Common Lisp environment setup Utility.
2
3[![Build Status](https://travis-ci.org/roswell/roswell.svg?branch=master)](https://travis-ci.org/roswell/roswell)
4[![Build status](https://ci.appveyor.com/api/projects/status/7jq0392ffqb4i3yn?svg=true)](https://ci.appveyor.com/project/snmsts/roswell-en89n)
5[![Quicklisp](http://quickdocs.org/badge/roswell.svg)](http://quickdocs.org/roswell/)
6
7Roswell is a Lisp implementation installer/manager, launcher, and much more!
8
9Roswell started out as a command-line tool with the aim to make installing and managing Common Lisp implementations really simple and easy.
10
11Roswell has now evolved into a full-stack environment for Common Lisp development, and has many features that makes it easy to test, share, and distribute your Lisp applications.
12With Roswell, we aim to push the Common Lisp community to a whole new level of productivity.
13
14Roswell is still in beta. Despite this, the basic interfaces are stable and not likely to change. Roswell currently works well on Unix-like platforms such as Linux, Mac OS X and FreeBSD.
15Roswell also works on other operating systems, but currently some parts or features might be missing or unstable.
16
17Checkout [issues list](https://github.com/roswell/roswell/issues) if you are interested in what's lacking.
18
19## Installation, Dependency & Usage
20
21See our [github wiki](https://github.com/roswell/roswell/wiki).
22We provide prebuilt binaries for homebrew on OSX, AUR on Arch and **also on Windows**.
23* [Linux (arch)](https://github.com/roswell/roswell/wiki/Installation#linux)
24* [FreeBSD](https://github.com/roswell/roswell/wiki/Installation#freebsd)
25* [Mac OS X (brew)](https://github.com/roswell/roswell/wiki/Installation#mac-os-x--homebrew)
26* [Windows](https://github.com/roswell/roswell/wiki/Installation#windows)
27* [Building from Source](https://github.com/roswell/roswell/wiki/Installation#building-from-source)
28
29## Features
30
31[Feature comparison is available!](https://github.com/roswell/roswell/wiki/How-is-Roswell-different)
32
33* Implementation Manager
34* Scripting environment (similar to cl-launch)
35* Building utility (similar to buildapp)
36* **Novel** : Easier setup for initializing a script
37* **Novel** : Better integration to the command-line interface (Bash completion, etc)
38* **Novel** : Infrastructure for bundling/installing the scripts to/from a quicklisp system
39* **Novel** : Better support for Windows environment (tested exhaustively)
40* **Novel** : Better integration to CI environment (e.g. [Travis-CI](https://github.com/roswell/roswell/wiki/Travis-CI), [CircleCI](https://github.com/roswell/roswell/wiki/Circle-CI), [Coveralls](https://github.com/roswell/roswell/wiki/Coveralls))
41
42## Usage
43
44Roswell has git-like subcommands which resemble that of cl-launch, buildapp.
45
46```
47$ ros
48Common Lisp environment setup Utility.
49
50Usage:
51
52   ros [options] Command [arguments...]
53or
54   ros [options] [[--] script-path arguments...]
55
56commands:
57   run       Run repl
58   install   Install a given implementation or a system for roswell environment
59   update    Update installed systems.
60   build     Make executable from script.
61   use       Change default implementation.
62   init      Creates a new ros script, optionally based on a template.
63   list      List Information
64   delete    Delete installed implementations
65   config    Get and set options
66   version   Show the roswell version information
67
68Use "ros help [command]" for more information about a command.
69
70Additional help topics:
71
72   options
73
74Use "ros help [topic]" for more information about the topic.
75```
76
77### Managing/Installing Several Lisp Installations
78
79    $ ros install               # displays a list of all installable implementations
80
81    $ ros install sbcl-bin      # default sbcl
82    $ ros install sbcl          # The newest released version of sbcl
83    $ ros install ccl-bin       # default prebuilt binary of ccl
84    $ ros install sbcl/1.2.0    # A specific version of sbcl
85
86    $ ros list installed sbcl   # Listing the installed implementations
87    $ ros run -- --version      # check which implementation is used
88    SBCL 1.2.15
89    $ ros use sbcl/1.2.3        # change the default implementation
90
91To use an implementation that was not installed by roswell, use i.e. `ros use sbcl/system`.
92
93The list of supported implementations continues to grow!
94
95### Installing scripts
96
97It is also possible to install scripts using `ros install`:
98
99    $ ros install qlot            # will install a program from quicklisp
100    $ ros install fukamachi/qlot  # will install it from the GitHub
101
102To add installable scripts into the system, you need to put roswell
103scripts (files having `.ros` extensions) into a `roswell` subdirectory.
104Take a look at [qlot's roswell/qlot.ros](https://github.com/fukamachi/qlot/tree/master/roswell).
105
106
107### Scripting with Roswell
108
109```diff
110$ ros init
111Usage: ros init [template] name [options...]
112
113$ ros init fact
114Successfully generated: fact.ros
115
116$ emacs fact.ros
117## editing the fact.ros ...
118
119$ cat fact.ros
120#!/bin/sh
121#|-*- mode:lisp -*-|#
122#|
123exec ros -Q -- $0 "$@"
124|#
125
126(defun fact (n)
127  (if (zerop n)
128      1
129      (* n (fact (1- n)))))
130
131(defun main (n &rest argv)
132  (declare (ignore argv))
133  (format t "~&Factorial ~D = ~D~%" n (fact (parse-integer n))))
134
135$ ./fact.ros 10
136Factorial 10 = 3628800
137```
138
139## Chef recipe for roswell
140
141[@Rudolph-Miller](https://github.com/Rudolph-Miller) is providing a Chef recipe for setting roswell up.
142
143- [Rudolph-Miller/chef-roswell](https://github.com/Rudolph-Miller/chef-roswell)
144
145## Roswell with CircleCI
146
147[@fukamachi](https://github.com/fukamachi) use Roswell with CircleCI.
148
149- [fukamachi/legion/circle.yml](https://github.com/fukamachi/legion/blob/master/circle.yml)
150
151## Naming Origin 'roswell'
152From ‘[made with secret alien technology](http://www.lisperati.com/logo.html)’.
153
154I felt making it easier to use Lisp for people is a kind of making opportunity for humanbeings to mingle with alien technology. I recall ‘roswell incident’ by the concept. I'm not sure what you feel.
155
156## See Also
157+ [cl-launch](http://cliki.net/cl-launch) : influenced by the project of command line parameters design.
158
159## Author
160SANO Masatoshi (snmsts@gmail.com)
161
162## Contributors
163 * Eitaro Fukamachi (e.arrows@gmail.com)
164 * Tomoya KAWANISHI (chopsticks.tk.ppfm@gmail.com)
165 * Masataro Asai (guicho2.71828@gmail.com)
166
167## Special Thanks to
168 * Eitaro Fukamachi (e.arrows@gmail.com) for naming this project.
169 * Sunrin SHIMURA for [sionescu/cim](https://github.com/sionescu/CIM) that motivate me to start this project.
170
171## Project
172 * https://github.com/roswell/roswell
173
174## License
175Licensed under the MIT License.
176