Git Product home page Git Product logo

roswell's Introduction

Roswell - Common Lisp environment setup Utility.

Build Status Circle CI Build status Quicklisp

This software is still beta. Basic interfaces are fixed, we believe it works well on Unix-like platforms like Linux, Mac OS X and FreeBSD, but some parts are not implemented, not stable on other OSes yet.

Description

Roswell is a command line tool to install and manage Common Lisp implementations damn easily.

Limitations

There's a lot of works should be done.

checkout issue lists if you have interest in what's lacking.

Installation

Building

For Mac OS X users

If you're on Mac OS X and wanna use Homebrew, use the custom tap:

$ brew tap snmsts/roswell
$ brew install roswell

For Arch linux users

You can install Roswell via AUR:

$ yaourt -S roswell

others can build from source

$ git clone -b release https://github.com/snmsts/roswell.git
$ cd roswell
$ sh bootstrap
$ ./configure
$ make
$ sudo make install

How to use

First of all, you can get sub-commands and command line options by this command:

$ ros

you'll get like below

Usage: ros [OPTIONS] [Command arguments...]
Usage: ros [OPTIONS] [[--] script-path arguments...]

Commands:
    install  Install archive and build it for roswell environment
    config   Get and set options
    setup    Initial setup
    version  Show the roswell version information
    help     Show Command help
    run      Run repl
    use      change default implementation
    init     create new ros script
    dump     Dump image for faster startup or Make Executable
    delete   Delete installed implementations
    list     List Information
    emacs    launch emacs with slime
    build

Options:
    -w CODE     --wrap CODE          shell wrapper CODE to run in roswell
    -m IMAGE    --image IMAGE        build from Lisp image IMAGE
    -L NAME     --lisp NAME          try use these LISP implementation
    -l FILE     --load FILE          load lisp FILE while building
    -S X        --source-registry X  override source registry of asdf systems
    -s SYSTEM   --system SYSTEM      load asdf SYSTEM while building
                --load-system SYSTEM same as above (buildapp compatibility)
    -p PACKAGE  --package PACKAGE    change current package to PACKAGE
    -sp SP      --system-package SP  combination of -s SP and -p SP
    -e FORM     --eval FORM          evaluate FORM while building
                --require MODULE     require MODULE while building
    -q          --quit               quit lisp here
    -r FUNC     --restart FUNC       restart from build by calling (FUNC)
    -E FUNC     --entry FUNC         restart from build by calling (FUNC argv)
    -i FORM     --init FORM          evaluate FORM after restart
    -ip FORM    --print FORM         evaluate and princ FORM after restart
    -iw FORM    --write FORM         evaluate and write FORM after restart
    -F FORM     --final FORM         evaluate FORM before dumping IMAGE
    -R          --rc                 try read /etc/rosrc, ~/.roswell/init.lisp
    +R          --no-rc              skip /etc/rosrc, ~/.roswell/init.lisp
    -Q          --quicklisp          use quicklisp (default)
    +Q          --no-quicklisp       do not use quicklisp
    -v          --verbose            be quite noisy while building
                --quiet              be quite quiet while building (default)
                --test               for test purpose

Installing Lisps

If you want to install the newest released version of sbcl you can do it by:

$ ros install sbcl

and if you have specific version like "1.2.0" to install then

$ ros install sbcl/1.2.0

will install that version.

You can get which version of SBCL are installed by this command:

$ ros list installed sbcl

Supported Implementations and compile options.

So far, sbcl,sbcl-bin,ccl-bin can be parameter for ros install.

You can see compile option by

$ ros help install sbcl

Setting the default implementation used by ros

$ ros run -- --version

will show you which version are used. You can change implementation by

$ ros use sbcl/1.2.3

Using roswell with Emacs and SLIME

To setup slime with roswell, type like this

ros -Q -e '(ql:quickload :quicklisp-slime-helper)' -q

Add lines like below to init.el

(load (expand-file-name "~/.roswell/impls/ALL/ALL/quicklisp/slime-helper.el"))
(setq inferior-lisp-program "ros -L sbcl -Q run")

to load with .sbclrc

(setq inferior-lisp-program "ros -L sbcl -Q -l ~/.sbclrc run")

Or, Just simply ros emacs would launch emacs with slime setup.

Chef recipe for roswell

@Rudolph-Miller is providing a Chef recipe for setting roswell up.

Roswell with CircleCI

@fukamachi use Roswell with CircleCI.

Where to put my local project?

You can put at ~/.roswell/local-projects/ (From version 0.0.3.34).

Why we named it 'roswell'?

From ‘made with secret alien technology’.

I 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.

See Also

  • keens/cim : similar project that is implemented in shellscript.I motivated to implement roswell by seeing this project.
  • cl-launch : influenced by the project of command line parameters design.

Author

SANO Masatoshi ([email protected])

Contributors

Special Thanks to

Project

License

Licensed under the MIT License.

roswell's People

Contributors

blasut avatar fukamachi avatar rudolph-miller avatar snmsts avatar tani avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.