2019/08/24 本町オープンソースラボ(大阪府大阪市中央区瓦町3-4-9) https://tcool.connpass.com/event/117789/
@fukamachi が聴いた質問をまとめました。
(defsystem "hoge" | |
:class :package-inferred-system | |
:pathname "src" | |
:depends-on ("hoge/main") | |
:in-order-to ((test-op (test-op "hoge/tests")))) | |
(defsystem "hoge/tests" | |
:pathname "tests" | |
:depends-on ("hoge") | |
:components |
2019/08/24 本町オープンソースラボ(大阪府大阪市中央区瓦町3-4-9) https://tcool.connpass.com/event/117789/
@fukamachi が聴いた質問をまとめました。
(ql:quickload '(chipz archive)) | |
(defun extract-tarball (pathname) | |
"Extract a tarball (.tar.gz) file to a directory (*default-pathname-defaults*)." | |
(with-open-file (tarball-stream pathname | |
:direction :input | |
:element-type '(unsigned-byte 8)) | |
(archive::extract-files-from-archive | |
(archive:open-archive 'archive:tar-archive | |
(chipz:make-decompressing-stream 'chipz:gzip tarball-stream) |
# syntax=docker/dockerfile:experimental | |
ARG SBCL_VERSION=2.1.8 | |
ARG QLOT_VERSION=0.11.4 | |
FROM fukamachi/qlot:${QLOT_VERSION} | |
WORKDIR /app | |
COPY qlfile /app | |
COPY qlfile.lock /app |
Quickdocs.org now provides project badges for Quicklisp projects. It shows Quicklisp dist version when the project was updated last.
Once the project owner adds this badge to their README file, it will inform the project is ready for Quicklisp and its documentation is available on Quickdocs.org.
It's available, however it was just added in this morning at whim and it may still have issues. Please try it and tell @nitro_idiot if you encountered any issues.
Travis CI is the most prevalent cloud CI service. Though it has no Common Lisp support officially, by using Roswell, you can test your Common Lisp product with a few efforts.
WARNING: This document is based on Roswell v0.0.3.42 (not released yet) or above.
To use Travis CI, you must sign up and enable testing for your repository at your profile page.
#!/bin/sh | |
#|-*- mode:lisp -*-|# | |
#| | |
exec ros -Q -- $0 "$@" | |
|# | |
#| | |
A Roswell script to open the HyperSpec page of a specified symbol in the default browser. |
"Roswell Script" is implementation-independent Common Lisp scripting program which uses Roswell. Although Roswell itself is a unified interface to Common Lisp implementations, it also encourages writing scripts with it.
To start writing it, run ros init
in your terminal:
$ ros init
Usage: ros init [template] name [options...]
#!/bin/sh | |
# | |
# Change the definition of CCL_DEFAULT_DIRECTORY below to refer to | |
# your Clozure CL installation directory. The lisp will use this | |
# environment variable to set up translations for the CCL: logical | |
# host. | |
# Any definition of CCL_DEFAULT_DIRECTORY already present in the | |
# environment takes precedence over definition made below. |
(ql:quickload '(:clack :http-body)) | |
(defvar *handler*) | |
(setf *handler* | |
(clack:clackup (lambda (env) | |
(if (eq (getf env :request-method) :get) | |
'(200 (:content-type :text-html) | |
("<html><head></head><body><form method='post' enctype='multipart/form-data'><input type='file' name='upload'><input type='submit' value='Upload'></form></body></html>")) | |
`(200 () (,(prin1-to-string (http-body:parse (getf env :content-type) (getf env :content-length) (getf env :raw-body))))))) |