From 387721cf50fbb616294224027f8e080e319b3721 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 19 Mar 2026 21:14:35 +0000 Subject: [PATCH 1/2] Initial plan From 0e0fd09c0d5c34c6782cc8f3652a52a7f1bb061e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 19 Mar 2026 21:18:06 +0000 Subject: [PATCH 2/2] Add .devcontainer for GitHub Codespaces (Common Lisp / SBCL) Co-authored-by: mandus <673006+mandus@users.noreply.github.com> --- .devcontainer/devcontainer.json | 27 +++++++++++++++++++++++++++ .devcontainer/setup.sh | 31 +++++++++++++++++++++++++++++++ .gitignore | 3 +++ 3 files changed, 61 insertions(+) create mode 100644 .devcontainer/devcontainer.json create mode 100755 .devcontainer/setup.sh create mode 100644 .gitignore diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..8b3c12c --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,27 @@ +{ + "name": "Common Lisp (SBCL)", + "image": "mcr.microsoft.com/devcontainers/base:ubuntu", + "features": { + "ghcr.io/devcontainers/features/common-utils:2": { + "installZsh": true, + "configureZshAsDefaultShell": true + } + }, + "onCreateCommand": "sudo apt-get update && sudo apt-get install -y sbcl curl", + "postCreateCommand": ".devcontainer/setup.sh", + "customizations": { + "vscode": { + "extensions": [ + "rheller.alive" + ], + "settings": { + "alive.lsp.startCommand": ["sbcl", "--dynamic-space-size", "2048"], + "editor.formatOnSave": false, + "files.associations": { + "*.lisp": "lisp", + "*.asd": "lisp" + } + } + } + } +} diff --git a/.devcontainer/setup.sh b/.devcontainer/setup.sh new file mode 100755 index 0000000..e7b3220 --- /dev/null +++ b/.devcontainer/setup.sh @@ -0,0 +1,31 @@ +#!/bin/bash +# Post-creation setup script for GitHub Codespaces +# Installs Quicklisp and required Common Lisp libraries + +set -e + +QUICKLISP_DIR="$HOME/quicklisp" + +# Install Quicklisp if not already present +if [ ! -d "$QUICKLISP_DIR" ]; then + echo "Installing Quicklisp..." + tmpdir=$(mktemp -d) + curl -o "$tmpdir/quicklisp.lisp" https://beta.quicklisp.org/quicklisp.lisp + sbcl --load "$tmpdir/quicklisp.lisp" \ + --eval '(quicklisp-quickstart:install)' \ + --eval '(quit)' + rm -rf "$tmpdir" + echo "Quicklisp installed." +else + echo "Quicklisp already installed, skipping." +fi + +# Load Quicklisp and install required libraries +# These match the ql:quickload calls in the .lisp source files. +# Update this list if new libraries are added to the project. +echo "Installing required Common Lisp libraries..." +sbcl --load "$QUICKLISP_DIR/setup.lisp" \ + --eval "(ql:quickload '(:with-user-abort :adopt :str :parse-float :cl-charms :fuzzy-match :cl-csv :cl-ppcre) :silent t)" \ + --eval '(quit)' + +echo "Setup complete. SBCL and Common Lisp libraries are ready." diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6db8c80 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +# Build artifacts from lisp/Makefile +lisp/bin/ +lisp/man/