Skip to content

egao1980/features

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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"
        }
    }
}

About

Devcontainers features

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Languages