Skip to content

Latest commit

 

History

History
118 lines (92 loc) · 2.85 KB

File metadata and controls

118 lines (92 loc) · 2.85 KB

Common Lisp devcontainer features

This repository contains a collection features for developing Common Lisp software. Each sub-section below shows a sample devcontainer.json alongside example usage of the Feature.

General usage

Use Devcontainers to quickly spawn containers and work on Common Lisp projects without polluting your user configuration.

Create a project folder and put the following to .devcontainer/devcontainer.json:

{
    "image": "mcr.microsoft.com/devcontainers/base:alpine",
    "features": {
        "ghcr.io/egao1980/features/lem:1": {
            "version": "latest"
        }
    }
}

Then install Devcontainers CLI:

npm install -g @devcontainers/cli

... build container for your project:

devcontainer up --workspace-folder <project-folder>

Now you can run Lem Project editor up and running with latest Roswell, Qlot and SBCL installed:

devcontainer exec --workspace-folder <project-folder> lem

roswell

This feature will install and configure roswell tool with the requested Common Lisp implementation and extra tools. A specific version of Quicklisp distribution could be specified. Ultralisp distribution can be added as well.

Basic setup with sbcl-bin as default CL implementation:

{
    "image": "mcr.microsoft.com/devcontainers/base:ubuntu",
    "features": {
        "ghcr.io/egao1980/features/roswell:1": {
            "version": "latest",
        }
    }
}
$ ros 
Common Lisp environment setup Utility.

Usage:

   ros [options] Command [arguments...]
or
   ros [options] [[--] script-path arguments...]

commands:
   run       Run repl
   install   Install a given implementation or a system for roswell environment
...

Build SBCL and use qlot with Ultralisp

{
    "image": "mcr.microsoft.com/devcontainers/base:ubuntu",
    "features": {
        "ghcr.io/egao1980/features/roswell:1": {
            "version": "latest",
            "installLisp": "sbcl/2.5.0",
            "useLisp": "sbcl/2.5.0",
            "installTools": true,
            "installUltralisp": true
        }
    }
}

lem

This feature provides a Lem project's lem editor. The feature depends on roswell with qlot installed and will automatically install the corresponding feature if not already present in the Devcontainer definition.

Basic setup with latest Git version of Lem

{
    "image": "mcr.microsoft.com/devcontainers/base:alpine",
    "features": {
        "ghcr.io/egao1980/features/lem:1": {
            "version": "latest"
        }
    }
}

Selecting a specific version of Lem

This uses version option to select git tag / branch name to install.

{
    "image": "mcr.microsoft.com/devcontainers/base:alpine",
    "features": {
        "ghcr.io/egao1980/features/lem:1": {
            "version": "v2.2.0"
        }
    }
}