Compare commits

...

198 commits

Author SHA1 Message Date
madosuki 28e6455a3a
add lexical binding cookie to lisp/helper.el (#623)
Some checks failed
Linux / build (, linux/amd64, musl) (push) Has been cancelled
Linux / build (aarch64, linux/arm64, musl64, arm64, ) (push) Has been cancelled
Linux / build (aarch64, linux/arm64, musl64, arm64, -glibc2.31) (push) Has been cancelled
Linux / build (aarch64, linux/arm64, musl64, arm64, -musl) (push) Has been cancelled
Linux / build (linux/amd64, deb, deb, x86-64) (push) Has been cancelled
Linux / build (linux/amd64, pandoc, docs, x86-64) (push) Has been cancelled
Linux / build (musl64, x86_64, ) (push) Has been cancelled
Linux / build (musl64, x86_64, -glibc2.31) (push) Has been cancelled
Linux / build (musl64, x86_64, -musl) (push) Has been cancelled
Linux / build (riscv64, linux/riscv64, musl64, riscv64, ) (push) Has been cancelled
Linux / build (riscv64, linux/riscv64, musl64, riscv64, -glibc2.31) (push) Has been cancelled
Linux / build (riscv64, linux/riscv64, musl64, riscv64, -musl) (push) Has been cancelled
osx / build (sbcl-bin/2.3.8, arm64) (push) Has been cancelled
osx / build (sbcl-bin/2.3.8, x86-64) (push) Has been cancelled
windows / build-windows (i686, i686, 32) (push) Has been cancelled
windows / build-windows (x86_64, amd64, 64) (push) Has been cancelled
windows / build-windows-arm64 (push) Has been cancelled
2026-09-04 12:33:20 +09:00
Luís Oliveira 0ed46fb92a
install-cmu-bin: ask the download directory for the archive type (#624)
CMUCL was published as .tar.bz2 up to 21e and switched to .tar.xz with
21f, but the installer always asked for .tar.bz2.  Since it picks the
newest release when no version is given, `ros install cmu-bin` now
always 404s:

  Downloading https://common-lisp.net/project/cmucl/downloads/release/21f/cmucl-21f-x86-linux.tar.bz2
  Downloading archive:...:NG
  bzip2: Can't open input file .../cmucl-21f-x86-linux.tar.bz2
  tar: This does not look like a tar archive
  Error: unable to use 'cmu-bin'

Look the file up in the release directory instead of assuming, the same
listing cmu-bin-get-version already parses, and keep .tar.bz2 as the
fallback when the listing can't be read.  extract() already handles .xz,
so nothing else needs to change.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-09-04 12:32:53 +09:00
SANO,Masatoshi 267ff72edc fix ros update for github installed system named owner/repo (#578)
Some checks failed
Linux / build (musl64, x86_64, -glibc2.31) (push) Has been cancelled
Linux / build (musl64, x86_64, -musl) (push) Has been cancelled
Linux / build (riscv64, linux/riscv64, musl64, riscv64, ) (push) Has been cancelled
Linux / build (riscv64, linux/riscv64, musl64, riscv64, -glibc2.31) (push) Has been cancelled
Linux / build (riscv64, linux/riscv64, musl64, riscv64, -musl) (push) Has been cancelled
osx / build (sbcl-bin/2.3.8, arm64) (push) Has been cancelled
osx / build (sbcl-bin/2.3.8, x86-64) (push) Has been cancelled
windows / build-windows (i686, i686, 32) (push) Has been cancelled
windows / build-windows (x86_64, amd64, 64) (push) Has been cancelled
windows / build-windows-arm64 (push) Has been cancelled
Linux / build (linux/amd64, deb, deb, x86-64) (push) Has been cancelled
Linux / build (, linux/amd64, musl) (push) Has been cancelled
Linux / build (aarch64, linux/arm64, musl64, arm64, ) (push) Has been cancelled
Linux / build (aarch64, linux/arm64, musl64, arm64, -glibc2.31) (push) Has been cancelled
Linux / build (aarch64, linux/arm64, musl64, arm64, -musl) (push) Has been cancelled
Linux / build (linux/amd64, pandoc, docs, x86-64) (push) Has been cancelled
Linux / build (musl64, x86_64, ) (push) Has been cancelled
2026-07-18 15:11:33 +09:00
SANO,Masatoshi 05a2c2fa3b support dotcl
Some checks failed
Linux / build (riscv64, linux/riscv64, musl64, riscv64, -glibc2.31) (push) Has been cancelled
Linux / build (riscv64, linux/riscv64, musl64, riscv64, -musl) (push) Has been cancelled
Linux / build (, linux/amd64, musl) (push) Has been cancelled
Linux / build (aarch64, linux/arm64, musl64, arm64, ) (push) Has been cancelled
Linux / build (aarch64, linux/arm64, musl64, arm64, -glibc2.31) (push) Has been cancelled
Linux / build (aarch64, linux/arm64, musl64, arm64, -musl) (push) Has been cancelled
Linux / build (linux/amd64, deb, deb, x86-64) (push) Has been cancelled
Linux / build (linux/amd64, pandoc, docs, x86-64) (push) Has been cancelled
Linux / build (musl64, x86_64, ) (push) Has been cancelled
Linux / build (musl64, x86_64, -glibc2.31) (push) Has been cancelled
Linux / build (musl64, x86_64, -musl) (push) Has been cancelled
Linux / build (riscv64, linux/riscv64, musl64, riscv64, ) (push) Has been cancelled
osx / build (sbcl-bin/2.3.8, arm64) (push) Has been cancelled
osx / build (sbcl-bin/2.3.8, x86-64) (push) Has been cancelled
windows / build-windows (i686, i686, 32) (push) Has been cancelled
windows / build-windows (x86_64, amd64, 64) (push) Has been cancelled
windows / build-windows-arm64 (push) Has been cancelled
2026-05-06 14:24:30 +09:00
SANO,Masatoshi 6c010f97d0 fix ros script installation directory on windows 2026-04-11 00:57:47 +09:00
SANO,Masatoshi aa261f4e46 exec is practically not available on haiku. 2026-03-03 12:47:04 +09:00
SANO,Masatoshi ac187eadaa fix ros dump with --destroy-packages-sbcl (#608) reported by Alexander Artemenko 2026-02-27 18:12:28 +09:00
SANO,Masatoshi c7170d4cb7 fix install-ci's dependency for sbcl 2026-02-27 18:10:00 +09:00
SANO,Masatoshi 9709c0db0f try fix test ci for acl 2026-02-26 02:22:23 +09:00
SANO,Masatoshi d6d4a761f1 try fix test ci. sbcl/1.4.0 -> sbcl/2.4.0 2026-02-26 01:46:30 +09:00
SANO,Masatoshi d6b5e2ad0e try fix ci 2026-02-25 18:04:04 +09:00
SANO,Masatoshi f10677c8e9 try fix test 2026-02-24 07:44:57 +09:00
SANO,Masatoshi d0b368951c fix release.ros by practice release. 2026-02-24 07:04:42 +09:00
SANO,Masatoshi 05c290ce48 bump install-for-ci.sh version to 26.02.116 2026-02-24 06:58:08 +09:00
SANO,Masatoshi aac28aaedd bump version to 26.02.116 2026-02-24 06:50:11 +09:00
SANO,Masatoshi 2a04f0314c [ci skip] prepare ChangeLog entry next to v24.10.115 2026-02-24 06:09:57 +09:00
SANO,Masatoshi b897695f19 try osx x86-64 build with macos-15-intel environment. 2026-02-24 05:52:39 +09:00
SANO,Masatoshi bb4af5fc0e try osx x86-64 build with macos-13 environment. 2026-02-24 05:29:54 +09:00
SANO,Masatoshi b31ff3aeb7 use cl-indentify for fmt 2026-02-24 05:12:05 +09:00
SANO,Masatoshi b2ecbe902e try ci for windows arm 2026-02-21 22:09:43 +09:00
SANO,Masatoshi a776a353dd try support arm64 on windows 2026-02-21 21:57:01 +09:00
snmsts b16e0e7391 Try fix #609 caused by failure to load djula on sbcl 2.5.11 environment. 2025-12-02 22:35:55 +09:00
SZTK bae37247f1
Fix declaration-definition disagreement in src/cmd-run.h (see Issue #604) (#605)
* Fix declaration-definition disagreement in src/cmd-run.h (see Issue #604)

* Also fix the return type of register_runtime_options in src/cmd-run.h L27
2025-08-13 04:03:03 +09:00
io.shift e6ccbc4430
**Improve error handling:** (scripts/install-for-ci.sh: *Ln: 34-47* (#607)
* Improve error handling: ln: 34-47

* Fixed Spacing: Ln: 34

* Fixed Curl Exit Code: Ln: 45
2025-08-13 03:38:44 +09:00
snmsts feb5647990 ros command return 1 when script file does not found. 2025-07-24 04:18:14 +09:00
snmsts 029e979374 support if sbcl's lisp-implementation-version return '2.4.10.roswell'
Some checks failed
Linux / build (, linux/amd64, musl) (push) Has been cancelled
Linux / build (aarch64, linux/arm64, musl64, arm64, ) (push) Has been cancelled
Linux / build (aarch64, linux/arm64, musl64, arm64, -glibc2.31) (push) Has been cancelled
Linux / build (aarch64, linux/arm64, musl64, arm64, -musl) (push) Has been cancelled
Linux / build (linux/amd64, deb, deb, x86-64) (push) Has been cancelled
Linux / build (linux/amd64, pandoc, docs, x86-64) (push) Has been cancelled
Linux / build (musl64, x86_64, ) (push) Has been cancelled
Linux / build (musl64, x86_64, -glibc2.31) (push) Has been cancelled
Linux / build (musl64, x86_64, -musl) (push) Has been cancelled
Linux / build (riscv64, linux/riscv64, musl64, riscv64, ) (push) Has been cancelled
Linux / build (riscv64, linux/riscv64, musl64, riscv64, -glibc2.31) (push) Has been cancelled
Linux / build (riscv64, linux/riscv64, musl64, riscv64, -musl) (push) Has been cancelled
osx / build (sbcl-bin/2.3.8, arm64) (push) Has been cancelled
osx / build (sbcl-bin/2.3.8, x86-64) (push) Has been cancelled
windows / build-windows (i686, i686, 32) (push) Has been cancelled
windows / build-windows (x86_64, amd64, 64) (push) Has been cancelled
2025-01-03 14:53:48 +09:00
Xiaming Chen 82f902bf43
Upgrade allegro CL to release 11.0express, beta version unavailable yet (#597)
Some checks failed
Linux / build (, linux/amd64, musl) (push) Has been cancelled
Linux / build (aarch64, linux/arm64, musl64, arm64, ) (push) Has been cancelled
Linux / build (aarch64, linux/arm64, musl64, arm64, -glibc2.31) (push) Has been cancelled
Linux / build (aarch64, linux/arm64, musl64, arm64, -musl) (push) Has been cancelled
Linux / build (linux/amd64, deb, deb, x86-64) (push) Has been cancelled
Linux / build (linux/amd64, pandoc, docs, x86-64) (push) Has been cancelled
Linux / build (musl64, x86_64, ) (push) Has been cancelled
Linux / build (musl64, x86_64, -glibc2.31) (push) Has been cancelled
Linux / build (musl64, x86_64, -musl) (push) Has been cancelled
Linux / build (riscv64, linux/riscv64, musl64, riscv64, ) (push) Has been cancelled
Linux / build (riscv64, linux/riscv64, musl64, riscv64, -glibc2.31) (push) Has been cancelled
Linux / build (riscv64, linux/riscv64, musl64, riscv64, -musl) (push) Has been cancelled
osx / build (sbcl-bin/2.3.8, arm64) (push) Has been cancelled
osx / build (sbcl-bin/2.3.8, x86-64) (push) Has been cancelled
windows / build-windows (i686, i686, 32) (push) Has been cancelled
windows / build-windows (x86_64, amd64, 64) (push) Has been cancelled
2024-11-19 15:46:47 +09:00
snmsts e2da0bf7bc fix?
Some checks failed
Linux / build (, linux/amd64, musl) (push) Has been cancelled
Linux / build (aarch64, linux/arm64, musl64, arm64, ) (push) Has been cancelled
Linux / build (aarch64, linux/arm64, musl64, arm64, -glibc2.31) (push) Has been cancelled
Linux / build (aarch64, linux/arm64, musl64, arm64, -musl) (push) Has been cancelled
Linux / build (linux/amd64, deb, deb, x86-64) (push) Has been cancelled
Linux / build (linux/amd64, pandoc, docs, x86-64) (push) Has been cancelled
Linux / build (musl64, x86_64, ) (push) Has been cancelled
Linux / build (musl64, x86_64, -glibc2.31) (push) Has been cancelled
Linux / build (musl64, x86_64, -musl) (push) Has been cancelled
Linux / build (riscv64, linux/riscv64, musl64, riscv64, ) (push) Has been cancelled
Linux / build (riscv64, linux/riscv64, musl64, riscv64, -glibc2.31) (push) Has been cancelled
Linux / build (riscv64, linux/riscv64, musl64, riscv64, -musl) (push) Has been cancelled
osx / build (sbcl-bin/2.3.8, arm64) (push) Has been cancelled
osx / build (sbcl-bin/2.3.8, x86-64) (push) Has been cancelled
windows / build-windows (i686, i686, 32) (push) Has been cancelled
windows / build-windows (x86_64, amd64, 64) (push) Has been cancelled
2024-10-16 16:11:04 +09:00
snmsts b2286cf4f3 x86-64 > x86_64 2024-10-16 16:05:20 +09:00
snmsts 8c8da03e77 quickfix 2024-10-16 16:02:51 +09:00
snmsts 7d4262e76f instant fix for failure of ci 2024-10-16 15:51:12 +09:00
snmsts 7ff8d0fb09 bump install-for-ci.sh version to 24.10.115 2024-10-16 15:20:32 +09:00
snmsts 7b08fc7204 bump version to 24.10.115 2024-10-16 15:18:15 +09:00
SANO Masatoshi 46b1ff35ac [ci skip] prepare ChangeLog entry next to v23.10.14.114 2024-10-16 14:55:33 +09:00
snmsts 266dc81908 glibc2.31 not 2.3.1 2024-10-16 14:43:51 +09:00
snmsts 77c175103f try support darwin/ppc
Some checks failed
Linux / build (, linux/amd64, musl) (push) Has been cancelled
Linux / build (aarch64, linux/arm64, musl64, arm64, ) (push) Has been cancelled
Linux / build (aarch64, linux/arm64, musl64, arm64, -glibc2.3.1) (push) Has been cancelled
Linux / build (aarch64, linux/arm64, musl64, arm64, -musl) (push) Has been cancelled
Linux / build (linux/amd64, deb, deb, x86-64) (push) Has been cancelled
Linux / build (linux/amd64, pandoc, docs, x86-64) (push) Has been cancelled
Linux / build (musl64, x86-64, ) (push) Has been cancelled
Linux / build (musl64, x86-64, -glibc2.3.1) (push) Has been cancelled
Linux / build (musl64, x86-64, -musl) (push) Has been cancelled
Linux / build (riscv64, linux/riscv64, musl64, riscv64, ) (push) Has been cancelled
Linux / build (riscv64, linux/riscv64, musl64, riscv64, -glibc2.3.1) (push) Has been cancelled
Linux / build (riscv64, linux/riscv64, musl64, riscv64, -musl) (push) Has been cancelled
osx / build (sbcl-bin/2.3.8, arm64) (push) Has been cancelled
osx / build (sbcl-bin/2.3.8, x86-64) (push) Has been cancelled
windows / build-windows (i686, i686, 32) (push) Has been cancelled
windows / build-windows (x86_64, amd64, 64) (push) Has been cancelled
2024-10-15 02:30:11 +09:00
snmsts 1bd85255b4 show more info while download when verbose level is 2 2024-10-15 02:29:25 +09:00
snmsts 0dc9b1150d forgot adding libpsl-static. 2024-10-14 16:35:18 +09:00
snmsts b3e12e0133 try again build static build on musl 2024-10-14 16:27:32 +09:00
snmsts 8fc5809743 fix error on alpine 3.20 2024-10-14 15:50:55 +09:00
snmsts 70f379a58c try riscv64 on ci 2024-10-14 15:29:50 +09:00
Ashton Fagg ddf356ab38
Fix absolute path error on Windows (#595) 2024-10-14 14:25:11 +09:00
snmsts dbb6e5894e try to use matrix.target to name release package. 2024-10-14 14:05:17 +09:00
snmsts beb2bad2fd set docker relatad environment on ci 2024-10-14 13:45:24 +09:00
snmsts 412566b8a5 typo fix for linux ci 2024-10-14 13:41:22 +09:00
snmsts f2127bb813 It's ci recovery phase so test run's on push is not apropriate for a while. 2024-10-14 13:40:29 +09:00
snmsts 776835811a install qemu for linux ci 2024-10-14 13:32:18 +09:00
snmsts 8d5471eba1 update scripts/Makefile for ci update 2024-10-14 13:26:48 +09:00
snmsts de01eec94f fix set makeopts 2024-10-14 03:25:33 +09:00
snmsts 1ef739bd3e try build aarch64 linux 2024-10-14 03:22:09 +09:00
snmsts da2a76e50c edit linux.yml 2024-10-14 03:09:47 +09:00
snmsts daebc205f9 build.yml is for windows and broken while windows.yml is still working... delete build.yml 2024-10-14 02:58:17 +09:00
snmsts 730cfe3f94 update osx ci 2024-10-14 02:55:41 +09:00
snmsts 3f8dccc11c update osx ci 2024-10-14 02:46:30 +09:00
snmsts 6d74fbdeb9 try update linux 2024-10-14 02:40:27 +09:00
snmsts 9b212cda7c #593 try ignore windress on non windows compilation 2024-10-11 17:45:01 +09:00
snmsts 06233e5218 trim for uname -p on netbsd
Some checks failed
CI / build-windows (x86_64, amd64, 64) (push) Has been cancelled
linux / build (deb, sbcl-bin/2.0.0, deb, x86-64) (push) Has been cancelled
linux / build (musl64, sbcl-bin/2.0.0, musl, x86-64) (push) Has been cancelled
linux / build (musl64, sbcl-bin/2.0.0, musl, x86-64, -musl) (push) Has been cancelled
linux / build (pandoc, sbcl-bin/2.0.0, docs, x86-64) (push) Has been cancelled
osx / build (sbcl-bin/2.0.0, x86-64) (push) Has been cancelled
test / build (false, alisp, macos-latest) (push) Has been cancelled
test / build (false, alisp, ubuntu-latest) (push) Has been cancelled
test / build (false, ccl-bin, macos-latest) (push) Has been cancelled
test / build (false, ccl-bin, ubuntu-latest) (push) Has been cancelled
test / build (false, ccl32, macos-latest) (push) Has been cancelled
test / build (false, ccl32, ubuntu-latest) (push) Has been cancelled
test / build (false, clisp, macos-latest) (push) Has been cancelled
test / build (false, clisp, ubuntu-latest) (push) Has been cancelled
test / build (false, cmu-bin/2019-06, macos-latest) (push) Has been cancelled
test / build (false, cmu-bin/2019-06, ubuntu-latest) (push) Has been cancelled
test / build (false, ecl, macos-latest) (push) Has been cancelled
test / build (false, ecl, ubuntu-latest) (push) Has been cancelled
test / build (false, sbcl, macos-latest) (push) Has been cancelled
test / build (false, sbcl, ubuntu-latest) (push) Has been cancelled
test / build (false, sbcl/1.4.0, macos-latest) (push) Has been cancelled
test / build (false, sbcl/1.4.0, ubuntu-latest) (push) Has been cancelled
test / build (true, abcl, macos-latest) (push) Has been cancelled
test / build (true, abcl, ubuntu-latest) (push) Has been cancelled
test / build (true, mkcl, macos-latest) (push) Has been cancelled
test / build (true, mkcl, ubuntu-latest) (push) Has been cancelled
test / build (true, sbcl/git, macos-latest) (push) Has been cancelled
test / build (true, sbcl/git, ubuntu-latest) (push) Has been cancelled
windows / build-windows (i686, i686, 32) (push) Has been cancelled
windows / build-windows (x86_64, amd64, 64) (push) Has been cancelled
2024-09-17 22:52:09 +09:00
snmsts c0a347fdf2 use uname -p instead of uname -m on arm netbsd aarch64 2024-09-17 22:43:31 +09:00
snmsts 4c17a2b653 try support armv8l 2024-01-01 03:00:20 +09:00
Alexander Artemenko 0498baf088
fix error message in build (#518) (#573)
Co-authored-by: Rongsong Shen <rongsong.shen@gmail.com>
Co-authored-by: Rongsong Shen <shenrs@cn.ibm.com>
2023-10-20 23:41:41 +09:00
SANO Masatoshi 0e7a2f1b6d bump version to 23.10.14.114 2023-10-04 03:19:32 +00:00
SANO Masatoshi 0807dbd547 [ci skip] prepare ChangeLog entry next to v22.12.14.113 2023-10-03 12:56:28 +00:00
snmsts 5b267381a6 fix 'ros.installing' feature not work. reported by Fukamachi. 2023-10-01 00:32:54 +09:00
Jeongsoo, Park 08ca16dcc3
fix windows build script (#555) (#565) 2023-09-24 14:45:49 +09:00
snmsts bf91af67cc fix typo 2023-08-29 02:57:21 +09:00
rpgoldman ab3017dcc6
Fix ROSWELL_RELEASE_VERSION (#562)
Bumped to 22.12.14.113 Previously was 21.10.14.111.

Fix #561
2023-08-29 01:58:22 +09:00
snmsts 6158d1cca7 try test with latest. 2023-05-13 22:36:30 +09:00
SANO Masatoshi a844895c67 use ubuntu-latest for github action. 2023-05-12 10:27:29 +00:00
SANO Masatoshi b6d1eb1fd8 debug extension 2023-05-12 05:59:38 +00:00
snmsts 06e5dc6be2 remove trailing space 2023-05-09 21:25:51 +09:00
snmsts ec4c9b39ca reimplement extension for quicklisp. ros -s lem-project:lem -e "(lem:lem)" -e "(ros:quit)" would work now 2023-05-05 22:33:13 +09:00
Daniel Jay Haskin afe3e39d86
Update msys2 locations (#550)
Co-authored-by: Skin <me@djha.skin>
2023-05-05 18:55:28 +09:00
SANO Masatoshi 53ec6fb392 tested allegro installation on linux x86-64.(might work on other platform not tested yet) 2023-04-07 05:33:20 +08:00
Skin 5c0b3913c9
indent-region -> indent-points (#545)
The new version of lem changed the name of the function. Please update the ros code accordingly :)
2023-02-27 16:47:14 +09:00
SANO Masatoshi 4eec08cca7 implement a way to fix arch 2023-02-07 15:14:53 +08:00
SANO Masatoshi 76848fa7dc try dragonfly 2023-02-03 15:22:37 +08:00
SANO Masatoshi 1381da6ad8 experimental support for distributions like guix/nix 2023-01-29 12:32:03 +08:00
SANO Masatoshi 638608236c prepare for android support (no sbcl-bin prepared for roswell yet though) 2023-01-24 21:50:03 +09:00
SANO Masatoshi 16e2aa2300 try support solaris x86 2023-01-06 13:44:36 +09:00
Markus Klink 74bb83a467
Fix typo and clarify help text (#540) 2023-01-04 20:08:25 +09:00
lu4nx db9b518f1a
Fix cmd.short_name NULL pointer bug. (#538) 2023-01-04 20:07:52 +09:00
SANO Masatoshi bdc4a133ce try fix #536 2022-12-24 22:56:25 +09:00
SANO Masatoshi 6bb93dd033 release scripts update by practice 2022-12-24 22:30:29 +09:00
SANO Masatoshi 209a51377e released tar.bz2 was broken for 2 releases (reported by myaosato) 2022-12-20 22:24:13 +08:00
SANO Masatoshi f9bbd2e1e7 bump version to 22.12.14.113 2022-12-10 23:18:57 +08:00
SANO Masatoshi c6a91b91a6 [ci skip] prepare ChangeLog entry next to v22.12.14.112 2022-12-10 23:10:30 +08:00
SANO Masatoshi c9c89cebcb Revert "try fix ci on linux"
This reverts commit 04b495d76b.
2022-12-10 23:08:42 +08:00
SANO Masatoshi b516ad6972 fix ci for making debian package. 2022-12-10 23:07:22 +08:00
SANO Masatoshi 04b495d76b try fix ci on linux 2022-12-10 21:53:56 +09:00
SANO Masatoshi adea613bd8 bump version to 22.12.14.112 2022-12-10 21:24:10 +09:00
SANO Masatoshi 13273ad139 [ci skip] prepare ChangeLog entry next to v21.10.14.111 2022-12-03 21:49:56 +09:00
SANO Masatoshi dae5e63c7b fix #534 2022-11-27 01:56:35 +09:00
George Rawlinson 921d445cff
Update documentation regarding Linux distributions (#521)
* docs: update binary information for Linux distros

* docs: rename OS X to macOS
2022-06-04 21:16:41 +09:00
jgart ab78f9deef
typo fix implementation macro (#519) 2022-05-19 02:09:55 +09:00
SANO Masatoshi 73b5b2a460 support 'ros dynamic-space-size=4gb build test.ros' to work. 2022-04-02 22:41:12 +09:00
github actions 1c8e46de17 [ci skip] documents update 2022-02-20 06:14:59 +00:00
SANO Masatoshi 22a9e923ed pandoc image from xenial to focal. 2022-02-20 15:10:15 +09:00
cage2 6bf76f29e7
Update configure.ac (#513)
* - removed trailing withespaces.

* - replaced deprecated 'AM_CONFIG_HEADER' with 'AC_CONFIG_HEADERS'.

* - replaced deprecated 'AC_HELP_STRING' with 'AS_HELP_STRING'.

* - removed empty lines.

Co-authored-by: cage <cage@invalid>
2022-02-19 15:59:25 +09:00
SANO Masatoshi 3a57a6d44c fix #509 2022-01-31 02:44:18 +09:00
SANO Masatoshi 7c259e8d11 fix 2022-01-20 03:02:23 +09:00
SANO Masatoshi a53fcb77e3 muffle warning for deb package 2022-01-20 03:00:24 +09:00
github actions c6f86eb82f [ci skip] documents update 2022-01-19 17:20:06 +00:00
SANO Masatoshi 0068b922a3 edit ros-asdf.md 2022-01-20 02:15:58 +09:00
SANO Masatoshi 7a06d277dc Notice it's new year. 2022-01-07 13:31:39 +09:00
SANO Masatoshi 883f264ac8 delete templates. 2022-01-07 13:28:46 +09:00
github actions 89df2966d0 [ci skip] documents update 2021-11-25 05:04:31 +00:00
SANO Masatoshi 9b9c9a373b implement ros template path 2021-11-25 14:01:08 +09:00
SANO Masatoshi 1ea7273ab9 support cab extract on windows. 2021-11-11 14:42:56 +09:00
Masataro Asai 870041371f renamed macro: SLASH -> DIRSEP 2021-11-10 22:28:46 -05:00
Masataro Asai f9580b4ce6 readability improvement 2021-11-10 22:26:42 -05:00
Masataro Asai 293b545398 add warning when ROSWELL_HOME is not absolute 2021-11-10 22:26:01 -05:00
SANO Masatoshi fe4c321b6c fix problem when download file smaller than 74bytes.. 2021-11-02 12:35:58 +09:00
SANO Masatoshi 8fc2c35ac4 bump install-for-ci.sh version to 21.10.14.111 2021-10-15 20:12:36 +09:00
SANO Masatoshi 829658c0fa Merge branch 'master' of github.com:roswell/roswell 2021-10-15 15:43:49 +09:00
SANO Masatoshi 5be94a34eb bump version to 21.10.14.111 2021-10-15 15:41:00 +09:00
github actions 043cb7db80 [ci skip] documents update 2021-10-15 03:34:14 +00:00
SANO Masatoshi 13b9400092 'ros client' to fix using sbcl-bin. 2021-10-15 12:30:41 +09:00
SANO Masatoshi 9b3a257a4a update Makefile.am 2021-10-15 12:12:19 +09:00
github actions 3e8fbb5780 [ci skip] documents update 2021-10-14 16:30:30 +00:00
SANO Masatoshi e3f72e5552 wrote doc for 'ros client' 2021-10-15 01:25:58 +09:00
SANO Masatoshi 93b08b4276 edit .travis.yml to remove the function for update man/html (travis-ci is not working for this account already though). 2021-10-14 20:38:00 +09:00
github actions 3b39eb2eba [ci skip] documents update 2021-10-13 23:56:12 +00:00
SANO Masatoshi bce72a91a9 add manual for 'ros serve' 2021-10-14 08:52:03 +09:00
SANO Masatoshi 7390c53a2b fix failure on doc update 2021-10-14 08:41:10 +09:00
SANO Masatoshi 356b891093 fail-fast false on linux. 2021-10-13 23:04:10 +09:00
SANO Masatoshi d34deabb96 forget to add bootstrap 2021-10-13 17:00:14 +09:00
SANO Masatoshi ef6e4a3eaf try doc update on ci 2021-10-13 16:37:43 +09:00
SANO Masatoshi 181cf35eed muffle warnings 2021-10-13 16:25:55 +09:00
SANO Masatoshi dc9e940896 [ci skip] prepare ChangeLog entry next to v21.06.14.110 2021-10-13 03:29:52 +09:00
SANO,Masatoshi fda4e6563c
support ros install clisp-head (#495)
* clisp-head. tested on debian x86-64

* support locale for clisp 'ros -L clisp lang=german run' would be the way.

* tested on darwin. and notice warning.

* tested on alpine.
2021-10-12 00:47:53 +09:00
SANO Masatoshi 34fe8e0f98 fix typo 2021-09-15 02:24:09 +09:00
SANO Masatoshi 83f7a996ea try debian 2021-09-15 02:06:08 +09:00
SANO Masatoshi fd3b282164 use pacman for install-for-ci.sh 2021-09-04 13:30:36 +09:00
SANO Masatoshi a42890c970 rename zip to support scoop. 2021-08-22 02:24:58 +09:00
SANO Masatoshi ee57def3f8 change windows archive from .tar.bz2 to .zip 2021-08-21 21:48:03 +09:00
SANO Masatoshi eaade79e7a implement 'ros client swank' 2021-08-11 13:34:43 +09:00
SANO Masatoshi c0bc5973a9 [WIP] ros install sbcl-head to install newer than released 2021-07-23 10:19:27 +09:00
SANO Masatoshi d94b9d83b8 forgot to add sn.github 2021-07-12 01:48:48 +09:00
SANO Masatoshi 607654fafb found portable way. 2021-07-12 00:31:29 +09:00
SANO Masatoshi cc9f5f207e gnu sed for osx ci. 2021-07-11 23:36:20 +09:00
SANO Masatoshi cb915df04d setup dependency for osx ci. 2021-07-11 23:13:29 +09:00
SANO Masatoshi 57952781fe try build binary for osx 2021-07-11 22:30:19 +09:00
SANO Masatoshi 99bbff3ca0 update released makefile 2021-07-05 18:17:54 +09:00
SANO Masatoshi 2bf8cab309 bump install-for-ci.sh version to 21.06.14.110 2021-07-05 17:53:32 +09:00
SANO Masatoshi b7b5a1c6c9 prepare upload.exe compiled with 64bit sbcl and use to upload 32bit result. 2021-07-05 16:34:17 +09:00
SANO Masatoshi 7ee3f5bb5d try fix upload 2021-07-03 19:24:50 +09:00
SANO Masatoshi 660cd9b2f2 try fix windows.yml 2021-07-03 19:05:58 +09:00
SANO Masatoshi 4c4afdd68d add token for windows.yml 2021-07-03 18:56:13 +09:00
SANO Masatoshi 52183ff17d install sn.github for windows.yml 2021-07-03 17:58:33 +09:00
SANO Masatoshi 06aaf123c5 add windows.yml 2021-07-03 17:47:55 +09:00
SANO Masatoshi 421966dd95 stop using ros while make pack. 2021-06-29 23:59:43 +09:00
SANO Masatoshi c9ef28536f bump version to 21.06.14.110 2021-06-24 17:16:22 +09:00
SANO Masatoshi b850b295e1 [ci skip] prepare ChangeLog entry next to v21.05.14.109 2021-06-24 14:21:51 +09:00
SANO Masatoshi 745144d9e5 add interval option for download. 2021-06-20 15:48:41 +09:00
SANO Masatoshi 0a1254c03e fix ros install asdf on freebsd (#467) 2021-06-11 16:12:07 +09:00
SANO Masatoshi 351157c0e3 improve uname for windows 2021-06-07 13:10:33 +09:00
SANO Masatoshi 519751aa04 include Makefile for windows 2021-06-07 13:05:35 +09:00
SANO Masatoshi 2bf24f5657 try fix error 2021-06-07 13:05:03 +09:00
SANO Masatoshi 9b74b17b6c fix error... 2021-06-07 12:17:14 +09:00
SANO Masatoshi 03517cad3b edit install-for-ci.sh 2021-06-06 23:15:09 +09:00
SANO Masatoshi 2f98775a2c rewrite install-for-ci.sh 2021-06-04 03:33:36 +09:00
TANIGUCHI Masaya a790a53222
Update directory name for macOS (#480)
* Update directory name for macOS

* Update path
2021-06-03 11:47:34 +09:00
SANO Masatoshi d264e4ea3f try fix uri for allegro 10.1. 2021-06-03 02:41:31 +09:00
SANO Masatoshi e794c63f53 install libcurl4-openssl-dev on install-for-ci.sh 2021-05-29 01:32:28 +09:00
SANO Masatoshi 53624e12a1 rename archive name for ci. 2021-05-28 13:04:14 +09:00
SANO Masatoshi 2295411c87 change structure a bit. 2021-05-28 12:20:39 +09:00
SANO Masatoshi 83a37a257b 'ros version' to show sbcl-bin-variant 2021-05-17 09:01:45 +09:00
SANO Masatoshi ed1f7c6eda try to fix ci. :( 2021-05-17 02:39:05 +09:00
SANO Masatoshi 45eba0d956 try to fix ci. 2021-05-17 02:29:59 +09:00
SANO Masatoshi b466d1249f try to fix ci. 2021-05-17 02:21:51 +09:00
SANO Masatoshi 32fbad1df8 try build static roswell on github actions 2021-05-16 17:07:23 +09:00
SANO Masatoshi 21d6359533 forgot to add SUDO in ci script 2021-05-16 04:32:36 +09:00
SANO Masatoshi 534f6991ab subst SBCL_BIN_VARIANT for ci script 2021-05-16 01:55:42 +09:00
SANO Masatoshi d246106a39 don't test hombebrew... 2021-05-16 01:54:46 +09:00
SANO Masatoshi 4964e70ad4 implement bin install for non debian linux 2021-05-15 19:15:26 +09:00
SANO Masatoshi 3b81b80ddb remove .appveyor.yml 2021-05-15 12:11:32 +09:00
SANO Masatoshi 9f28cb3ac4 fix borken make dist archive. 2021-05-15 11:47:33 +09:00
SANO Masatoshi 1087fc358a move all test to github actions. 2021-05-14 08:40:39 +09:00
SANO Masatoshi db1857bafd transit partially from travis to github actions. 2021-05-14 03:17:26 +09:00
SANO Masatoshi 989bbd8e58 test with gh actions 2021-05-14 03:06:02 +09:00
SANO Masatoshi 029fad9443 fix name 2021-05-14 01:47:20 +09:00
SANO Masatoshi 806a1606de build docker image for static binary 2021-05-14 01:42:51 +09:00
SANO Masatoshi 2c591300a4 bump version to 21.05.14.109 2021-05-12 22:15:11 +09:00
SANO Masatoshi c883fc00a2 [ci skip] prepare ChangeLog entry next to v21.01.14.108 2021-05-12 21:58:33 +09:00
SANO Masatoshi ee46642416 improve for make pack 2021-05-12 21:56:12 +09:00
SANO Masatoshi 2dd3c7d6a9 fix typo and make it simple 2021-05-07 02:38:14 +09:00
SANO Masatoshi a536b9e7ed atop using autotools 2021-05-07 01:02:07 +09:00
SANO Masatoshi 701bc845bd rename dist package for bin 2021-05-06 15:33:07 +09:00
SANO Masatoshi 683ae5f6c4 prepare for binary distribution 2021-05-06 14:50:33 +09:00
SANO Masatoshi b8ccb2342f set default variant for sbcl-bin on compile time. 2021-05-04 21:33:03 +09:00
SANO Masatoshi 64fdea1fdc some experiment on ci for freebsd. 2021-05-03 00:47:33 +09:00
SANO Masatoshi 6d4a612302 fix 2021-05-02 18:24:50 +09:00
SANO Masatoshi 6a529d9ccc wip support freebsd ci. 2021-05-02 12:37:42 +09:00
gos-k 81635defae
Clasp bin (#475)
* Add install clasp-bin

* Fix path

* add install-clasp-bin.lisp on Makefile.am

Co-authored-by: SANO Masatoshi <snmsts@gmail.com>
2021-04-29 17:47:39 +09:00
SANO Masatoshi f1555cd79c support for msi structure change? 2021-04-04 16:41:35 +09:00
gos-k 739740bd77
enable where-is-system (#473) 2021-04-04 14:50:38 +09:00
SANO Masatoshi 59b610b542 fix #471 2021-03-24 14:25:53 +09:00
Hamayama 0107dfb543
Fix CI workflow in GitHub Actions for Windows (#465) 2021-02-21 20:59:57 +09:00
136 changed files with 2718 additions and 1685 deletions

View file

@ -1,57 +0,0 @@
platform:
- x64
environment:
global:
MSYS2_BASEVER: 20160205
matrix:
- MSYS2_ARCH: i686
MSYS2_BITS: 32
MSYSTEM: MINGW32
METHOD: cross
- MSYS2_ARCH: x86_64
MSYS2_BITS: 64
MSYSTEM: MINGW64
METHOD: cross
install:
- ps: If (($env:METHOD -eq "cross") -and (Test-Path ("msys" + $env:MSYS2_BITS))){Write-Host "Using cached msys2"}
- ps: >-
If (($env:METHOD -eq "cross") -and !(Test-Path ("msys" + $env:MSYS2_BITS))) {
Invoke-WebRequest -UserAgent wget -Uri ("http://kent.dl.sourceforge.net/project/msys2/Base/" + $env:MSYS2_ARCH + "/msys2-base-" + $env:MSYS2_ARCH + "-" + $env:MSYS2_BASEVER + ".tar.xz") -OutFile "msys2.tar.xz";
&"7z" x msys2.tar.xz;
&"7z" x msys2.tar > $nul;
&("msys" + $env:MSYS2_BITS + "\usr\bin\bash") -lc "";
&("msys" + $env:MSYS2_BITS + "\usr\bin\bash") -lc ("for i in {1..3};
do pacman --noconfirm -Syu --force coreutils && break || sleep 15; done");
&("msys" + $env:MSYS2_BITS + "\usr\bin\bash") -lc ("for i in {1..3};
do pacman --noconfirm -Suy autoconf automake mingw-w64-"+ $env:MSYS2_ARCH + "-gcc make zlib-devel python3 && break || sleep 15; done");
&("msys" + $env:MSYS2_BITS + "\usr\bin\bash") -lc "pacman --noconfirm -R -s bash-completion tftp-hpa inetutils util-linux tzcode time dash flex pax-git file bsdcpio bsdtar lndir";
&("msys" + $env:MSYS2_BITS + "\usr\bin\bash") -lc "yes|pacman --noconfirm -Sc";
#&("msys" + $env:MSYS2_BITS + "\autorebase.bat");
}
build_script:
- if "%METHOD%"=="cross" msys%MSYS2_BITS%\usr\bin\bash -lc "mkdir /tmp;cd $APPVEYOR_BUILD_FOLDER; exec 0</dev/null; ./bootstrap; ./configure; make; make install; make winrelease"
- if "%METHOD%"=="ci" C:\msys64\usr\bin\bash -lc "cd $APPVEYOR_BUILD_FOLDER; exec 0</dev/null; ./bootstrap; ./configure; make; make install"
test_script:
- if "%METHOD%"=="ci" C:\msys64\usr\bin\bash -lc "ros version"
- if "%METHOD%"=="ci" C:\msys64\usr\bin\bash -lc "ros setup"
- if "%METHOD%"=="ci" C:\msys64\usr\bin\bash -lc "ros install sbcl"
# - if "%METHOD%"=="cross" ros install sbcl
# - ros install sbcl
# - ros config
# - ros -s prove-asdf -s quri-test -e "(asdf:test-system :quri-test)"
# - ps: foreach($artifactName in $artifacts.keys) { Write-Host $artifacts[$artifactName].path }
artifacts:
- path: Roswell-x86_64.zip
name: Roswell-x86_64.zip
- path: Roswell-i686.zip
name: Roswell-i686.zip
#cache:
# - msys64
# - msys32
# - msys32 -> .appveyor.yml
# - msys64 -> .appveyor.yml

View file

@ -1,107 +0,0 @@
name: CI
on:
push:
pull_request:
jobs:
build-windows:
runs-on: windows-latest
timeout-minutes: 90
strategy:
fail-fast: false
matrix:
arch: [x86_64, i686]
include:
- arch: x86_64
arch2: amd64
bit: 64
- arch: i686
arch2: i686
bit: 32
env:
MSYSTEM: MINGW${{ matrix.bit }}
MSYS2_PATH_TYPE: inherit
MSYS2_PATH_LIST: D:\msys64\mingw${{ matrix.bit }}\bin;D:\msys64\usr\local\bin;D:\msys64\usr\bin;D:\msys64\bin
MSYS2_TARBALL_URL1: https://github.com/msys2/msys2-installer/releases/download/nightly-x86_64/msys2-base-x86_64-latest.tar.xz
MSYS2_TARBALL_URL2: http://repo.msys2.org/distrib/x86_64/msys2-base-x86_64-20190524.tar.xz
MSYS2_TARBALL_URL3: https://sourceforge.net/projects/msys2/files/Base/x86_64/msys2-base-x86_64-20190524.tar.xz
RESULT_NAME: windows-${{ matrix.arch2 }}
RESULT_PATH: windows-${{ matrix.arch2 }}
RESULT_PATH_SUB: roswell
steps:
- run: git config --global core.autocrlf false
- uses: actions/checkout@v2
- name: Install MSYS2
run: |
bash -lc @'
pwd
curl -f -L -o msys2.tar.xz $MSYS2_TARBALL_URL1 ||
curl -f -o msys2.tar.xz $MSYS2_TARBALL_URL2 ||
curl -f -L -o msys2.tar.xz $MSYS2_TARBALL_URL3
err1=$?
#tar xf msys2.tar.xz -C /d/
7z x msys2.tar.xz -so | 7z x -aoa -si -ttar -oD:
ls -l /d/
exit $err1
'@
- name: Add MSYS2 path
run: |
echo "::set-env name=PATH::$env:MSYS2_PATH_LIST;$env:PATH"
- name: Run MSYS2 once
run: |
bash -lc @'
pwd
cd $GITHUB_WORKSPACE
pwd
echo $PATH
'@
- name: Update MSYS2
run: |
bash -lc @'
pacman --version
pacman -Syyuu --noconfirm
'@
- name: Install MinGW-w64
run: |
bash -lc @'
pacman --version
pacman -S --noconfirm base-devel &&
pacman -S --noconfirm mingw${{ matrix.bit }}/mingw-w64-${{ matrix.arch }}-toolchain
'@
- name: Set environment variables
run: |
bash -lc @'
pwd
uname
uname -m
'@
- name: Build
run: |
bash -lc @'
cd $GITHUB_WORKSPACE
gcc -v
./bootstrap
./configure
make
make install
make winrelease
'@
- name: Copy Result
if: always()
run: |
bash -lc @'
cd $GITHUB_WORKSPACE
mkdir -p $RESULT_PATH
cp *.zip $RESULT_PATH/tmp.zip
cd $RESULT_PATH
7z x tmp.zip
rm tmp.zip
'@
- name: Upload Result
if: always()
uses: actions/upload-artifact@v1
with:
name: ${{ env.RESULT_NAME }}
path: ${{ env.RESULT_PATH }}

27
.github/workflows/docker-build.yml vendored Normal file
View file

@ -0,0 +1,27 @@
name: docker-build
on:
workflow_dispatch:
env:
DOCKER_BUILDKIT: 1
jobs:
build:
runs-on: ubuntu-latest
environment: DOCKER_IMAGE
steps:
- uses: actions/checkout@v2
- name: Login GitHub Registry
run: echo ${{ secrets.GITHUB_TOKEN }} | docker login docker.pkg.github.com -u snmsts --password-stdin
- name: Build image
env:
IMAGE: ${{ secrets.IMAGE }}
run: |
echo building $(cat ./scripts/Docker/$IMAGE/Name) ...
docker build -t docker.pkg.github.com/${{ github.repository }}/$(cat ./scripts/Docker/$IMAGE/Name) ./scripts/Docker/$IMAGE
- name: Push image to GitHub Registry
env:
IMAGE: ${{ secrets.IMAGE }}
run: docker push docker.pkg.github.com/${{ github.repository }}/$(cat ./scripts/Docker/$IMAGE/Name)

93
.github/workflows/linux.yml vendored Normal file
View file

@ -0,0 +1,93 @@
name: Linux
on:
push:
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
image: [musl64]
variant: ['', '-musl', '-glibc2.31']
target: ['x86_64', 'arm64', 'riscv64']
include:
# set default docker platform and image suffix.
- {docker-platform: linux/amd64 ,docker-image-suffix: '', makeopts: musl }
- {target: arm64 ,docker-platform: linux/arm64 ,docker-image-suffix: 'aarch64' }
- {target: riscv64 ,docker-platform: linux/riscv64 ,docker-image-suffix: 'riscv64' }
- {image: deb, makeopts: deb, target: x86-64 ,docker-platform: linux/amd64}
- {image: pandoc, makeopts: docs, target: x86-64 ,docker-platform: linux/amd64}
environment: SET_VERSION
steps:
- uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
image: tonistiigi/binfmt:qemu-v8.1.5
- name: setenv
run: |
echo "$HOME/.roswell/bin" >> $GITHUB_PATH
echo "ROSWELL_BRANCH=release" >> $GITHUB_ENV
- name: checkenv
run: |
uname -s -m
- name: Install Roswell
env:
LISP: sbcl-bin/2.4.0
GITHUB_OAUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
IMAGE: ${{ matrix.image }}
run: |
sh scripts/install-for-ci.sh
ros install snmsts/sn.github
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: docker.pkg.github.com
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: pull or build&push docker image
env:
DOCKER_PLATFORM: ${{ matrix.docker-platform }}
DOCKER_BUILD_OPTIONS: ${{ matrix.docker-build-options }}
DOCKER_IMAGE_SUFFIX: ${{ matrix.docker-image-suffix }}
IMAGE: ${{ matrix.image }}
run: |
if [ -n "$IMAGE" ]; then
make -f scripts/Makefile pull-docker || make -f scripts/Makefile build-docker push-docker
fi
- name: build
env:
VERSION: ${{ secrets.VERSION }}
ARCH: ${{ matrix.target }}
DOCKER: ${{ matrix.docker }}
SUFFIX: ${{ matrix.suffix }}
LINKFLAGS: ${{ matrix.linkflags }}
DOCKER_PLATFORM: ${{ matrix.docker-platform }}
DOCKER_BUILD_OPTIONS: ${{ matrix.docker-build-options }}
DOCKER_IMAGE_SUFFIX: ${{ matrix.docker-image-suffix }}
IMAGE: ${{ matrix.image }}
MAKEOPTS: ${{ matrix.makeopts }}
VARIANT: ${{ matrix.variant }}
run: |
if [ "$VERSION" = "" ]; then
make -f scripts/Makefile latest-version docker
else
make -f scripts/Makefile docker
fi
- name: upload
env:
GITHUB_OAUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VERSION: ${{ secrets.VERSION }}
ARCH: ${{ matrix.target }}
SUFFIX: ${{ matrix.suffix }}
run: |
if [ "$VERSION" = "" ]; then
make -f scripts/Makefile latest-version ${{ matrix.makeopts }}-upload
else
make -f scripts/Makefile ${{ matrix.makeopts }}-upload
fi

45
.github/workflows/osx.yml vendored Normal file
View file

@ -0,0 +1,45 @@
name: osx
on:
push:
workflow_dispatch:
jobs:
build:
runs-on: ${{ matrix.target == 'arm64' && 'macos-14' || 'macos-15-intel' }}
strategy:
fail-fast: false
matrix:
lisp: [sbcl-bin/2.3.8]
target: [arm64, x86-64]
environment: SET_VERSION
steps:
- uses: actions/checkout@v4
- name: setenv
run: |
echo "$HOME/.roswell/bin" >> $GITHUB_PATH
echo "ROSWELL_INSTALL_DIR=$HOME/.roswell" >> $GITHUB_ENV
- name: checkenv
run: |
uname -s -m
brew install autoconf automake
- name: Build
env:
CFLAGS: -mmacosx-version-min=10.9
CXXFLAGS: -mmacosx-version-min=10.9
LDFLAGS: -mmacosx-version-min=10.9
ARCH: ${{ matrix.target }}
run: |
gcc -v
./bootstrap
./configure --prefix=$ROSWELL_INSTALL_DIR
make
make install
make pack
ros install snmsts/sn.github
- name: Upload
env:
GITHUB_OAUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
make -f scripts/Makefile latest-version musl-upload

75
.github/workflows/test.yml vendored Normal file
View file

@ -0,0 +1,75 @@
name: test
on:
schedule:
- cron: '0 1 * * *'
workflow_dispatch:
jobs:
build:
runs-on: ${{ matrix.os }}
continue-on-error: ${{ matrix.experimental }}
timeout-minutes: 90
strategy:
fail-fast: false
matrix:
os: [macos-latest, ubuntu-latest]
lisp:
- alisp
- cmu-bin/2019-06
- sbcl
- ecl
- clisp
- ccl-bin
- sbcl/2.4.0
- ccl32
experimental: [false]
exclude:
- lisp: ccl-bin
os: macos-latest
- lisp: ccl32
os: macos-latest
- lisp: cmu-bin/2019-06
os: macos-latest
include:
- lisp: mkcl
os: macos-latest
experimental: true
- lisp: mkcl
os: ubuntu-latest
experimental: true
- lisp: sbcl/git
os: macos-latest
experimental: true
- lisp: sbcl/git
os: ubuntu-latest
experimental: true
- lisp: abcl
os: macos-latest
experimental: true
- lisp: abcl
os: ubuntu-latest
experimental: true
env:
LISP: ${{ matrix.lisp }}
ROSWELL_REPO: https://github.com/${{ github.repository }}
ROSWELL_BRANCH: ${{ github.head_ref }}
steps:
- uses: actions/checkout@v2
- name: setenv
run: |
echo "$HOME/.roswell/bin" >> $GITHUB_PATH
echo "ROSWELL_INSTALL_DIR=$HOME/.roswell" >> $GITHUB_ENV
- name: Install Roswell
run: |
sh ./scripts/install-for-ci.sh
- name: script
run: |
ros version
ros version=t run
ros install prove
run-prove roswell-test.asd 2>&1
ros -q run && [ "$(ros -q run 2>&1)" = "" ]
ros config

113
.github/workflows/windows.yml vendored Normal file
View file

@ -0,0 +1,113 @@
name: windows
on:
push:
workflow_dispatch:
jobs:
build-windows:
runs-on: windows-latest
timeout-minutes: 90
strategy:
fail-fast: false
matrix:
arch: [x86_64, i686]
include:
- arch: x86_64
arch2: amd64
bit: 64
- arch: i686
arch2: i686
bit: 32
env:
RESULT_NAME: windows-${{ matrix.arch2 }}
RESULT_PATH: windows-${{ matrix.arch2 }}
RESULT_PATH_SUB: roswell
environment: SET_VERSION
steps:
- run: git config --global core.autocrlf false
- uses: actions/checkout@v2
- uses: msys2/setup-msys2@v2
with:
msystem: MINGW${{ matrix.bit }}
path-type: inherit
release: true
update: true
install: >-
base-devel
p7zip
autotools
mingw-w64-${{ matrix.arch }}-toolchain
mingw-w64-${{ matrix.arch }}-autotools
- name: Run MSYS2 once
shell: msys2 {0}
run: |
pwd
echo $MSYSTEM
echo $MSYS2_PATH_TYPE
echo $PATH
- name: Build
shell: msys2 {0}
run: |
gcc -v
./bootstrap
./configure
make
make install
make pack.zip
- name: Upload
env:
GITHUB_OAUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
shell: msys2 {0}
run: |
make -f scripts/Makefile latest-version win-upload
build-windows-arm64:
runs-on: windows-11-arm
timeout-minutes: 90
env:
RESULT_NAME: windows-aarch64
RESULT_PATH: windows-aarch64
RESULT_PATH_SUB: roswell
environment: SET_VERSION
steps:
- run: git config --global core.autocrlf false
- uses: actions/checkout@v2
- uses: msys2/setup-msys2@v2
with:
msystem: CLANGARM64
path-type: inherit
release: true
update: true
install: >-
base-devel
p7zip
autotools
mingw-w64-clang-aarch64-toolchain
mingw-w64-clang-aarch64-autotools
- name: Run MSYS2 once
shell: msys2 {0}
run: |
pwd
echo $MSYSTEM
echo $MSYSTEM_CARCH
echo $PATH
- name: Build
shell: msys2 {0}
run: |
clang -v
./bootstrap
CC=clang ./configure
make
make install
make pack.zip
- name: Upload
env:
GITHUB_OAUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
shell: msys2 {0}
run: |
make -f scripts/Makefile latest-version win-upload

5
.gitignore vendored
View file

@ -3,12 +3,15 @@
*.AppImage
*.fasl
.deps
.env
src/ros
src/ros.exe
src/html_sbcl
src/html_sbcl.exe
src/gend.h
Makefile
/Makefile
/src/Makefile
/documents/Makefile
Makefile.in
configure
config.status

View file

@ -7,33 +7,11 @@ env:
- ROSWELL_BRANCH=$TRAVIS_BRANCH
- ROSWELL_INSTALL_DIR=$HOME/.roswell
- ROSWELL_REPO=https://github.com/${TRAVIS_REPO_SLUG}
matrix:
- LISP=alisp
- LISP=cmu-bin/2019-06
- LISP=sbcl
- LISP=ecl
- LISP=mkcl
- LISP=clisp
- LISP=abcl
- LISP=ccl-bin
- LISP=sbcl/1.1.14
- LISP=ccl32
- LISP=sbcl/git
os:
- osx
- linux
jobs:
allow_failures:
- env: LISP=sbcl/git
- env: LISP=mkcl
- env: LISP=abcl
include:
- os: windows
env: LISP=sbcl-bin
install:
- export SETARCH="$mingw64"
- $SETARCH sh ./scripts/install-for-ci.sh
- os: linux
arch: arm64
env: LISP=sbcl-bin
@ -58,58 +36,6 @@ jobs:
apt:
packages:
- valgrind
- os: linux
name: "update documents"
if: branch = master
install:
- find . \( -name \*.lisp -o -name \*.ros \) -type f|xargs wc -l -c
- find . \( -name \*.c -o -name \*.h \) -type f|xargs wc -l -c
- pandoc -v
script:
- rm documents/man/* documents/html/*
- sh bootstrap
- ./configure --enable-manual-generation --enable-html-generation
- make
- sudo make install
- ros config
after_success:
- git config user.email "auto@example.com"; git config user.name "Travis-CI";
- if [ "$TRAVIS_BRANCH" = "master" ]; then
git branch;git status;
git checkout $TRAVIS_BRANCH;git add -u;git add documents/man/* documents/html/*;
git commit -m "[ci skip] documents update";
git push --force --quiet "https://${GITHUB_OAUTH_TOKEN}:x-oauth-basic@github.com/roswell/roswell.git" $TRAVIS_BRANCH > /dev/null 2>&1;
fi
addons:
apt:
packages:
- pandoc
- ruby-sass
- os: linux
name: "linuxbrew"
install:
- yes ""| sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"
- brew update
- brew --env
- brew config
- brew doctor || true
- brew install curl
- brew install roswell --HEAD
script:
- ros version;
- ros version=t run;
- ros install prove;
- run-prove roswell-test.asd 2>&1;
- os: osx
name: "homebrew"
install:
- brew doctor || true
- brew install roswell --HEAD
script:
- ros version;
- ros version=t run;
- ros install prove;
- run-prove roswell-test.asd 2>&1;
#branches:
# except:
@ -123,28 +49,6 @@ addons:
before_install:
- date
- |-
case $TRAVIS_OS_NAME in
windows)
[[ ! -f C:/tools/msys64/msys2_shell.cmd ]] && rm -rf C:/tools/msys64
choco uninstall -y mingw
choco upgrade --no-progress -y msys2
RefreshEnv.cmd
export msys2='set MSYS=winsymlinks:nativestrict '
export msys2+='& C:\\tools\\msys64\\msys2_shell.cmd -defterm -no-start'
export mingw64="$msys2 -mingw64 -full-path -here -c "\"\$@"\" --"
export msys2+=" -msys2 -c "\"\$@"\" --"
$msys2 pacman --sync --noconfirm --needed autoconf automake make zlib-devel mingw-w64-x86_64-gcc mingw-w64-i686-gcc
taskkill //IM gpg-agent.exe //F # https://travis-ci.community/t/4967
export PATH=/C/tools/msys64/mingw64/bin:$PATH
export MAKE=mingw32-make # so that Autotools can find it
;;
osx)
brew update
brew --env
brew config
;;
esac
install:
- $SETARCH sh ./scripts/install-for-ci.sh
script:
@ -154,9 +58,6 @@ script:
- $SETARCH run-prove roswell-test.asd 2>&1
- $SETARCH ros -q run && [`ros -q run 2>&1` == ""]
- if [ "$LISP" = "sbcl-bin" ] && [ x$ALLOW_FAILURES != x ]; then
if [ $TRAVIS_OS_NAME = osx ]; then
sudo ros -e '(ignore-errors (with-open-file (o (format nil "/~A" (code-char 12354)) :direction :output)))';
fi;
if [ $ALLOW_FAILURES = YES ]; then
ros sbcl.patchless=t install sbcl;
else
@ -166,11 +67,3 @@ script:
make -C t/tree-shaker ;
fi
- $SETARCH ros config
before_cache:
- |-
case $TRAVIS_OS_NAME in
windows)
# https://unix.stackexchange.com/a/137322/107554
$msys2 pacman --sync --clean --noconfirm
;;
esac

View file

@ -1,4 +1,4 @@
Copyright (c) 2014-2021 SANO Masatoshi
Copyright (c) 2014-2022 SANO Masatoshi
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View file

@ -1,3 +1,74 @@
roswell (26.02.116-1) unstable; urgency=low
* Fix: failure to load djula on sbcl 2.5.11 environment.
* Fix: declaration-definition disagreement in src/cmd-run.h. (reported by ItsMeForLua and fixed by Trichiurus-lepturus)
* Fix: support sbcl lisp-implementation-version returning '2.4.10.roswell'.
* Change: Allegro CL upgraded to release 11.0express. (by Xiaming Chen)
* Change: ros command return 1 when script file not found.
* Change: ros fmt rewritten to use cl-indentify.
-- SANO,Masatoshi <snmsts@gmail.com> Tue, 24 Feb 2026 06:39:51 +0900
roswell (24.10.115-1) unstable; urgency=low
* New: tested on darwin/ppc environment.
* New: tested on netbsd/aarch64 environment.
* Fix: absolute path error on Windows (by Ashton Fagg)
* Fix: build error on non Windows environment with windres (reported by Richard DW Redcroft)
* Fix: error message in build (by Rongsong Shen)
-- snmsts <snmsts@gmail.com> Wed, 16 Oct 2024 15:06:42 +0900
roswell (23.10.14.114-1) unstable; urgency=low
* New: use patchelf to support for distributions like guix/nix.
* Fix: 'ros.installing' feature not work. (reported by Fukamachi)
* Fix: fix windows build script (by Jeongsoo, Park)
* Fix: ros fmt (by Daniel Jay Haskin)
-- SANO Masatoshi <snmsts@gmail.com> Tue, 03 Oct 2023 12:57:11 +0000
roswell (22.12.14.113-1) unstable; urgency=low
* Fix: release CI for debian package.
-- SANO Masatoshi <snmsts@gmail.com> Sat, 10 Dec 2022 23:14:05 +0800
roswell (22.12.14.112-1) unstable; urgency=low
* New: Support cab extract on windows.
* New: `ros template path template-name files` to show native for template file.
* Fix: crush when download file smaller than 74bytes.
* Fix: `dynamic-space-size` parameter accepted by `ros build`.
* Fix: install old implementation when new quicklisp dist used. (reported by Alexander Artemenko)
-- SANO Masatoshi <snmsts@gmail.com> Tue, 06 Dec 2022 21:59:43 +0900
roswell (21.10.14.111-1) unstable; urgency=low
* New: 'ros client' to send oneshot message to lisp server. only support swank for now.
* New: 'ros install clisp-head' to install binary clisp.
* Changes: a lot related to ci.
-- SANO Masatoshi <snmsts@gmail.com> Fri, 15 Oct 2021 15:38:51 +0900
roswell (21.06.14.110-1) unstable; urgency=low
* Change: 'ros version' to show sbcl-bin-variant.
* Fix: support Allegro again it was broken because of uri change (by TANIGUCHI Masaya)
* Fix: install asdf at FreeBSD (Reported by C-Entropy)
-- SANO Masatoshi <snmsts@gmail.com> Thu, 24 Jun 2021 17:15:59 +0900
roswell (21.05.14.109-1) unstable; urgency=low
* New: 'ros install clasp-bin' implemented only tested on ubuntu 20.04
* New: './configure --with-sbcl-bin-variant=string' implemented for variants '-glibc2.10', '-musl' is prepared now.
* Fix: support for msi structure change?(reported by Aratrik Pal)
* Change: read tsv table to get current version of sbcl-bin instead of parsing html.
-- SANO Masatoshi <snmsts@gmail.com> Wed, 12 May 2021 13:01:28 +0000
roswell (21.01.14.108-1) unstable; urgency=low
* New: 'ros serve swank' to launch swank server.

View file

@ -5,14 +5,46 @@ SUBDIRS = src
if MANUAL_INSTALL
MDS = ros.md ros-checkout.md ros-dump.md ros-init.md ros-install.md ros-list.md ros-setup.md ros-template.md \
ros-config.md ros-delete.md ros-emacs.md ros-run.md ros-use.md ros-wait.md ros-asdf.md ros-build.md ros-update.md \
ros-help.md
man1_MANS = $(MDS:%.md=documents/man/%.1)
ros-help.md ros-client.md ros-serve.md
dist_man1_MANS = $(MDS:%.md=documents/man/%.1)
endif
if MANUAL_GENERATE
SUBDIRS += documents
endif
ROSS = balus.ros \
build.ros \
checkout.ros \
client.ros \
config.ros \
compile-file.ros \
ecl-config.ros \
emacs.ros \
exec.ros \
dist.ros \
fmt.ros \
get.ros \
git.ros \
hg.ros \
run.ros \
setup.ros \
shell.ros \
version.ros \
wait.ros \
delete.ros \
dump.ros \
help.ros \
init.ros \
install.ros \
serve.ros \
update.ros \
list.ros \
make-depends.ros \
template.ros \
use.ros \
which.ros
LISPS = helper.el \
init.lisp \
util.lisp util-main.lisp \
@ -23,97 +55,75 @@ LISPS = helper.el \
extend-quicklisp-system.lisp \
system.lisp \
\
balus.ros \
build.ros \
build-ros.lisp build-asd.lisp \
\
checkout.ros \
config.ros \
compile-file.ros \
client-swank.lisp \
util-config.lisp \
ecl-config.ros \
emacs.ros \
exec.ros \
dist.ros \
dist-list.lisp dist-clean.lisp dist-enable.lisp dist-disable.lisp dist-add.lisp \
dist-delete.lisp dist-use.lisp dist-versions.lisp dist-preference.lisp dist-default.lisp \
fmt.ros \
get.ros \
git.ros \
hg.ros \
run.ros \
setup.ros \
shell.ros \
version.ros \
wait.ros \
\
delete.ros \
delete-default.lisp delete-dump.lisp delete-git.lisp delete-asdf.lisp \
delete-env.lisp \
\
dump.ros \
util-dump.lisp \
dump-ccl.lisp dump-clisp.lisp \
dump-cmucl.lisp dump-ecl.lisp dump-sbcl.lisp \
\
help.ros \
help-install.lisp help-options.lisp help-run.lisp \
\
init.ros \
init-default.lisp init-env.lisp init-dist.lisp \
\
install.ros \
util-install.lisp util-install-quicklisp.lisp \
install+7zip.lisp install-abcl-bin.lisp install-allegro.lisp \
install-ccl-bin.lisp install-clasp.lisp install-clisp.lisp \
install-cmu-bin.lisp install-ecl.lisp install-quicklisp.lisp \
install-ccl-bin.lisp install-clasp-bin.lisp install-clasp.lisp \
install-clisp.lisp install-clisp-head.lisp \
install-cmu-bin.lisp install-dotcl-bin.lisp install-ecl.lisp \
install-quicklisp.lisp \
install-sbcl-bin.lisp install-sbcl.lisp install-sbcl-source.lisp \
install-sbcl-head.lisp \
install-slime.lisp install-sly.lisp \
install-lispworks.lisp install-mkcl.lisp \
install-npt.lisp \
install+externals-clasp.lisp install+ffcall.lisp \
install+msys2.lisp install+sigsegv.lisp install-asdf.lisp \
\
serve.ros \
serve-default.lisp serve-swank.lisp \
update.ros \
update-git.lisp update-hg.lisp update-quicklisp.lisp update-default.lisp \
\
list.ros \
list-default.lisp \
list-dump.lisp list-git.lisp list-installed.lisp list-versions.lisp \
list-asdf.lisp list-env.lisp \
\
make-depends.ros \
template.ros \
util-template.lisp \
\
use.ros \
util-use.lisp \
use-asdf.lisp use-env.lisp \
\
which.ros
roslisp_DATA = $(LISPS:%=lisp/%)
use-asdf.lisp use-env.lisp
roslisppatch_DATA = patch/sbcl-1.3.11.patch patch/sbcl-posix-tests.patch
dist_roslisp_DATA = $(LISPS:%=lisp/%)
dist_roslisp_SCRIPTS = $(ROSS:%=lisp/%)
dist_roslisppatch_DATA = patch/sbcl-1.3.11.patch patch/sbcl-posix-tests.patch
release-prepare:
ros scripts/release.ros prepare
release-commit:
ros scripts/release.ros release
ros scripts/release.ros release-commit
release-push:
ros scripts/release.ros release-push
release-changelog:
grep not-yet-released ChangeLog 2>&1 > /dev/null || ros scripts/release.ros changelog
winrelease:
release-ci:
ros scripts/release.ros release-ci
winrelease: roswell/Makefile
mkdir -p roswell/lisp
mkdir -p roswell/documents
cp src/ros.exe roswell
cp lisp/*.lisp lisp/*.ros lisp/*.el roswell/lisp
cd documents;MSYSTEM=MINGW64 make roswell.chm
cp documents/roswell.chm roswell/documents
7z a Roswell-`if [ $$MSYSTEM = 'MINGW64' ];then echo x86_64 ;else echo i686; fi`.zip roswell/ros.exe roswell/lisp/*.* roswell/documents/roswell.chm
7z a Roswell-`if [ "$$MSYSTEM" = "MINGW64" ];then echo x86_64 ;elif [ "$$MSYSTEM" = "CLANGARM64" ];then echo aarch64; else echo i686; fi`.zip roswell/ros.exe roswell/lisp/*.* roswell/documents/roswell.chm
debian:
ros debian/debian.ros all
test:
@ -122,5 +132,57 @@ brewpr:
git pull
if [ `uname` = 'Darwin' ];then brew bump-formula-pr -v --url=https://github.com/roswell/roswell/archive/`git describe --abbrev=0 --tags`.tar.gz roswell; fi
PACK = $(PACKAGE)-$(VERSION)-$(shell uname -s | tr '[A-Z]' '[a-z]' | sed -E 's/([^-]*).*/\1/')-$(ARCH)$(SBCL_BIN_VARIANT)
roswell/Makefile:
rm -rf roswell
$(MKDIR_P) roswell
echo "prefix = /usr/local" > $@
echo "mandir = $$""(prefix)/share/man" >> $@
echo "all: ros$(EXEEXT)" >> $@
echo "install:" >> $@
echo " mkdir -p $$""(prefix)/bin" >> $@
echo " mkdir -p $$""(prefix)/etc/roswell/patch" >> $@
echo " mkdir -p $$""(mandir)" >> $@
echo " install -c ros$(EXEEXT) $$""(prefix)/bin" >> $@
echo " install -c -m 644 $(ROSS:%=lisp/%) $(LISPS:%=lisp/%) $$""(prefix)/etc/roswell" >> $@
echo " install -c -m 644 $(dist_roslisppatch_DATA) $$""(prefix)/etc/roswell/patch" >> $@
if [ 'x$(MDS)' != 'x' ]; then \
echo " install -c $(MDS:%.md=man/%.1) $$""(mandir)" >> $@; \
fi
echo "" >> $@
echo "uninstall:" >> $@
echo " rm -rf $$""(prefix)/etc/roswell" >> $@
echo " rm -f $$""(prefix)/bin/ros$(EXEEXT)" >> $@
echo " cd $$""(mandir);rm -f $(MDS:%.md=%.1)" >> $@
$(PACK).tar.bz2: roswell/Makefile
$(MKDIR_P) roswell/patch
cd src;make ros$(EXEEXT)
cp src/ros$(EXEEXT) roswell
$(MKDIR_P) roswell/lisp
cp $(LISPS:%=lisp/%) roswell/lisp
cp $(ROSS:%=lisp/%) roswell/lisp
cp $(dist_roslisppatch_DATA) roswell/patch
if [ 'x$(MDS)' != x ]; then \
$(MKDIR_P) roswell/man; \
cp $(MDS:%.md=documents/man/%.1) roswell/man; \
fi
tar jcvf $(PACK).tar.bz2 roswell
pack: $(PACK).tar.bz2
WINPACK = roswell_$(VERSION)_$(shell if [ "$$MSYSTEM" = "MINGW64" ];then echo amd64 ;elif [ "$$MSYSTEM" = "CLANGARM64" ];then echo aarch64; else echo i686; fi)
pack.zip: $(PACK).tar.bz2
7z a $(WINPACK).zip roswell
make $(WINPACK).zip.hash
$(WINPACK).zip.hash:
echo "md5sum "`md5sum -t $(WINPACK).zip` > $(WINPACK).zip.hash
echo "sha1sum "`sha1sum -t $(WINPACK).zip` >> $(WINPACK).zip.hash
echo "sha256sum "`sha256sum -t $(WINPACK).zip` >> $(WINPACK).zip.hash
echo "sha512sum "`sha512sum -t $(WINPACK).zip` >> $(WINPACK).zip.hash
FORCE:
.PHONY: release-prepare release release-push test winrelease debian FORCE
.PHONY: release-prepare release release-push test winrelease debian pack roswell/Makefile FORCE

View file

@ -10,7 +10,7 @@ Roswell started out as a command-line tool with the aim to make installing and m
Roswell has now evolved into a full-stack environment for Common Lisp development, and has many features that makes it easy to test, share, and distribute your Lisp applications.
With Roswell, we aim to push the Common Lisp community to a whole new level of productivity.
Roswell is still in beta. Despite this, the basic interfaces are stable and not likely to change. Roswell currently works well on Unix-like platforms such as Linux, Mac OS X and FreeBSD.
Roswell is still in beta. Despite this, the basic interfaces are stable and not likely to change. Roswell currently works well on Unix-like platforms such as Linux, macOS and FreeBSD.
Roswell also works on other operating systems, but currently some parts or features might be missing or unstable.
Checkout [issues list](https://github.com/roswell/roswell/issues) if you are interested in what's lacking.
@ -18,10 +18,10 @@ Checkout [issues list](https://github.com/roswell/roswell/issues) if you are int
## Installation, Dependency & Usage
See our [github wiki](https://github.com/roswell/roswell/wiki).
We provide prebuilt binaries for homebrew on OSX, AUR on Arch and **also on Windows**.
* [Linux (arch)](https://github.com/roswell/roswell/wiki/Installation#linux)
We provide prebuilt binaries for homebrew on macOS, various Linux distributions and **also on Windows**.
* [Linux](https://github.com/roswell/roswell/wiki/Installation#linux)
* [FreeBSD](https://github.com/roswell/roswell/wiki/Installation#freebsd)
* [Mac OS X (brew)](https://github.com/roswell/roswell/wiki/Installation#mac-os-x--homebrew)
* [macOS (via Homebrew)](https://github.com/roswell/roswell/wiki/Installation#mac-os-x--homebrew)
* [Windows](https://github.com/roswell/roswell/wiki/Installation#windows)
* [Building from Source](https://github.com/roswell/roswell/wiki/Installation#building-from-source)

View file

@ -2,17 +2,16 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.59])
AC_INIT([roswell],[21.01.14.108],snmsts@gmail.com)
${CFLAGS=""}
${CXXFLAGS=""}
AC_INIT([roswell],[26.02.116],snmsts@gmail.com)
CFLAGS=${CFLAGS=""}
CXXFLAGS=${CXXFLAGS=""}
AM_CONFIG_HEADER(config.h)
AC_CONFIG_HEADERS(config.h)
AC_CONFIG_FILES([Makefile src/Makefile])
AC_CONFIG_SRCDIR([Makefile.am])
AM_INIT_AUTOMAKE([foreign])
AM_MAINTAINER_MODE([enable])
# Checks for programs.
AC_PROG_CC
AM_PROG_CC_C_O
@ -44,9 +43,6 @@ if test "x$enable_debug" = xyes; then
CXXFLAGS="$CXXFLAGS -g -O0"
fi
AC_CHECK_LIB([wininet], [main],[LIBS="-lwininet $LIBS";wwwlib=yes],[])
if test "x$wwwlib" = xno; then
AC_CHECK_LIB([curl], [curl_global_init],[LIBS="-lcurl $LIBS";wwwlib=yes],[])
@ -62,7 +58,7 @@ AC_CHECK_HEADERS(gnu/libc-version.h)
AC_CHECK_HEADERS(windows.h,[with_windows=true])
AM_CONDITIONAL([WITH_WINDOWS], [test "$with_windows" != ""])
AC_CHECK_TOOL([WINDRES], [windres], [])
AM_CONDITIONAL([WITH_WIN_ICON], [test "$WINDRES" != ""])
AM_CONDITIONAL([WITH_WIN_ICON], [test "$WINDRES" != "" -a "$with_windows" != ""])
AC_CHECK_MEMBERS([struct dirent.d_type],,,[#include <dirent.h>])
@ -97,18 +93,30 @@ AC_SUBST(roslisppatchdir)
# Change master uri for sbcl-bin
AC_ARG_WITH([sbcl_bin_base],
[AC_HELP_STRING([--with-sbcl-bin-base=URI],[set URI for sbcl-bin [default=https://github.com/roswell/sbcl_bin/releases/download/]])],
[AS_HELP_STRING([--with-sbcl-bin-base=URI],[set URI for sbcl-bin [default=https://github.com/roswell/sbcl_bin/releases/download/]])],
[SBCL_BIN_URI=$withval],[SBCL_BIN_URI="https://github.com/roswell/sbcl_bin/releases/download/"])
AC_DEFINE_UNQUOTED([SBCL_BIN_URI],["${SBCL_BIN_URI}"],[uri for sbcl master])
AC_ARG_WITH([platformtsvl_base],
[AC_HELP_STRING([--with-platformtsv-base=URI],[set URI for sbcl-bin_uri.tsv [default=https://github.com/roswell/sbcl_bin/releases/download/files/sbcl-bin_uri.tsv]])],
[AS_HELP_STRING([--with-platformtsv-base=URI],[set URI for sbcl-bin_uri.tsv [default=https://github.com/roswell/sbcl_bin/releases/download/files/sbcl-bin_uri.tsv]])],
[PLATFORM_TSV_URI=$withval],[PLATFORM_TSV_URI=https://github.com/roswell/sbcl_bin/releases/download/files/sbcl-bin_uri.tsv])
AC_DEFINE_UNQUOTED([PLATFORM_TSV_URI],["${PLATFORM_TSV_URI}"],[uri for sbcl-bin_uri.tsv])
AC_ARG_WITH([sbcl_bin_variant],
[AS_HELP_STRING([--with-sbcl-bin-variant=string],[set which variant for sbcl-bin [default=''] possible choices are '-glibc2.10', '-musl'.])],
[SBCL_BIN_VARIANT=$withval],[SBCL_BIN_VARIANT=""])
AC_SUBST([SBCL_BIN_VARIANT], ["${SBCL_BIN_VARIANT}"])
AC_DEFINE_UNQUOTED([SBCL_BIN_VARIANT],["${SBCL_BIN_VARIANT}"],[variant for sbcl-bin])
AC_ARG_WITH([fixed_arch],
[AS_HELP_STRING([--with-fixed-arch=string],[set arch instead of on the fly detecting [default=''] possible choices are 'armhf', 'arm64'.])],
[FIXED_ARCH=$withval],[FIXED_ARCH=""])
AC_SUBST([FIXED_ARCH], ["${FIXED_ARCH}"])
AC_DEFINE_UNQUOTED([FIXED_ARCH],["${FIXED_ARCH}"],[arch to decide binary])
# man file (ros.1) generation switch
AC_ARG_ENABLE([manual_generation],
[AC_HELP_STRING([--enable-manual-generation],[generate manual if enabled])],
[AS_HELP_STRING([--enable-manual-generation],[generate manual if enabled])],
[case "${enableval}" in
yes) manual_generate=true ;;
no) manual_generate=false ;;
@ -117,7 +125,7 @@ AC_ARG_ENABLE([manual_generation],
AM_CONDITIONAL(MANUAL_GENERATE,[test x$manual_generate = x"true"])
AC_ARG_ENABLE([manual_install],
[AC_HELP_STRING([--disable-manual-install],[install manual if enabled])],
[AS_HELP_STRING([--disable-manual-install],[install manual if enabled])],
[case "${enableval}" in
yes) manual_install=true ;;
no) manual_install=false ;;
@ -126,7 +134,7 @@ AC_ARG_ENABLE([manual_install],
AM_CONDITIONAL(MANUAL_INSTALL,[test x$manual_install != x"false"])
AC_ARG_ENABLE([html_generation],
[AC_HELP_STRING([--enable-html-generation],[generate html if enabled])],
[AS_HELP_STRING([--enable-html-generation],[generate html if enabled])],
[case "${enableval}" in
yes) html_generate=true ;;
no) html_generate=false ;;
@ -137,6 +145,4 @@ AM_CONDITIONAL(HTML_GENERATE,[test x$html_generate = x"true"])
AM_COND_IF([MANUAL_INSTALL],
[AC_CONFIG_FILES([documents/Makefile])])
AC_OUTPUT

2
debian/copyright vendored
View file

@ -3,7 +3,7 @@ Upstream-Name: roswell
Source: https://github.com/roswell/roswell
Files: *
Copyright: 2014-2021 SANO Masatoshi
Copyright: 2014-2022 SANO Masatoshi
License: MIT

22
debian/debian.ros vendored
View file

@ -5,7 +5,7 @@ exec ros -Q -L sbcl-bin -- $0 "$@"
|#
(progn ;;init forms
(ros:ensure-asdf)
#+quicklisp (ql:quickload '(:cl-html-parse :uiop :dexador) :silent t))
#+quicklisp (ql:quickload '(:jonathan :uiop :dexador) :silent t))
(defpackage :ros.script.debian.3703769507
(:use :cl))
@ -20,24 +20,16 @@ exec ros -Q -L sbcl-bin -- $0 "$@"
(if branch
(format nil "https://github.com/~A/archive/~A.tar.gz" base branch)
(multiple-value-bind (body res)
(dex:get (format nil "https://github.com/~A/releases/" base))
(dex:get (format nil "https://api.github.com/repos/~A/releases" base)
:headers '(("X-GitHub-Api-Version" . "2022-11-28")))
(when (= res 200)
(net.html.parser:parse-html
body
:callbacks
(list (cons :a (lambda (arg)
(let ((href (getf (cdr (car arg)) :href)))
(when (and (> (length href) 6)
(equal (subseq href (-(length href) 6))
"tar.gz")
;; href which include "archive" not "release"
(eql (aref href (1+ (position #\a href))) #\r))
(return-from get-newest-url (format nil "https://github.com~A" href)))))))
:callback-only t))))))
(getf (first (jojo:parse body)) :|tarball_url|))))))
(defun fetch-upstream (&optional (output *pwd*))
(let* ((url (get-newest-url "roswell/roswell"))
(path (merge-pathnames (subseq url (1+ (position #\/ url :from-end t))) output)))
(path (make-pathname :name (format nil "roswell_~A.tar" (subseq url (1+ (position #\/ url :from-end t))))
:defaults output
:type "gz")))
(roswell.util:download url path)
path))

166
debian/init.d.ex vendored
View file

@ -1,166 +0,0 @@
#!/bin/sh
### BEGIN INIT INFO
# Provides: roswell
# Required-Start: $local_fs $network $remote_fs $syslog
# Required-Stop: $local_fs $network $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: <Enter a short description of the software>
# Description: <Enter a long description of the software>
# <...>
# <...>
### END INIT INFO
# Author: Masatoshi SANO <snmsts@gmail.com>
# Do NOT "set -e"
# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="roswell"
NAME=roswell
DAEMON=/usr/sbin/roswell
DAEMON_ARGS=""
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0
# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh
# Define LSB log_* functions.
# Depend on lsb-base (>= 3.2-14) to ensure that this file is present
# and status_of_proc is working.
. /lib/lsb/init-functions
#
# Function that starts the daemon/service
#
do_start()
{
# Return
# 0 if daemon has been started
# 1 if daemon was already running
# 2 if daemon could not be started
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
|| return 1
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
$DAEMON_ARGS \
|| return 2
# The above code will not work for interpreted scripts, use the next
# six lines below instead (Ref: #643337, start-stop-daemon(8) )
#start-stop-daemon --start --quiet --pidfile $PIDFILE --startas $DAEMON \
# --name $NAME --test > /dev/null \
# || return 1
#start-stop-daemon --start --quiet --pidfile $PIDFILE --startas $DAEMON \
# --name $NAME -- $DAEMON_ARGS \
# || return 2
# Add code here, if necessary, that waits for the process to be ready
# to handle requests from services started subsequently which depend
# on this one. As a last resort, sleep for some time.
}
#
# Function that stops the daemon/service
#
do_stop()
{
# Return
# 0 if daemon has been stopped
# 1 if daemon was already stopped
# 2 if daemon could not be stopped
# other if a failure occurred
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
RETVAL="$?"
[ "$RETVAL" = 2 ] && return 2
# Wait for children to finish too if this is a daemon that forks
# and if the daemon is only ever run from this initscript.
# If the above conditions are not satisfied then add some other code
# that waits for the process to drop all resources that could be
# needed by services started subsequently. A last resort is to
# sleep for some time.
start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
[ "$?" = 2 ] && return 2
# Many daemons don't delete their pidfiles when they exit.
rm -f $PIDFILE
return "$RETVAL"
}
#
# Function that sends a SIGHUP to the daemon/service
#
do_reload() {
#
# If the daemon can reload its configuration without
# restarting (for example, when it is sent a SIGHUP),
# then implement that here.
#
start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
return 0
}
case "$1" in
start)
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
do_start
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
stop)
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
do_stop
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
status)
status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
;;
#reload|force-reload)
#
# If do_reload() is not implemented then leave this commented out
# and leave 'force-reload' as an alias for 'restart'.
#
#log_daemon_msg "Reloading $DESC" "$NAME"
#do_reload
#log_end_msg $?
#;;
restart|force-reload)
#
# If the "reload" option is implemented then remove the
# 'force-reload' alias
#
log_daemon_msg "Restarting $DESC" "$NAME"
do_stop
case "$?" in
0|1)
do_start
case "$?" in
0) log_end_msg 0 ;;
1) log_end_msg 1 ;; # Old process is still running
*) log_end_msg 1 ;; # Failed to start
esac
;;
*)
# Failed to stop
log_end_msg 1
;;
esac
;;
*)
#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
exit 3
;;
esac
:

2
debian/menu.ex vendored
View file

@ -1,2 +0,0 @@
?package(roswell):needs="X11|text|vc|wm" section="Applications/see-menu-manual"\
title="roswell" command="/usr/bin/roswell"

39
debian/postinst.ex vendored
View file

@ -1,39 +0,0 @@
#!/bin/sh
# postinst script for roswell
#
# see: dh_installdeb(1)
set -e
# summary of how this script can be called:
# * <postinst> `configure' <most-recently-configured-version>
# * <old-postinst> `abort-upgrade' <new version>
# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
# <new-version>
# * <postinst> `abort-remove'
# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
# <failed-install-package> <version> `removing'
# <conflicting-package> <version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package
case "$1" in
configure)
;;
abort-upgrade|abort-remove|abort-deconfigure)
;;
*)
echo "postinst called with unknown argument \`$1'" >&2
exit 1
;;
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
exit 0

37
debian/postrm.ex vendored
View file

@ -1,37 +0,0 @@
#!/bin/sh
# postrm script for roswell
#
# see: dh_installdeb(1)
set -e
# summary of how this script can be called:
# * <postrm> `remove'
# * <postrm> `purge'
# * <old-postrm> `upgrade' <new-version>
# * <new-postrm> `failed-upgrade' <old-version>
# * <new-postrm> `abort-install'
# * <new-postrm> `abort-install' <old-version>
# * <new-postrm> `abort-upgrade' <old-version>
# * <disappearer's-postrm> `disappear' <overwriter>
# <overwriter-version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package
case "$1" in
purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
;;
*)
echo "postrm called with unknown argument \`$1'" >&2
exit 1
;;
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
exit 0

35
debian/preinst.ex vendored
View file

@ -1,35 +0,0 @@
#!/bin/sh
# preinst script for roswell
#
# see: dh_installdeb(1)
set -e
# summary of how this script can be called:
# * <new-preinst> `install'
# * <new-preinst> `install' <old-version>
# * <new-preinst> `upgrade' <old-version>
# * <old-preinst> `abort-upgrade' <new-version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package
case "$1" in
install|upgrade)
;;
abort-upgrade)
;;
*)
echo "preinst called with unknown argument \`$1'" >&2
exit 1
;;
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
exit 0

38
debian/prerm.ex vendored
View file

@ -1,38 +0,0 @@
#!/bin/sh
# prerm script for roswell
#
# see: dh_installdeb(1)
set -e
# summary of how this script can be called:
# * <prerm> `remove'
# * <old-prerm> `upgrade' <new-version>
# * <new-prerm> `failed-upgrade' <old-version>
# * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
# * <deconfigured's-prerm> `deconfigure' `in-favour'
# <package-being-installed> <version> `removing'
# <conflicting-package> <version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package
case "$1" in
remove|upgrade|deconfigure)
;;
failed-upgrade)
;;
*)
echo "prerm called with unknown argument \`$1'" >&2
exit 1
;;
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
exit 0

View file

@ -1,10 +0,0 @@
# Defaults for roswell initscript
# sourced by /etc/init.d/roswell
# installed at /etc/default/roswell by the maintainer scripts
#
# This is a POSIX shell fragment
#
# Additional options that are passed to the Daemon.
DAEMON_OPTS=""

View file

@ -1,20 +0,0 @@
Document: roswell
Title: Debian roswell Manual
Author: <insert document author here>
Abstract: This manual describes what roswell is
and how it can be used to
manage online manuals on Debian systems.
Section: unknown
Format: debiandoc-sgml
Files: /usr/share/doc/roswell/roswell.sgml.gz
Format: postscript
Files: /usr/share/doc/roswell/roswell.ps.gz
Format: text
Files: /usr/share/doc/roswell/roswell.text.gz
Format: HTML
Index: /usr/share/doc/roswell/html/index.html
Files: /usr/share/doc/roswell/html/*.html

23
debian/watch.ex vendored
View file

@ -1,23 +0,0 @@
# Example watch control file for uscan
# Rename this file to "watch" and then you can run the "uscan" command
# to check for upstream updates and more.
# See uscan(1) for format
# Compulsory line, this is a version 3 file
version=3
# Uncomment to examine a Webpage
# <Webpage URL> <string match>
#http://www.example.com/downloads.php roswell-(.*)\.tar\.gz
# Uncomment to examine a Webserver directory
#http://www.example.com/pub/roswell-(.*)\.tar\.gz
# Uncommment to examine a FTP server
#ftp://ftp.example.com/pub/roswell-(.*)\.tar\.gz debian uupdate
# Uncomment to find new files on sourceforge, for devscripts >= 2.9
# http://sf.net/roswell/roswell-(.*)\.tar\.gz
# Uncomment to find new files on GooglePages
# http://example.googlepages.com/foo.html roswell-(.*)\.tar\.gz

View file

@ -4,6 +4,7 @@
<meta charset="utf-8">
<meta name="generator" content="pandoc">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<meta name="author" content="Roswell Project Team">
<title>ros-asdf(1)</title>
<style type="text/css">code{white-space: pre;}</style>
<link rel="stylesheet" href="../ros.css">
@ -17,14 +18,17 @@
<ul>
<li class="author">Roswell Project Team</li>
</ul>
<h3 class="date">January 2022</h3>
</header>
<p>ros-asdf - # synopsis</p>
<h1 id="name">NAME</h1>
<p>ros-asdf -</p>
<h1 id="synopsis">SYNOPSIS</h1>
<p><strong>ros [options] asdf [subcommand]</strong></p>
<!-- # subcommands -->
<!-- somecommand -->
<!-- : description. end with a period. -->
<h1 id="description">description</h1>
<p><strong>ros asdf</strong> install and manage ASDF(https://common-lisp.net/project/asdf/)</p>
<h1 id="description">DESCRIPTION</h1>
<p><strong>ros asdf</strong> install and manage ASDF(https://common-lisp.net/project/asdf/).</p>
<!-- # options -->
<!-- -->
<!-- # Environmental Variables -->

View file

@ -18,7 +18,7 @@
<li class="author">Roswell Project Team</li>
</ul>
</header>
<p>ros-build - Shortcut to &quot;ros dump executable&quot; # synopsis</p>
<p>ros-build - Shortcut to “ros dump executable” # synopsis</p>
<p><strong>ros [options] build</strong> <file></p>
<p>Equivalent to calling <code>ros dump executable &lt;file&gt;</code>.</p>
<!-- # subcommands -->

View file

@ -19,7 +19,7 @@
</ul>
</header>
<p>ros-checkout - # synopsis</p>
<p><strong>ros [options] checkout</strong> args...</p>
<p><strong>ros [options] checkout</strong> args</p>
<!-- # subcommands -->
<!-- somecommand -->
<!-- : description. end with a period. -->

View file

@ -0,0 +1,47 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="generator" content="pandoc">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title>ros-client(1)</title>
<style type="text/css">code{white-space: pre;}</style>
<link rel="stylesheet" href="../ros.css">
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
</head>
<body>
<header>
<h1 class="title">ros-client(1)</h1>
<ul>
<li class="author">Roswell Project Team</li>
</ul>
</header>
<p>ros-client - one-shot connect to remote repl.</p>
<h1 id="synopsis">synopsis</h1>
<p><strong>ros client</strong> protocol [options for the protocol …] …</p>
<!-- # subcommands -->
<!-- somecommand -->
<!-- : description. end with a period. -->
<h1 id="description">description</h1>
<p><code>ros-client</code> send message to lisp server and wait for message sent back.</p>
<h1 id="swank-protocol-options">swank protocol options</h1>
<dl>
<dt><code>--port port</code></dt>
<dd><p>set server <code>port</code> to connect. default port 4005.</p>
</dd>
<dt><code>--interface interface</code></dt>
<dd><p>interface for connect. default is <code>localhost</code>.</p>
</dd>
<dt>-e FORM eval FORM</dt>
<dd><p>Evaluate FORM while building</p>
</dd>
</dl>
<!-- # options -->
<!-- -->
<!-- # Environmental Variables -->
<h1 id="see-also">SEE ALSO</h1>
<p><em><a href="ros.html">ros</a></em>(1) <em><a href="ros-serve.html">ros-serve</a></em>(1) _</p>
</body>
</html>

View file

@ -19,9 +19,9 @@
</ul>
</header>
<p>ros-config - get and set options # Synopsis</p>
<p><strong>ros [options] config</strong> [SUBCOMMAND ARGS...]</p>
<p><strong>ros [options] config</strong> [SUBCOMMAND ARGS]</p>
<h1 id="description">Description</h1>
<p>Without any arguments, it shows all variables and it's value.</p>
<p>Without any arguments, it shows all variables and its value.</p>
<dl>
<dt>show TARGET</dt>
<dd><p>show TARGET.</p>

View file

@ -19,14 +19,14 @@
</ul>
</header>
<p>ros-delete - # synopsis</p>
<p><strong>ros delete</strong> ARGS...</p>
<p><strong>ros delete</strong> ARGS</p>
<p>Slightly complex arguments.</p>
<h2 id="ros-delete-dump-images...">ros delete dump IMAGES...</h2>
<h2 id="ros-delete-dump-images">ros delete dump IMAGES</h2>
<p>Whem ARGS starts with <code>dump</code>, it considers the remaining args as the names for the dumped images. It then deletes the image with the given name, if it exists.</p>
<p>The deletion happens only to the images compatible with the current lisp implementation/version. For example, when ccl-bin/1.10 and sbcl-bin/1.3.1 both have images named X, and if the current lisp in use is sbcl-bin/1.3.1, then <code>ros delete dump X</code> removes sbcl-bin/1.3.1/X only.</p>
<h2 id="ros-delete-impls...">ros delete IMPLS...</h2>
<h2 id="ros-delete-impls">ros delete IMPLS…</h2>
<p>When the first argument is not <code>dump</code>, then the arguments are treated as a list of installed implementations.</p>
<p>If a name of some implementation is given without version specifiers, e.g. sbcl-bin, then it removes all instances (versions) of sbcl-bin.</p>
<p>If a name of some implementation is given without version specifiers, e.g. sbcl-bin, then it removes all instances (versions) of sbcl-bin.</p>
<p>If a version is specified, then it removes only the specified instance.</p>
<!-- somecommand -->
<!-- : description. end with a period. -->

View file

@ -19,7 +19,7 @@
</ul>
</header>
<p>ros-dist - # synopsis</p>
<p><strong>ros [options] dist</strong> args...</p>
<p><strong>ros [options] dist</strong> args</p>
<!-- # subcommands -->
<!-- somecommand -->
<!-- : description. end with a period. -->

View file

@ -20,11 +20,11 @@
</header>
<p>ros-dump - make a dumped image of a roswell script</p>
<h1 id="synopsis">Synopsis</h1>
<p><strong>ros [OPTIONS1...] dump [OPTIONS2...] MODE</strong> args...</p>
<p><strong>ros [OPTIONS1…] dump [OPTIONS2…] MODE</strong> args…</p>
<p><code>OPTIONS1</code> specify the standard roswell options such as <code>-L</code> or <code>-m LISP</code>. <code>OPTIONS2</code> specify the image reduction options we describe later. <code>MODE</code> is either <code>output</code> or <code>executable</code>.</p>
<h1 id="description">Description</h1>
<p><code>ros-dump</code> creates a dumped lisp image of the state after processing all options <code>OPTIONS1</code>.</p>
<p>It has two modes <code>output</code> and <code>executable</code>. In both modes, the global environment (e.g. global binding to special variables such as <code>*package*</code>) of the state just after the restart is the environment which was effective when the script was dumped.</p>
<p>It has two modes <code>output</code> and <code>executable</code>. In both modes, the global environment (e.g. global binding to special variables such as <code>*package*</code>) of the state just after the restart is the environment which was effective when the script was dumped.</p>
<!-- Fixme: what kind of? this is unnecessarily retracting the users from using this feature -->
<!-- There might be a limitation regarding this feature depending on the lisp -->
<!-- implementation used by roswell at the time of building. -->
@ -52,37 +52,37 @@
<p>Care should be taken to ensure the resulting program works as expected, as some of these operation may destroy the common assumptions of the conforming programs. For example, package-related reduction options may inhibit the runtime calls to <code>READ</code> after the restart.</p>
<p>Reduction options are processed in the left-to-right manner.</p>
<dl>
<dt>--disable-compression, --enable-compression, -c</dt>
<dt>disable-compression, enable-compression, -c</dt>
<dd><p>These options disable/enable/enable the core compression feature in SBCL. Thus this option is meaningful only on SBCL. Compression is enabled by default.</p>
</dd>
<dt>--remove-docstrings</dt>
<dt>remove-docstrings</dt>
<dd><p>This option removes all docstrings from all symbols in the entire lisp image.</p>
</dd>
<dt>--delete-package PKG</dt>
<dd><p>This option can be specified multiple times. It uninterns the symbols in PACKAGE, calls <code>makeunbound</code> and <code>fmakeunbound</code> on each symbol and deletes the package. Package names are automatically string-upcase'd.</p>
<dt>delete-package PKG</dt>
<dd><p>This option can be specified multiple times. It uninterns the symbols in PACKAGE, calls <code>makeunbound</code> and <code>fmakeunbound</code> on each symbol and deletes the package. Package names are automatically string-upcased.</p>
</dd>
<dt>--delete-all-packages</dt>
<dd><p>This option applies --delete-package PKG on all packages, except some blacklisted packages (keyword, roswell, ROS.SCRIPT.DUMP, and the package of the main function symbol).</p>
<dt>delete-all-packages</dt>
<dd><p>This option applies delete-package PKG on all packages, except some blacklisted packages (keyword, roswell, ROS.SCRIPT.DUMP, and the package of the main function symbol).</p>
</dd>
<dt>--delete-packages-except PACKAGE</dt>
<dd><p>This option can be specified multiple times. It is identical to --delete-all-packages except that it adds PACKAGE to the blacklist. Package names are automatically string-upcase'd.</p>
<dt>delete-packages-except PACKAGE</dt>
<dd><p>This option can be specified multiple times. It is identical to delete-all-packages except that it adds PACKAGE to the blacklist. Package names are automatically string-upcased.</p>
</dd>
<dt>--destroy-packages-sbcl</dt>
<dd><p>This is an sbcl-specific option which is even more aggressive than the above methods (&gt;10MB reduction). It destroys the package system by modifying the internal tables for packages, cleaning up the caches for package-use-list etc. The blacklist is shared among --delete-all-packages and --destroy-packages-sbcl. However, this method does not call fmakunbound/makunbound, so combining the two methods can result in a more aggressive image size reduction. Due to the nature of this option, it is desirable to specify it as the last method (i.e. rightmost).</p>
<dt>destroy-packages-sbcl</dt>
<dd><p>This is an sbcl-specific option which is even more aggressive than the above methods (&gt;10MB reduction). It destroys the package system by modifying the internal tables for packages, cleaning up the caches for package-use-list etc. The blacklist is shared among delete-all-packages and destroy-packages-sbcl. However, this method does not call fmakunbound/makunbound, so combining the two methods can result in a more aggressive image size reduction. Due to the nature of this option, it is desirable to specify it as the last method (i.e. rightmost).</p>
</dd>
<dt>--purify, --no-purify</dt>
<dt>purify, no-purify</dt>
<dd><p>This is common to CCL, SBCL, CMUCL. Moves all objects to the static space where GC does not scan, for the later performance of GC. Purification is enabled by default.</p>
</dd>
<dt>--impurify, --no-impurify</dt>
<dd><p>This is an CCL-specific option (enabled by default). It moves all objects to the dynamic space before saving the image. This allows the static-space objects to be GC'ed. When purification is enabled, it impurifies all objects before running the purifying GC.</p>
<dt>impurify, no-impurify</dt>
<dd><p>This is an CCL-specific option (enabled by default). It moves all objects to the dynamic space before saving the image. This allows the static-space objects to be GCed. When purification is enabled, it impurifies all objects before running the purifying GC.</p>
</dd>
<dt>--delete-debug-info</dt>
<dt>delete-debug-info</dt>
<dd><p>This removes the debug infomation of functions (used to show the stack frame etc), as well as the source locations and the deprecation information of various symbols. SBCL only. This option has a large effect (+10MB reduction).</p>
</dd>
<dt>--delete-macro-definitions, --delete-compiler-macro-definitions</dt>
<dt>delete-macro-definitions, delete-compiler-macro-definitions</dt>
<dd><p>This removes all definitions of macros and compiler-macros, assuming that no runtime compilation/interpretation of code will be performed. This option should be portable across implementations. It has ~2MB reduction on SBCL.</p>
</dd>
<dt>--delete-compiler-information-sbcl</dt>
<dt>delete-compiler-information-sbcl</dt>
<dd><p>This is an SBCL-specific option which is more aggressive than the above methods (~4MB reduction). In addition to the macro and the compiler-macro definitions, it destroys the internal compiler systems of SBCL by also removing the inlining information, IR1 transformer and IR2 (VOP).</p>
</dd>
</dl>

View file

@ -19,7 +19,7 @@
</ul>
</header>
<p>ros-emacs - launch Emacs with Slime # Synopsis</p>
<p><strong>ros emacs</strong> [ARGS...]</p>
<p><strong>ros emacs</strong> [ARGS]</p>
<!-- # subcommands -->
<!-- somecommand -->
<!-- : description. end with a period. -->

View file

@ -20,14 +20,14 @@
</header>
<p>ros-init - Create a roswell script (optionally based on a template)</p>
<h1 id="synopsis">Synopsis</h1>
<p><strong>ros init [TEMPLATE] NAME [ARGS...]]</strong></p>
<p><strong>ros init [TEMPLATE] NAME [ARGS]]</strong></p>
<dl>
<dt>TEMPLATE</dt>
<dd><p>Specifies the name of a template, defaulted to <em>default</em> template. However, if <em>TEMPLATE</em> is not specified and <em>FILENAME</em> matches one of the templates being stored, then it automatically uses the template. To suppress this behavior, you should explicitly specify <em>TEMPLATE</em> as <em>default</em>.</p>
<p>Thus you are warned when you use this command from a shell script. In order to achieve a consistent and desired behavior, it is adviced that they should always explicitly specify the template name.</p>
</dd>
<dt>NAME</dt>
<dd><p>Specify the output filename, or &quot;-&quot; to indicate <em>stdout</em>. When <em>TEMPLATE</em> is <em>default</em>, it automatically appends a file type &quot;.ros&quot;.</p>
<dd><p>Specify the output filename, or “-” to indicate <em>stdout</em>. When <em>TEMPLATE</em> is <em>default</em>, it automatically appends a file type “.ros”.</p>
</dd>
</dl>
<!-- # subcommands -->

View file

@ -21,8 +21,8 @@
<p>ros-install - Install lisp implementations or quicklisp system</p>
<h1 id="synopsis">Synopsis</h1>
<ul>
<li><strong>ros install</strong> system [system ...]</li>
<li><strong>ros install</strong> impl[/version] [param ...]</li>
<li><strong>ros install</strong> system [system ]</li>
<li><strong>ros install</strong> impl[/version] [param ]</li>
</ul>
<h1 id="description">Description</h1>
<dl>
@ -52,7 +52,7 @@ ccl-bin
sbcl-bin</code></pre>
<p>The name can be optionally followed by a slash <code>/</code> and a version of the implementation.</p>
<pre><code>$ ros install sbcl/1.2.14</code></pre>
<p>There might be some <em>hidden</em> implementation that are not listed here --- they are in the alpha quality, but try the one you like or watch the website (https://github.com/roswell/roswell).</p>
<p>There might be some <em>hidden</em> implementation that are not listed here they are in the alpha quality, but try the one you like or watch the website (https://github.com/roswell/roswell).</p>
<pre><code>$ ros install ccl
$ ros install abcl
$ ...</code></pre>

View file

@ -27,7 +27,7 @@
<h1 id="description">Description</h1>
<p><strong>ros list</strong> shows the list of the materials installed by roswell.</p>
<dl>
<dt>installed [ [ IMPL | IMPL/VERSION ]...]</dt>
<dt>installed [ [ IMPL | IMPL/VERSION ]]</dt>
<dd><p>List the implementations that have been already installed. Optionally providing IMPL shows the installed versions of the implementation.</p>
</dd>
<dt>dump [IMPL]</dt>

View file

@ -0,0 +1,44 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="generator" content="pandoc">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title>ros-serve(1)</title>
<style type="text/css">code{white-space: pre;}</style>
<link rel="stylesheet" href="../ros.css">
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
</head>
<body>
<header>
<h1 class="title">ros-serve(1)</h1>
<ul>
<li class="author">Roswell Project Team</li>
</ul>
</header>
<p>ros-serve - start lisp server</p>
<h1 id="synopsis">Synopsis</h1>
<p><strong>ros [options for roswell … ] serve</strong> protocol [options for the protocol …] …</p>
<!-- # subcommands -->
<!-- somecommand -->
<!-- : description. end with a period. -->
<h1 id="description">description</h1>
<p><code>ros-serve</code> start lisp and wait for clients to connect to the lisp.</p>
<h1 id="swank-protocol-options">swank protocol options</h1>
<dl>
<dt><code>--port port</code></dt>
<dd><p>Listen port would be <code>port</code> instead of the default port 4005.</p>
</dd>
<dt><code>--interface interface</code></dt>
<dd><p>limit interface for listen. default is <code>localhost</code> so there would be no limitation.</p>
</dd>
</dl>
<!-- # options -->
<!-- -->
<!-- # Environmental Variables -->
<h1 id="see-also">SEE ALSO</h1>
<p><em><a href="ros.html">ros</a></em>(1) <em><a href="ros-client.html">ros-client</a></em>(1) _</p>
</body>
</html>

View file

@ -21,7 +21,7 @@
<p>ros-template - Edit template for ros-init</p>
<h1 id="synopsis">synopsis</h1>
<ul>
<li><strong>ros template</strong> command args...</li>
<li><strong>ros template</strong> command args</li>
</ul>
<h1 id="subcommands">Subcommands</h1>
<dl>
@ -37,22 +37,25 @@
<dt>checkout [template-name]</dt>
<dd><p>When invoked without template-name,this command shows candidates for current templates to operate.If with template-name, this command choose the name as current template.</p>
</dd>
<dt>add [template-name] [files ...]</dt>
<dt>add [template-name] [files ]</dt>
<dd><p>Add files to current template.First parameter could taken as a template-name when current template are <em>default</em>.</p>
</dd>
<dt>cat [template-name] [files ...]</dt>
<dt>cat [template-name] [files ]</dt>
<dd><p>Show contents in the current template.</p>
</dd>
<dt>edit [template-name] [files ...]</dt>
<dt>edit [template-name] [files ]</dt>
<dd><p>Edit content of files in template using <code>/usr/bin/editor</code>.</p>
</dd>
<dt>rm [template-name] [files ...]</dt>
<dt>path [template-name] [files …]</dt>
<dd><p>Show native path of files in template.</p>
</dd>
<dt>rm [template-name] [files …]</dt>
<dd><p>Remove file form current template.</p>
</dd>
<dt>type [template-name] [type] [files ...]</dt>
<dt>type [template-name] [type] [files ]</dt>
<dd><p>Change file type. current choice for <em>type</em>s are <em>djula</em> or <em>copy</em> {{name}} {{author}} {{email}} {{universal_time}} are available variable in the template file. Withoug files, change default type.</p>
</dd>
<dt>chmod [template-name] [mode] [files ...]</dt>
<dt>chmod [template-name] [mode] [files ]</dt>
<dd><p>Change file mode bits to generate. specify mode in octal format.</p>
</dd>
<dt>rewrite [template-name] file rewrite-rule</dt>

View file

@ -21,8 +21,8 @@
<p>ros-update - Update system installed from vcs</p>
<h1 id="synopsis">Synopsis</h1>
<ul>
<li><strong>ros update</strong> system [system ...]</li>
<li><strong>ros update</strong> method [params ...]</li>
<li><strong>ros update</strong> system [system ]</li>
<li><strong>ros update</strong> method [params ]</li>
</ul>
<h1 id="description">Description</h1>
<dl>

View file

@ -21,10 +21,10 @@
<p>ros-use - sets the default implementation used by roswell # synopsis</p>
<p><strong>ros [options] use</strong> impl[/version]</p>
<p>impl : The name of an implementation which is already installed. New implementations can be downloaded by <em><a href="ros-install.html">ros-install</a></em>(1). The list of installed implementations is available in <em><a href="ros-list.html">ros-list</a></em>(1).</p>
<p>version: : The version specifier. The string representation of the version (e.g. <major>.<minor>) depends on each implementation and roswell generally follows the representation used by the implementation. In addition, <em>a special version name &quot;system&quot;</em> tells roswell to use the implementation that is installed in your system, which should be in PATH.</p>
<p>version: : The version specifier. The string representation of the version (e.g. <major>.<minor>) depends on each implementation and roswell generally follows the representation used by the implementation. In addition, <em>a special version name “system”</em> tells roswell to use the implementation that is installed in your system, which should be in PATH.</p>
<h1 id="example">example</h1>
<p>ros use sbcl : use the latest SBCL among several versions of SBCLs installed by <em><a href="ros-install.html">ros-install</a></em>. This is compiled from the source, which may take some time to install but allows SLIME to jump to the implementation source code.</p>
<p>ros use sbcl-bin : use the latest stable SBCL binary downloaded from vendor's website. Roswell uses this by default. <code>sbcl-bin</code> tends to be an older version compared to <code>sbcl</code>, but surely newer than your <em>apt-get</em> installed counterpart!</p>
<p>ros use sbcl-bin : use the latest stable SBCL binary downloaded from vendors website. Roswell uses this by default. <code>sbcl-bin</code> tends to be an older version compared to <code>sbcl</code>, but surely newer than your <em>apt-get</em> installed counterpart!</p>
<p>ros use sbcl/1.3.1 : use the compiled SBCL 1.3.1.</p>
<p>ros use sbcl-bin/1.3.1 : use the prebuilt SBCL 1.3.1.</p>
<p>ros use sbcl/system : use the SBCL available in the PATH.</p>

View file

@ -33,7 +33,7 @@
<p>In an order of utility/frequency.</p>
<dl>
<dt>install</dt>
<dd><p>Install a given implementation (e.g. sbcl, ccl) or a system (e.g. alexandria) for roswell environment. See <em><a href="ros-install.html">ros-install</a></em>(1).</p>
<dd><p>Install a given implementation (e.g. sbcl, ccl) or a system (e.g. alexandria) for roswell environment. See <em><a href="ros-install.html">ros-install</a></em>(1).</p>
</dd>
<dt>init [name[.ros]]</dt>
<dd><p>Create a new ros script. <code>.ros</code> is optional, and is added automaticaly. See <em><a href="ros-init.html">ros-init</a></em>.</p>
@ -78,79 +78,79 @@
<h1 id="options">Options</h1>
<p>Options are processed in left-to-right order.</p>
<dl>
<dt>-w CODE --wrap CODE</dt>
<dd><p>Run the script with a shell wrapper CODE, e.g. rlwrap</p>
<dt>-w CODE wrap CODE</dt>
<dd><p>Run the script with a shell wrapper CODE, e.g. rlwrap</p>
</dd>
<dt>-m IMAGE --image IMAGE</dt>
<dt>-m IMAGE image IMAGE</dt>
<dd><p>Continue from Lisp image IMAGE</p>
</dd>
<dt>-L NAME --lisp NAME</dt>
<dd><p>Run the script with a lisp impl NAME[/VERSION] if present, e.g. sbcl-bin, sbcl/1.2.16. Fails otherwise.</p>
<dt>-L NAME lisp NAME</dt>
<dd><p>Run the script with a lisp impl NAME[/VERSION] if present, e.g. sbcl-bin, sbcl/1.2.16. Fails otherwise.</p>
</dd>
<dt>-l FILE --load FILE</dt>
<dt>-l FILE load FILE</dt>
<dd><p>Load a lisp file FILE while building</p>
</dd>
<dt>-S X --source-registry X</dt>
<dt>-S X source-registry X</dt>
<dd><p>Override the source registry of asdf systems.</p>
</dd>
<dt>-s SYSTEM --system SYSTEM</dt>
<dt>-s SYSTEM system SYSTEM</dt>
<dd><p>Load the asdf SYSTEM while building.</p>
</dd>
<dt>--load-system SYSTEM</dt>
<dt>load-system SYSTEM</dt>
<dd><p>Same as above (buildapp compatibility)</p>
</dd>
<dt>-p PACKAGE --package PACKAGE</dt>
<dt>-p PACKAGE package PACKAGE</dt>
<dd><p>Change the current package to PACKAGE</p>
</dd>
<dt>-sp SP --system-package SP</dt>
<dt>-sp SP system-package SP</dt>
<dd><p>Combination of -s SP and -p SP</p>
</dd>
<dt>-e FORM --eval FORM</dt>
<dt>-e FORM eval FORM</dt>
<dd><p>Evaluate FORM while building</p>
</dd>
<dt>--require MODULE</dt>
<dt>require MODULE</dt>
<dd><p>require MODULE while building</p>
</dd>
<dt>-q --quit</dt>
<dt>-q quit</dt>
<dd><p>quit lisp here</p>
</dd>
<dt>-r FUNC --restart FUNC</dt>
<dt>-r FUNC restart FUNC</dt>
<dd><p>the build image restarts from calling FUNC</p>
</dd>
<dt>-E FUNC --entry FUNC</dt>
<dt>-E FUNC entry FUNC</dt>
<dd><p>the build image restarts from calling (FUNC argv).</p>
</dd>
<dt>-i FORM --init FORM</dt>
<dt>-i FORM init FORM</dt>
<dd><p>evaluate FORM after the restart.</p>
</dd>
<dt>-ip FORM --print FORM</dt>
<dt>-ip FORM print FORM</dt>
<dd><p>evaluate and princ FORM after the restart</p>
</dd>
<dt>-iw FORM --write FORM</dt>
<dt>-iw FORM write FORM</dt>
<dd><p>evaluate and write FORM after the restart</p>
</dd>
<dt>-F FORM --final FORM</dt>
<dt>-F FORM final FORM</dt>
<dd><p>evaluate FORM before dumping the IMAGE</p>
</dd>
<dt>-R --rc</dt>
<dt>-R rc</dt>
<dd><p>try to read /etc/rosrc, ~/.roswell/init.lisp</p>
</dd>
<dt>+R --no-rc</dt>
<dt>+R no-rc</dt>
<dd><p>skip /etc/rosrc, ~/.roswell/init.lisp</p>
</dd>
<dt>-Q --quicklisp</dt>
<dt>-Q quicklisp</dt>
<dd><p>load quicklisp (default)</p>
</dd>
<dt>+Q --no-quicklisp</dt>
<dt>+Q no-quicklisp</dt>
<dd><p>do not load quicklisp</p>
</dd>
<dt>-v --verbose</dt>
<dt>-v verbose</dt>
<dd><p>be quite verbose while building</p>
</dd>
<dt>--quiet</dt>
<dt>quiet</dt>
<dd><p>suppress output while building (default)</p>
</dd>
<dt>--test</dt>
<dt>test</dt>
<dd><p>for test purpose</p>
</dd>
<dt>dynamic-space-size=[size in MB]</dt>

View file

@ -1,17 +1,19 @@
.\" Automatically generated by Pandoc 1.16.0.2
.\" Automatically generated by Pandoc 2.5
.\"
.TH "ros-asdf" "1" "" "" ""
.TH "ros-asdf" "1" "January 2022" "" ""
.hy
.SH NAME
.PP
ros\-asdf \- # synopsis
ros\-asdf \-
.SH SYNOPSIS
.PP
\f[B]ros [options] asdf [subcommand]\f[]
.SH description
\f[B]ros [options] asdf [subcommand]\f[R]
.SH DESCRIPTION
.PP
\f[B]ros asdf\f[] install and manage
ASDF(https://common\-lisp.net/project/asdf/)
\f[B]ros asdf\f[R] install and manage
ASDF(https://common\-lisp.net/project/asdf/).
.SH SEE ALSO
.PP
\f[I]ros\f[](1)
\f[I]ros\f[R](1)
.SH AUTHORS
Roswell Project Team.

View file

@ -1,16 +1,16 @@
.\" Automatically generated by Pandoc 1.16.0.2
.\" Automatically generated by Pandoc 2.5
.\"
.TH "ros-build" "1" "" "" ""
.hy
.PP
ros\-build \- Shortcut to "ros dump executable" # synopsis
ros\-build \- Shortcut to \[lq]ros dump executable\[rq] # synopsis
.PP
\f[B]ros [options] build\f[]
\f[B]ros [options] build\f[R]
.PP
Equivalent to calling \f[C]ros\ dump\ executable\ <file>\f[].
Equivalent to calling \f[C]ros dump executable <file>\f[R].
.SH description
.SH SEE ALSO
.PP
\f[I]ros\f[](1)
\f[I]ros\f[R](1)
.SH AUTHORS
Roswell Project Team.

View file

@ -1,16 +1,16 @@
.\" Automatically generated by Pandoc 1.16.0.2
.\" Automatically generated by Pandoc 2.5
.\"
.TH "ros-checkout" "1" "" "" ""
.hy
.PP
ros\-checkout \- # synopsis
.PP
\f[B]ros [options] checkout\f[] args...
\f[B]ros [options] checkout\f[R] args\&...
.SH description
.PP
to enable this command ros install roswell/ql\-checkout is needed.
.SH SEE ALSO
.PP
\f[I]ros\f[](1)
\f[I]ros\f[R](1)
.SH AUTHORS
Roswell Project Team.

View file

@ -0,0 +1,30 @@
.\" Automatically generated by Pandoc 2.5
.\"
.TH "ros-client" "1" "" "" ""
.hy
.PP
ros\-client \- one\-shot connect to remote repl.
.SH synopsis
.PP
\f[B]ros client\f[R] protocol [options for the protocol \&...] \&...
.SH description
.PP
\f[C]ros\-client\f[R] send message to lisp server and wait for message
sent back.
.SH swank protocol options
.TP
.B \f[C]\-\-port port\f[R]
set server \f[C]port\f[R] to connect.
default port 4005.
.TP
.B \f[C]\-\-interface interface\f[R]
interface for connect.
default is \f[C]localhost\f[R].
.TP
.B \-e FORM \[en]eval FORM
Evaluate FORM while building
.SH SEE ALSO
.PP
\f[I]ros\f[R](1) \f[I]ros\-serve\f[R](1)
.SH AUTHORS
Roswell Project Team.

View file

@ -1,26 +1,22 @@
.\" Automatically generated by Pandoc 1.16.0.2
.\" Automatically generated by Pandoc 2.5
.\"
.TH "ros-config" "1" "" "" ""
.hy
.PP
ros\-config \- get and set options # Synopsis
.PP
\f[B]ros [options] config\f[] [SUBCOMMAND ARGS...]
\f[B]ros [options] config\f[R] [SUBCOMMAND ARGS\&...]
.SH Description
.PP
Without any arguments, it shows all variables and it\[aq]s value.
Without any arguments, it shows all variables and it\[cq]s value.
.TP
.B show TARGET
show TARGET.
.RS
.RE
.TP
.B set TARGET VALUE
set the VALUE to the TARGET.
.RS
.RE
.SH SEE ALSO
.PP
\f[I]ros\f[](1)
\f[I]ros\f[R](1)
.SH AUTHORS
Roswell Project Team.

View file

@ -1,16 +1,16 @@
.\" Automatically generated by Pandoc 1.16.0.2
.\" Automatically generated by Pandoc 2.5
.\"
.TH "ros-delete" "1" "" "" ""
.hy
.PP
ros\-delete \- # synopsis
.PP
\f[B]ros delete\f[] ARGS...
\f[B]ros delete\f[R] ARGS\&...
.PP
Slightly complex arguments.
.SS ros delete dump IMAGES...
.SS ros delete dump IMAGES\&...
.PP
Whem ARGS starts with \f[C]dump\f[], it considers the remaining args as
Whem ARGS starts with \f[C]dump\f[R], it considers the remaining args as
the names for the dumped images.
It then deletes the image with the given name, if it exists.
.PP
@ -18,20 +18,19 @@ The deletion happens only to the images compatible with the current lisp
implementation/version.
For example, when ccl\-bin/1.10 and sbcl\-bin/1.3.1 both have images
named X, and if the current lisp in use is sbcl\-bin/1.3.1, then
\f[C]ros\ delete\ dump\ X\f[] removes sbcl\-bin/1.3.1/X only.
.SS ros delete IMPLS...
\f[C]ros delete dump X\f[R] removes sbcl\-bin/1.3.1/X only.
.SS ros delete IMPLS\&...
.PP
When the first argument is not \f[C]dump\f[], then the arguments are
When the first argument is not \f[C]dump\f[R], then the arguments are
treated as a list of installed implementations.
.PP
If a name of some implementation is given without version specifiers,
e.g.
sbcl\-bin, then it removes all instances (versions) of sbcl\-bin.
e.g.\ sbcl\-bin, then it removes all instances (versions) of sbcl\-bin.
.PP
If a version is specified, then it removes only the specified instance.
.SH description
.SH SEE ALSO
.PP
\f[I]ros\f[](1)
\f[I]ros\f[R](1)
.SH AUTHORS
Roswell Project Team.

View file

@ -1,14 +1,14 @@
.\" Automatically generated by Pandoc 1.16.0.2
.\" Automatically generated by Pandoc 2.5
.\"
.TH "ros-dist" "1" "" "" ""
.hy
.PP
ros\-dist \- # synopsis
.PP
\f[B]ros [options] dist\f[] args...
\f[B]ros [options] dist\f[R] args\&...
.SH description
.SH SEE ALSO
.PP
\f[I]ros\f[](1)
\f[I]ros\f[R](1)
.SH AUTHORS
Roswell Project Team.

View file

@ -1,4 +1,4 @@
.\" Automatically generated by Pandoc 1.16.0.2
.\" Automatically generated by Pandoc 2.5
.\"
.TH "ros-dump" "1" "" "" ""
.hy
@ -6,67 +6,65 @@
ros\-dump \- make a dumped image of a roswell script
.SH Synopsis
.PP
\f[B]ros [OPTIONS1...] dump [OPTIONS2...] MODE\f[] args...
\f[B]ros [OPTIONS1\&...] dump [OPTIONS2\&...] MODE\f[R] args\&...
.PP
\f[C]OPTIONS1\f[] specify the standard roswell options such as
\f[C]\-L\f[] or \f[C]\-m\ LISP\f[].
\f[C]OPTIONS2\f[] specify the image reduction options we describe later.
\f[C]MODE\f[] is either \f[C]output\f[] or \f[C]executable\f[].
\f[C]OPTIONS1\f[R] specify the standard roswell options such as
\f[C]\-L\f[R] or \f[C]\-m LISP\f[R].
\f[C]OPTIONS2\f[R] specify the image reduction options we describe
later.
\f[C]MODE\f[R] is either \f[C]output\f[R] or \f[C]executable\f[R].
.SH Description
.PP
\f[C]ros\-dump\f[] creates a dumped lisp image of the state after
processing all options \f[C]OPTIONS1\f[].
\f[C]ros\-dump\f[R] creates a dumped lisp image of the state after
processing all options \f[C]OPTIONS1\f[R].
.PP
It has two modes \f[C]output\f[] and \f[C]executable\f[].
In both modes, the global environment (e.g.
global binding to special variables such as \f[C]*package*\f[]) of the
state just after the restart is the environment which was effective when
the script was dumped.
It has two modes \f[C]output\f[R] and \f[C]executable\f[R].
In both modes, the global environment (e.g.\ global binding to special
variables such as \f[C]*package*\f[R]) of the state just after the
restart is the environment which was effective when the script was
dumped.
.PP
The dumped image is generally not compatible between the different
implementations, and also between the versions.
.SH Dump modes
.SS output [\-f] [\-o OUTPUT] NAME
.PP
It loads the roswell script \f[C]NAME\f[] and saves the current lisp
It loads the roswell script \f[C]NAME\f[R] and saves the current lisp
state to an image.
.PP
The image file is by default written to an internal directory of roswell
in an organized manner, i.e., somewhere under
\f[C]$ROSWELL_INSTALL_DIR\f[] deduced by the current implementation, its
version and the given NAME.
\f[C]$ROSWELL_INSTALL_DIR\f[R] deduced by the current implementation,
its version and the given NAME.
.PP
When the output file already exists, the command fails with an error
code.
.PP
The image can be loaded by \f[C]ros\ \-m\ IMAGE\f[].
The image can be loaded by \f[C]ros \-m IMAGE\f[R].
When restarting from the image, standard roswell subcommands and
additional arguments to the script are also available, for example
\f[C]ros\ run\f[] to resume with a repl, or \f[C]\-\-restart\ FUNC\f[]
\f[C]ros run\f[R] to resume with a repl, or \f[C]\-\-restart FUNC\f[R]
to call a specific function, leaving some flexibility.
.TP
.B \f[C]\-o\ OUTPUT\f[]
The image is written to \f[C]OUTPUT\f[] instead of the default location.
.RS
.RE
.B \f[C]\-o OUTPUT\f[R]
The image is written to \f[C]OUTPUT\f[R] instead of the default
location.
.TP
.B \f[C]\-f\f[]
.B \f[C]\-f\f[R]
Force output when the output already exists.
.RS
.RE
.SS executable NAME [\-o OUTPUT]
.PP
When a script is dumped with \f[C]executable\f[], the dumped image
When a script is dumped with \f[C]executable\f[R], the dumped image
becomes an self\-contained executable binary which implies
\f[C]\-\-restart\ main\f[].
\f[C]\-\-restart main\f[R].
.PP
If \f[C]OUTPUT\f[] is given, the resulting binary is written to this
If \f[C]OUTPUT\f[R] is given, the resulting binary is written to this
file.
Otherwise, the output filename is deduced from \f[C]NAME\f[] and is
Otherwise, the output filename is deduced from \f[C]NAME\f[R] and is
written in the same directory.
On Windows and if \f[C]SCRIPT\f[] has \f[C]\&.ros\f[] extension, the
filename will be \f[C]SCRIPT.exe\f[].
On the other systems, the result will be \f[C]SCRIPT\f[] (without
On Windows and if \f[C]SCRIPT\f[R] has \f[C].ros\f[R] extension, the
filename will be \f[C]SCRIPT.exe\f[R].
On the other systems, the result will be \f[C]SCRIPT\f[R] (without
extension).
.PP
This feature is supported on SBCL, CCL, CMUCL, CLISP, ECL.
@ -80,106 +78,83 @@ Care should be taken to ensure the resulting program works as expected,
as some of these operation may destroy the common assumptions of the
conforming programs.
For example, package\-related reduction options may inhibit the runtime
calls to \f[C]READ\f[] after the restart.
calls to \f[C]READ\f[R] after the restart.
.PP
Reduction options are processed in the left\-to\-right manner.
.TP
.B \-\-disable\-compression, \-\-enable\-compression, \-c
.B \[en]disable\-compression, \[en]enable\-compression, \-c
These options disable/enable/enable the core compression feature in
SBCL.
Thus this option is meaningful only on SBCL.
Compression is enabled by default.
.RS
.RE
.TP
.B \-\-remove\-docstrings
.B \[en]remove\-docstrings
This option removes all docstrings from all symbols in the entire lisp
image.
.RS
.RE
.TP
.B \-\-delete\-package PKG
.B \[en]delete\-package PKG
This option can be specified multiple times.
It uninterns the symbols in PACKAGE, calls \f[C]makeunbound\f[] and
\f[C]fmakeunbound\f[] on each symbol and deletes the package.
Package names are automatically string\-upcase\[aq]d.
.RS
.RE
It uninterns the symbols in PACKAGE, calls \f[C]makeunbound\f[R] and
\f[C]fmakeunbound\f[R] on each symbol and deletes the package.
Package names are automatically string\-upcase\[cq]d.
.TP
.B \-\-delete\-all\-packages
This option applies \-\-delete\-package PKG on all packages, except some
blacklisted packages (keyword, roswell, ROS.SCRIPT.DUMP, and the package
of the main function symbol).
.RS
.RE
.B \[en]delete\-all\-packages
This option applies \[en]delete\-package PKG on all packages, except
some blacklisted packages (keyword, roswell, ROS.SCRIPT.DUMP, and the
package of the main function symbol).
.TP
.B \-\-delete\-packages\-except PACKAGE
.B \[en]delete\-packages\-except PACKAGE
This option can be specified multiple times.
It is identical to \-\-delete\-all\-packages except that it adds PACKAGE
to the blacklist.
Package names are automatically string\-upcase\[aq]d.
.RS
.RE
It is identical to \[en]delete\-all\-packages except that it adds
PACKAGE to the blacklist.
Package names are automatically string\-upcase\[cq]d.
.TP
.B \-\-destroy\-packages\-sbcl
.B \[en]destroy\-packages\-sbcl
This is an sbcl\-specific option which is even more aggressive than the
above methods (>10MB reduction).
It destroys the package system by modifying the internal tables for
packages, cleaning up the caches for package\-use\-list etc.
The blacklist is shared among \-\-delete\-all\-packages and
\-\-destroy\-packages\-sbcl.
The blacklist is shared among \[en]delete\-all\-packages and
\[en]destroy\-packages\-sbcl.
However, this method does not call fmakunbound/makunbound, so combining
the two methods can result in a more aggressive image size reduction.
Due to the nature of this option, it is desirable to specify it as the
last method (i.e.
rightmost).
.RS
.RE
last method (i.e.\ rightmost).
.TP
.B \-\-purify, \-\-no\-purify
.B \[en]purify, \[en]no\-purify
This is common to CCL, SBCL, CMUCL.
Moves all objects to the static space where GC does not scan, for the
later performance of GC.
Purification is enabled by default.
.RS
.RE
.TP
.B \-\-impurify, \-\-no\-impurify
.B \[en]impurify, \[en]no\-impurify
This is an CCL\-specific option (enabled by default).
It moves all objects to the dynamic space before saving the image.
This allows the static\-space objects to be GC\[aq]ed.
This allows the static\-space objects to be GC\[cq]ed.
When purification is enabled, it impurifies all objects before running
the purifying GC.
.RS
.RE
.TP
.B \-\-delete\-debug\-info
.B \[en]delete\-debug\-info
This removes the debug infomation of functions (used to show the stack
frame etc), as well as the source locations and the deprecation
information of various symbols.
SBCL only.
This option has a large effect (+10MB reduction).
.RS
.RE
.TP
.B \-\-delete\-macro\-definitions, \-\-delete\-compiler\-macro\-definitions
.B \[en]delete\-macro\-definitions, \[en]delete\-compiler\-macro\-definitions
This removes all definitions of macros and compiler\-macros, assuming
that no runtime compilation/interpretation of code will be performed.
This option should be portable across implementations.
It has ~2MB reduction on SBCL.
.RS
.RE
It has \[ti]2MB reduction on SBCL.
.TP
.B \-\-delete\-compiler\-information\-sbcl
.B \[en]delete\-compiler\-information\-sbcl
This is an SBCL\-specific option which is more aggressive than the above
methods (~4MB reduction).
methods (\[ti]4MB reduction).
In addition to the macro and the compiler\-macro definitions, it
destroys the internal compiler systems of SBCL by also removing the
inlining information, IR1 transformer and IR2 (VOP).
.RS
.RE
.SH SEE ALSO
.PP
\f[I]sbcl\f[](1) \f[I]ros\f[](1) \f[I]ros\-init\f[](1)
\f[I]sbcl\f[R](1) \f[I]ros\f[R](1) \f[I]ros\-init\f[R](1)
.SH AUTHORS
Roswell Project Team.

View file

@ -1,11 +1,11 @@
.\" Automatically generated by Pandoc 1.16.0.2
.\" Automatically generated by Pandoc 2.5
.\"
.TH "ros-emacs" "1" "" "" ""
.hy
.PP
ros\-emacs \- launch Emacs with Slime # Synopsis
.PP
\f[B]ros emacs\f[] [ARGS...]
\f[B]ros emacs\f[R] [ARGS\&...]
.SH Description
.PP
Launches Emacs with a Slime(https://common\-lisp.net/project/slime/)
@ -14,6 +14,6 @@ of roswell.
Additional arguments are passed to emacs.
.SH SEE ALSO
.PP
\f[I]ros\f[](1), \f[I]emacs\f[](1)
\f[I]ros\f[R](1), \f[I]emacs\f[R](1)
.SH AUTHORS
Roswell Project Team.

View file

@ -1,4 +1,4 @@
.\" Automatically generated by Pandoc 1.16.0.2
.\" Automatically generated by Pandoc 2.5
.\"
.TH "ros-help" "1" "" "" ""
.hy
@ -6,12 +6,12 @@
ros\-help \- Show Command help
.SH Synopsis
.PP
\f[B]ros help\f[] [subcommand or topics]
\f[B]ros help\f[R] [subcommand or topics]
.SH Description
.PP
\f[B]ros help\f[] shows description of subcommand or topics
\f[B]ros help\f[R] shows description of subcommand or topics
.SH SEE ALSO
.PP
\f[I]sbcl\f[](1), \f[I]ros\f[](1)
\f[I]sbcl\f[R](1), \f[I]ros\f[R](1)
.SH AUTHORS
Roswell Project Team.

View file

@ -1,4 +1,4 @@
.\" Automatically generated by Pandoc 1.16.0.2
.\" Automatically generated by Pandoc 2.5
.\"
.TH "ros-init" "1" "" "" ""
.hy
@ -6,16 +6,16 @@
ros\-init \- Create a roswell script (optionally based on a template)
.SH Synopsis
.PP
\f[B]ros init [TEMPLATE] NAME [ARGS...]]\f[]
\f[B]ros init [TEMPLATE] NAME [ARGS\&...]]\f[R]
.TP
.B TEMPLATE
Specifies the name of a template, defaulted to \f[I]default\f[]
Specifies the name of a template, defaulted to \f[I]default\f[R]
template.
However, if \f[I]TEMPLATE\f[] is not specified and \f[I]FILENAME\f[]
However, if \f[I]TEMPLATE\f[R] is not specified and \f[I]FILENAME\f[R]
matches one of the templates being stored, then it automatically uses
the template.
To suppress this behavior, you should explicitly specify
\f[I]TEMPLATE\f[] as \f[I]default\f[].
\f[I]TEMPLATE\f[R] as \f[I]default\f[R].
.RS
.PP
Thus you are warned when you use this command from a shell script.
@ -24,47 +24,46 @@ that they should always explicitly specify the template name.
.RE
.TP
.B NAME
Specify the output filename, or "\-" to indicate \f[I]stdout\f[].
When \f[I]TEMPLATE\f[] is \f[I]default\f[], it automatically appends a
file type ".ros".
.RS
.RE
Specify the output filename, or \[lq]\-\[rq] to indicate
\f[I]stdout\f[R].
When \f[I]TEMPLATE\f[R] is \f[I]default\f[R], it automatically appends a
file type \[lq].ros\[rq].
.SH Description
.PP
Initialises a roswell file based on a template.
User\-specified templates can be added by \f[I]ros\-template\f[](1).
User\-specified templates can be added by \f[I]ros\-template\f[R](1).
.PP
The default template is something like:
.IP
.nf
\f[C]
#!/bin/sh
#|\-*\-\ mode:lisp\ \-*\-|#
#|\ <Put\ a\ one\-line\ description\ here>
exec\ ros\ \-Q\ \-\-\ $0\ "$\@"
#|\-*\- mode:lisp \-*\-|#
#| <Put a one\-line description here>
exec ros \-Q \-\- $0 \[dq]$\[at]\[dq]
|#
(progn\ ;;init\ forms
\ \ (ros:ensure\-asdf)
\ \ ;;#+quicklisp\ (ql:quickload\ \[aq]()\ :silent\ t)
\ \ )
(progn ;;init forms
(ros:ensure\-asdf)
;;#+quicklisp (ql:quickload \[aq]() :silent t)
)
(defpackage\ :ros.script.test.3703600390
\ \ (:use\ :cl))
(in\-package\ :ros.script.test.3703600390)
(defpackage :ros.script.test.3703600390
(:use :cl))
(in\-package :ros.script.test.3703600390)
(defun\ main\ (&rest\ argv)
\ \ (declare\ (ignorable\ argv)))
;;;\ vim:\ set\ ft=lisp\ lisp:
\f[]
(defun main (&rest argv)
(declare (ignorable argv)))
;;; vim: set ft=lisp lisp:
\f[R]
.fi
.PP
This is basically a shell script which immediately invokes Roswell by
exec (see \f[I]sh(1)\f[]).
exec (see \f[I]sh(1)\f[R]).
Roswell loads the same script as an input, skips multi\-line comments,
reads the rest of the file as a Common Lisp program, and finally invokes
a function main with command\-line arguments.
.SH SEE ALSO
.PP
\f[I]sbcl\f[](1) \f[I]ros\f[](1) \f[I]ros\-template\f[](1)
\f[I]sbcl\f[R](1) \f[I]ros\f[R](1) \f[I]ros\-template\f[R](1)
.SH AUTHORS
Roswell Project Team.

View file

@ -1,4 +1,4 @@
.\" Automatically generated by Pandoc 1.16.0.2
.\" Automatically generated by Pandoc 2.5
.\"
.TH "ros-install" "1" "" "" ""
.hy
@ -6,82 +6,78 @@
ros\-install \- Install lisp implementations or quicklisp system
.SH Synopsis
.IP \[bu] 2
\f[B]ros install\f[] system [system ...]
\f[B]ros install\f[R] system [system \&...]
.IP \[bu] 2
\f[B]ros install\f[] impl[/version] [param ...]
\f[B]ros install\f[R] impl[/version] [param \&...]
.SH Description
.TP
.B system
a name specifying a system.
.RS
.RE
.TP
.B impl
a name specifying a lisp implementation.
.RS
.RE
.SH Installing a Lisp Implementation
.PP
When the \f[C]impl\f[] or \f[C]system\f[] matches to one of the
When the \f[C]impl\f[R] or \f[C]system\f[R] matches to one of the
supported implementations, it fetches, downloads and installs it to one
of the internal directory managed by roswell (~/.roswell, or
\f[C]ROSWELL_INSTALL_DIR\f[]).
of the internal directory managed by roswell (\[ti]/.roswell, or
\f[C]ROSWELL_INSTALL_DIR\f[R]).
In order to use the installed implementation, you have to run
\f[I]ros\-use(1)\f[].
\f[I]ros\-use(1)\f[R].
.PP
For example, the following command downloads the latest sbcl binary from
sbcl.org.
Note that this may be different from the default binary installed by
roswell, called \f[C]sbcl\-bin\f[].
\f[C]sbcl\-bin\f[] is a stable and well\-tested version of the sbcl
roswell, called \f[C]sbcl\-bin\f[R].
\f[C]sbcl\-bin\f[R] is a stable and well\-tested version of the sbcl
binary which is supposed to be a little older than the latest sbcl.
.IP
.nf
\f[C]
$\ ros\ install\ sbcl
\f[]
$ ros install sbcl
\f[R]
.fi
.PP
When invoked without a name, it prints the list of installable
implementations.
(Not to be confused with \f[C]ros\ list\ installed\f[], which shows the
(Not to be confused with \f[C]ros list installed\f[R], which shows the
implementations already installed.)
.IP
.nf
\f[C]
Usage:\ ros\ install\ impl\ [OPTIONS]
Usage: ros install impl [OPTIONS]
For\ more\ details\ on\ impl\ specific\ options,\ type:
ros\ help\ install\ impl
For more details on impl specific options, type:
ros help install impl
Candidates\ impls\ for\ installation\ are:
Candidates impls for installation are:
ecl
sbcl
clisp
ccl\-bin
sbcl\-bin
\f[]
\f[R]
.fi
.PP
The name can be optionally followed by a slash \f[C]/\f[] and a version
The name can be optionally followed by a slash \f[C]/\f[R] and a version
of the implementation.
.IP
.nf
\f[C]
$\ ros\ install\ sbcl/1.2.14
\f[]
$ ros install sbcl/1.2.14
\f[R]
.fi
.PP
There might be some \f[I]hidden\f[] implementation that are not listed
here \-\-\- they are in the alpha quality, but try the one you like or
There might be some \f[I]hidden\f[R] implementation that are not listed
here \[em] they are in the alpha quality, but try the one you like or
watch the website (https://github.com/roswell/roswell).
.IP
.nf
\f[C]
$\ ros\ install\ ccl
$\ ros\ install\ abcl
$\ ...
\f[]
$ ros install ccl
$ ros install abcl
$ ...
\f[R]
.fi
.SH Installing a quicklisp system and the bundled roswell scripts
.PP
@ -90,36 +86,36 @@ tries to find a quicklisp system of the given name.
.IP
.nf
\f[C]
$\ ros\ install\ alexandria
\f[]
$ ros install alexandria
\f[R]
.fi
.PP
After compiling and loading the system, it funcalls
\f[C]ros:*build\-hook*\f[] special variable with no argument, if some
\f[C]ros:*build\-hook*\f[R] special variable with no argument, if some
function is set during the compilation/load.
.PP
When the system comes with a \f[B]roswell script\f[] created by
\f[I]ros\-init\f[](1) in the subdirectory \f[C]roswell\f[], they are
installed into \f[B]ROSWELL_INSTALL_DIR/bin\f[].
When the system comes with a \f[B]roswell script\f[R] created by
\f[I]ros\-init\f[R](1) in the subdirectory \f[C]roswell\f[R], they are
installed into \f[B]ROSWELL_INSTALL_DIR/bin\f[R].
Setting the path to this directory makes those scripts available from
the shell command line.
.IP
.nf
\f[C]
$\ ros\ install\ qlot
System\ \[aq]qlot\[aq]\ found.\ Loading\ the\ system..
Processing\ build\-hook..
Found\ 1\ scripts:\ qlot
Attempting\ to\ install\ the\ scripts\ in\ roswell/\ subdirectory\ of\ the\ system...
$ ros install qlot
System \[aq]qlot\[aq] found. Loading the system..
Processing build\-hook..
Found 1 scripts: qlot
Attempting to install the scripts in roswell/ subdirectory of the system...
/home/user/.roswell/bin/qlot
$\ qlot
Usage:\ qlot\ [install\ |\ update\ |\ bundle\ |\ exec\ shell\-args..]
\f[]
$ qlot
Usage: qlot [install | update | bundle | exec shell\-args..]
\f[R]
.fi
.SH SEE ALSO
.PP
\f[I]sbcl\f[](1), \f[I]ros\f[](1), \f[I]ros\-list\f[](1),
\f[I]ros\-init\f[](1)
\f[I]sbcl\f[R](1), \f[I]ros\f[R](1), \f[I]ros\-list\f[R](1),
\f[I]ros\-init\f[R](1)
.SH AUTHORS
Roswell Project Team.

View file

@ -1,4 +1,4 @@
.\" Automatically generated by Pandoc 1.16.0.2
.\" Automatically generated by Pandoc 2.5
.\"
.TH "ros-list" "1" "" "" ""
.hy
@ -6,35 +6,29 @@
ros\-list \- list the materials installed by roswell
.SH Synopsis
.PP
\f[B]ros list [type] [options]\f[]
\f[B]ros list [type] [options]\f[R]
.SH Description
.PP
\f[B]ros list\f[] shows the list of the materials installed by roswell.
\f[B]ros list\f[R] shows the list of the materials installed by roswell.
.TP
.B installed [ [ IMPL | IMPL/VERSION ]...]
.B installed [ [ IMPL | IMPL/VERSION ]\&...]
List the implementations that have been already installed.
Optionally providing IMPL shows the installed versions of the
implementation.
.RS
.RE
.TP
.B dump [IMPL]
List the internal dumped images that are compatible with IMPL.
When IMPL is ommited, it is defaulted to the current lisp implementation
in use.
Images are in \f[C]$ROSWELL_INSTALL_DIR/impl/.../dump/\f[].
.RS
.RE
Images are in \f[C]$ROSWELL_INSTALL_DIR/impl/.../dump/\f[R].
.TP
.B versions [IMPL]
List the installable versions for IMPL.
When IMPL is ommited, it is defaulted to the current lisp implementation
in use.
This feature is experimental.
.RS
.RE
.SH SEE ALSO
.PP
\f[I]sbcl\f[](1) \f[I]ros\f[](1)
\f[I]sbcl\f[R](1) \f[I]ros\f[R](1)
.SH AUTHORS
Roswell Project Team.

View file

@ -1,17 +1,17 @@
.\" Automatically generated by Pandoc 1.16.0.2
.\" Automatically generated by Pandoc 2.5
.\"
.TH "ros-run" "1" "" "" ""
.hy
.PP
ros\-run \- start a REPL # Synopsis
.PP
\f[B]ros [options] run\f[]
\f[B]ros [options] run\f[R]
.SH Description
.PP
Processes the given options and start a REPL using the currently
effective lisp implementation set by \f[I]ros\-use\f[](1).
effective lisp implementation set by \f[I]ros\-use\f[R](1).
.SH SEE ALSO
.PP
\f[I]ros\f[](1)
\f[I]ros\f[R](1)
.SH AUTHORS
Roswell Project Team.

27
documents/man/ros-serve.1 Normal file
View file

@ -0,0 +1,27 @@
.\" Automatically generated by Pandoc 2.5
.\"
.TH "ros-serve" "1" "" "" ""
.hy
.PP
ros\-serve \- start lisp server
.SH Synopsis
.PP
\f[B]ros [options for roswell \&... ] serve\f[R] protocol [options for
the protocol \&...] \&...
.SH description
.PP
\f[C]ros\-serve\f[R] start lisp and wait for clients to connect to the
lisp.
.SH swank protocol options
.TP
.B \f[C]\-\-port port\f[R]
Listen port would be \f[C]port\f[R] instead of the default port 4005.
.TP
.B \f[C]\-\-interface interface\f[R]
limit interface for listen.
default is \f[C]localhost\f[R] so there would be no limitation.
.SH SEE ALSO
.PP
\f[I]ros\f[R](1) \f[I]ros\-client\f[R](1)
.SH AUTHORS
Roswell Project Team.

View file

@ -1,4 +1,4 @@
.\" Automatically generated by Pandoc 1.16.0.2
.\" Automatically generated by Pandoc 2.5
.\"
.TH "ros-setup" "1" "" "" ""
.hy
@ -6,22 +6,22 @@
ros\-setup \- setup the backend of roswell
.SH Synopsis
.PP
\f[B]ros setup\f[]
\f[B]ros setup\f[R]
.SH Description
.PP
\f[B]ros setup\f[] initializes roswell.
\f[B]ros setup\f[R] initializes roswell.
The process includes the following steps:
.IP \[bu] 2
Downloading the default stable lisp implementation (sbcl\-bin) to
\f[C]ROSWELL_INSTALL_DIR\f[].
\f[C]ROSWELL_INSTALL_DIR\f[R].
.IP \[bu] 2
Installing quicklisp to \f[C]ROSWELL_INSTALL_DIR\f[].
Installing quicklisp to \f[C]ROSWELL_INSTALL_DIR\f[R].
.IP \[bu] 2
On Windows, install 7zip to \f[C]ROSWELL_INSTALL_DIR\f[].
On Windows, install 7zip to \f[C]ROSWELL_INSTALL_DIR\f[R].
.IP \[bu] 2
Making the core image of roswell itself.
.SH SEE ALSO
.PP
\f[I]sbcl\f[](1), \f[I]ros\f[](1), section Environmental Variables
\f[I]sbcl\f[R](1), \f[I]ros\f[R](1), section Environmental Variables
.SH AUTHORS
Roswell Project Team.

View file

@ -1,4 +1,4 @@
.\" Automatically generated by Pandoc 1.16.0.2
.\" Automatically generated by Pandoc 2.5
.\"
.TH "ros-template" "1" "" "" ""
.hy
@ -6,248 +6,223 @@
ros\-template \- Edit template for ros\-init
.SH synopsis
.IP \[bu] 2
\f[B]ros template\f[] command args...
\f[B]ros template\f[R] command args\&...
.SH Subcommands
.TP
.B init template\-name
Create new template in local\-project directory.
.RS
.RE
.TP
.B deinit template\-name
Remove a template from local\-project directory.
.RS
.RE
.TP
.B list
Show file list and states of the files \f[I]type\f[] \f[I]chmod\f[]
\f[I]rewrite\f[] in templates.
.RS
.RE
Show file list and states of the files \f[I]type\f[R] \f[I]chmod\f[R]
\f[I]rewrite\f[R] in templates.
.TP
.B checkout [template\-name]
When invoked without template\-name,this command shows candidates for
current templates to operate.If with template\-name, this command choose
the name as current template.
.RS
.RE
.TP
.B add [template\-name] [files ...]
.B add [template\-name] [files \&...]
Add files to current template.First parameter could taken as a
template\-name when current template are \f[I]default\f[].
.RS
.RE
template\-name when current template are \f[I]default\f[R].
.TP
.B cat [template\-name] [files ...]
.B cat [template\-name] [files \&...]
Show contents in the current template.
.RS
.RE
.TP
.B edit [template\-name] [files ...]
Edit content of files in template using \f[C]/usr/bin/editor\f[].
.RS
.RE
.B edit [template\-name] [files \&...]
Edit content of files in template using \f[C]/usr/bin/editor\f[R].
.TP
.B rm [template\-name] [files ...]
.B path [template\-name] [files \&...]
Show native path of files in template.
.TP
.B rm [template\-name] [files \&...]
Remove file form current template.
.RS
.RE
.TP
.B type [template\-name] [type] [files ...]
.B type [template\-name] [type] [files \&...]
Change file type.
current choice for \f[I]type\f[]s are \f[I]djula\f[] or \f[I]copy\f[]
current choice for \f[I]type\f[R]s are \f[I]djula\f[R] or \f[I]copy\f[R]
{{name}} {{author}} {{email}} {{universal_time}} are available variable
in the template file.
Withoug files, change default type.
.RS
.RE
.TP
.B chmod [template\-name] [mode] [files ...]
.B chmod [template\-name] [mode] [files \&...]
Change file mode bits to generate.
specify mode in octal format.
.RS
.RE
.TP
.B rewrite [template\-name] file rewrite\-rule
Change file name using djula template.Variables {{name}} {{author}}
{{email}} {{universal_time}} are available for rewrite\-rule.
.RS
.RE
.TP
.B export [template\-name] [directory]
Export files in current template to current directory.
.RS
.RE
.TP
.B import [directory]
Import template in current directory
.RS
.RE
.TP
.B help
Show the subcommand help.
.RS
.RE
.SH Description
.PP
The \f[I]ros\-template\f[](1) command manages templates of projects.
The \f[I]ros\-template\f[R](1) command manages templates of projects.
.SS Create template
.PP
First, the \f[C]init\f[] sub\-command creates an empty template.
First, the \f[C]init\f[R] sub\-command creates an empty template.
.IP
.nf
\f[C]
$\ ros\ template\ init\ sample\-template
\f[]
$ ros template init sample\-template
\f[R]
.fi
.PP
Many of sub\-commands take a template name as first argument.
But you can omit it by the \f[C]checkout\f[] sub\-commands.
But you can omit it by the \f[C]checkout\f[R] sub\-commands.
After the following, such sub\-commands are applied to
\f[C]sample\-template\f[].
\f[C]sample\-template\f[R].
.IP
.nf
\f[C]
$\ ros\ template\ checkout\ sample\-template
\f[]
$ ros template checkout sample\-template
\f[R]
.fi
.PP
Next, the \f[C]add\f[] sub\-command adds local file[s] to template.
Then, the \f[C]list\f[] sub\-command shows information of files in
Next, the \f[C]add\f[R] sub\-command adds local file[s] to template.
Then, the \f[C]list\f[R] sub\-command shows information of files in
template.
.IP
.nf
\f[C]
$\ echo\ "Hello\ {{\ author\ }}!!"\ >\ sample.txt
$\ ros\ template\ add\ sample.txt
$\ ros\ template\ list
\ \ \ \ \ \ copy\ \ sample.txt\
\f[]
$ echo \[dq]Hello {{ author }}!!\[dq] > sample.txt
$ ros template add sample.txt
$ ros template list
copy sample.txt
\f[R]
.fi
.PP
The word \f[I]copy\f[] means a strategy when applying the template.
The word \f[I]copy\f[R] means a strategy when applying the template.
There are the following 2 strategies.
.IP \[bu] 2
\f[I]copy\f[] simply copies the file as\-is.
\f[I]copy\f[R] simply copies the file as\-is.
.IP \[bu] 2
\f[I]djula\f[] processes the content of the file by template engine,
\f[I]djula\f[R] processes the content of the file by template engine,
Djula (http://mmontone.github.io/djula/).
.RS 2
.IP \[bu] 2
Available variables are explained later.
.RE
.PP
The \f[C]type\f[] sub\-command changes it.
In addition, default strategy (\f[I]copy\f[]) can be changed for each
template by the \f[C]type\f[] sub\-command without file names (Ex.
\f[C]ros\ template\ type\ djula\f[]).
The \f[C]type\f[R] sub\-command changes it.
In addition, default strategy (\f[I]copy\f[R]) can be changed for each
template by the \f[C]type\f[R] sub\-command without file names (Ex.
\f[C]ros template type djula\f[R]).
.IP
.nf
\f[C]
$\ ros\ template\ type\ djula\ sample.txt
$\ ros\ template\ list
\ \ \ \ \ \ djula\ sample.txt\
\f[]
$ ros template type djula sample.txt
$ ros template list
djula sample.txt
\f[R]
.fi
.PP
The \f[C]sample.txt\f[] will be simply output as \f[C]sample.txt\f[] in
default.
But you can change it by the \f[C]rewrite\f[] sub\-command.
The \f[C]sample.txt\f[R] will be simply output as \f[C]sample.txt\f[R]
in default.
But you can change it by the \f[C]rewrite\f[R] sub\-command.
In the following example, it will be output as
\f[C]sample_<project\ name>.txt\f[].
\f[C]sample_<project name>.txt\f[R].
.IP
.nf
\f[C]
$\ ros\ template\ rewrite\ sample.txt\ "sample\-{{\ name\ }}.txt"
$\ ros\ template\ list
\ \ \ \ \ \ djula\ sample.txt\ \->\ "sample\-{{\ name\ }}.txt"
\f[]
$ ros template rewrite sample.txt \[dq]sample\-{{ name }}.txt\[dq]
$ ros template list
djula sample.txt \-> \[dq]sample\-{{ name }}.txt\[dq]
\f[R]
.fi
.PP
Note: Rewrite rules are always processed by Djula irrespective of
strategy of the file.
.SS Apply template
.PP
\f[I]ros\-init\f[](1) can specify a template.
\f[I]ros\-init\f[R](1) can specify a template.
.IP
.nf
\f[C]
$\ mkdir\ temp\ ;\ cd\ temp
$\ ros\ init\ sample\-template\ some\-project
$\ ls
$ mkdir temp ; cd temp
$ ros init sample\-template some\-project
$ ls
sample\-some\-project.txt
$\ cat\ sample\-some\-project.txt\ #\ Assume\ that\ "author"\ is\ "alien"
Hello\ alien!!
\f[]
$ cat sample\-some\-project.txt # Assume that \[dq]author\[dq] is \[dq]alien\[dq]
Hello alien!!
\f[R]
.fi
.PP
The file name and its content are processed by Djula as explained in the
above.
The following variables can be used in defaut.
.IP \[bu] 2
{{name}}: A project name specified in \f[I]ros\-init\f[](1)
{{name}}: A project name specified in \f[I]ros\-init\f[R](1)
.IP \[bu] 2
{{author}}: An author name extracted from config of Git or
\f[C]whoami\f[]
\f[C]whoami\f[R]
.IP \[bu] 2
{{email}}: An e\-mail address extracted from config of Git or created
using \f[C]whoami\f[] and \f[C]hostname\f[]
using \f[C]whoami\f[R] and \f[C]hostname\f[R]
.IP \[bu] 2
{{universal_time}}: A universal time created by
\f[C]get\-universal\-time\f[] function
\f[C]get\-universal\-time\f[R] function
.PP
In addition, you can use original variables as the followings.
.IP
.nf
\f[C]
$\ echo\ "Hello\ {{\ area\ }}!!"\ >\ sample.txt
$\ ros\ template\ add\ sample.txt\ #\ Note:\ It\ overwrites\ existing
$\ mkdir\ temp\ ;\ cd\ temp
$\ ros\ init\ sample\-template\ roswell\ \-\-area\ 51
$\ cat\ sample\-roswell.txt
Hello\ 51!!
\f[]
$ echo \[dq]Hello {{ area }}!!\[dq] > sample.txt
$ ros template add sample.txt # Note: It overwrites existing
$ mkdir temp ; cd temp
$ ros init sample\-template roswell \-\-area 51
$ cat sample\-roswell.txt
Hello 51!!
\f[R]
.fi
.SS Export and import template
.PP
Basically, \f[I]ros\-template\f[](1) is designed to internally manage
Basically, \f[I]ros\-template\f[R](1) is designed to internally manage
added files.
.PP
However, if you want to, for example, manage it using Git in a local
directory or to install distributed templates, you can use the
\f[C]export\f[] and \f[C]import\f[] sub\-commands.
\f[C]export\f[R] and \f[C]import\f[R] sub\-commands.
.PP
First, the \f[C]export\f[] sub\-command exports added files and a
setting file \f[C]roswell.init.<template\ name>.asd\f[] that is
First, the \f[C]export\f[R] sub\-command exports added files and a
setting file \f[C]roswell.init.<template name>.asd\f[R] that is
internally created and editted.
.IP
.nf
\f[C]
$\ ros\ template\ export\ dir
$\ ls\ dir
roswell.init.sample\-template.asd\ \ sample.txt
$\ cat\ dir/sample.txt
Hello\ {{\ area\ }}!!
\f[]
$ ros template export dir
$ ls dir
roswell.init.sample\-template.asd sample.txt
$ cat dir/sample.txt
Hello {{ area }}!!
\f[R]
.fi
.PP
Second, the \f[C]import\f[] sub\-command imports them.
Second, the \f[C]import\f[R] sub\-command imports them.
.IP
.nf
\f[C]
#\ Assume\ that\ this\ is\ another\ machine...
$\ ros\ template\ list\ sample\-template\ #\ nothing\ is\ output\
$\ ls\ downloaded
roswell.init.sample\-template.asd\ \ sample.txt
$\ ros\ template\ import\ downloaded
$\ ros\ template\ list\ sample\-template
\ \ \ \ \ \ djula\ sample.txt\ \->\ "sample\-{{\ name\ }}.txt"
\f[]
# Assume that this is another machine...
$ ros template list sample\-template # nothing is output
$ ls downloaded
roswell.init.sample\-template.asd sample.txt
$ ros template import downloaded
$ ros template list sample\-template
djula sample.txt \-> \[dq]sample\-{{ name }}.txt\[dq]
\f[R]
.fi
.PP
Note: If there is a template whose name is same, it will be overwritten.
.SH SEE ALSO
.PP
\f[I]ros\f[](1) \f[I]ros\-init\f[](1)
\f[I]ros\f[R](1) \f[I]ros\-init\f[R](1)
.SH AUTHORS
Roswell Project Team.

View file

@ -1,4 +1,4 @@
.\" Automatically generated by Pandoc 1.16.0.2
.\" Automatically generated by Pandoc 2.5
.\"
.TH "ros-update" "1" "" "" ""
.hy
@ -6,27 +6,23 @@
ros\-update \- Update system installed from vcs
.SH Synopsis
.IP \[bu] 2
\f[B]ros update\f[] system [system ...]
\f[B]ros update\f[R] system [system \&...]
.IP \[bu] 2
\f[B]ros update\f[] method [params ...]
\f[B]ros update\f[R] method [params \&...]
.SH Description
.TP
.B system
a name specifying a system.
.RS
.RE
.TP
.B method
currently supported method is \f[C]git\f[].
.RS
.RE
currently supported method is \f[C]git\f[R].
.SH Update system
.PP
When system are already installed and the system has \f[C]\&.git\f[] in
the system directory it invoke \f[C]git\ pull\f[] and
\f[C]ros\ install\f[] the system.
When system are already installed and the system has \f[C].git\f[R] in
the system directory it invoke \f[C]git pull\f[R] and
\f[C]ros install\f[R] the system.
.SH SEE ALSO
.PP
\f[I]ros\f[](1), \f[I]ros\-install\f[](1)
\f[I]ros\f[R](1), \f[I]ros\-install\f[R](1)
.SH AUTHORS
Roswell Project Team.

View file

@ -1,36 +1,36 @@
.\" Automatically generated by Pandoc 1.16.0.2
.\" Automatically generated by Pandoc 2.5
.\"
.TH "ros-use" "1" "" "" ""
.hy
.PP
ros\-use \- sets the default implementation used by roswell # synopsis
.PP
\f[B]ros [options] use\f[] impl[/version]
\f[B]ros [options] use\f[R] impl[/version]
.PP
impl : The name of an implementation which is already installed.
New implementations can be downloaded by \f[I]ros\-install\f[](1).
New implementations can be downloaded by \f[I]ros\-install\f[R](1).
The list of installed implementations is available in
\f[I]ros\-list\f[](1).
\f[I]ros\-list\f[R](1).
.PP
version: : The version specifier.
The string representation of the version (e.g.
.) depends on each implementation and roswell generally follows the
representation used by the implementation.
In addition, \f[I]a special version name "system"\f[] tells roswell to
use the implementation that is installed in your system, which should be
in PATH.
The string representation of the version (e.g.\ .) depends on each
implementation and roswell generally follows the representation used by
the implementation.
In addition, \f[I]a special version name \[lq]system\[rq]\f[R] tells
roswell to use the implementation that is installed in your system,
which should be in PATH.
.SH example
.PP
ros use sbcl : use the latest SBCL among several versions of SBCLs
installed by \f[I]ros\-install\f[].
installed by \f[I]ros\-install\f[R].
This is compiled from the source, which may take some time to install
but allows SLIME to jump to the implementation source code.
.PP
ros use sbcl\-bin : use the latest stable SBCL binary downloaded from
vendor\[aq]s website.
vendor\[cq]s website.
Roswell uses this by default.
\f[C]sbcl\-bin\f[] tends to be an older version compared to
\f[C]sbcl\f[], but surely newer than your \f[I]apt\-get\f[] installed
\f[C]sbcl\-bin\f[R] tends to be an older version compared to
\f[C]sbcl\f[R], but surely newer than your \f[I]apt\-get\f[R] installed
counterpart!
.PP
ros use sbcl/1.3.1 : use the compiled SBCL 1.3.1.
@ -42,11 +42,11 @@ ros use sbcl/system : use the SBCL available in the PATH.
ros use ccl : use the CCL compiled from the source.
Same set of version specifiers as for SBCL can be applied.
.PP
Roswell also supports \f[I]abcl\f[], \f[I]acl\f[], \f[I]clisp\f[],
\f[I]cmu\f[] and \f[I]ecl\f[].
Roswell also supports \f[I]abcl\f[R], \f[I]acl\f[R], \f[I]clisp\f[R],
\f[I]cmu\f[R] and \f[I]ecl\f[R].
.SH SEE ALSO
.PP
\f[I]sbcl\f[](1), \f[I]ros\f[](1), \f[I]ros\-install\f[](1),
\f[I]ros\-list\f[](1)
\f[I]sbcl\f[R](1), \f[I]ros\f[R](1), \f[I]ros\-install\f[R](1),
\f[I]ros\-list\f[R](1)
.SH AUTHORS
Roswell Project Team.

View file

@ -1,11 +1,11 @@
.\" Automatically generated by Pandoc 1.16.0.2
.\" Automatically generated by Pandoc 2.5
.\"
.TH "ros-wait" "1" "" "" ""
.hy
.PP
ros\-wait \- # synopsis
.PP
\f[B]ros [options] wait\f[]
\f[B]ros [options] wait\f[R]
.SH Description
.PP
Wait forever after processing the options.
@ -19,11 +19,11 @@ from the client.
.IP
.nf
\f[C]
$\ ros\ \-sp\ clack\ \-l\ app.lisp\ \-e\ \[aq](clack:clackup)\[aq]\ wait
\f[]
$ ros \-sp clack \-l app.lisp \-e \[aq](clack:clackup)\[aq] wait
\f[R]
.fi
.SH SEE ALSO
.PP
\f[I]ros\f[](1)
\f[I]ros\f[R](1)
.SH AUTHORS
Roswell Project Team.

View file

@ -1,4 +1,4 @@
.\" Automatically generated by Pandoc 1.16.0.2
.\" Automatically generated by Pandoc 2.5
.\"
.TH "ros" "1" "" "" ""
.hy
@ -6,11 +6,11 @@
Roswell \- Common Lisp environment setup Utility
.SH Synopsis
.IP \[bu] 2
\f[B]ros\f[] [\f[B]options\f[]] \f[C][command\ [args...]\f[]
\f[B]ros\f[R] [\f[B]options\f[R]] \f[C][command [args...]\f[R]
.IP \[bu] 2
\f[B]ros\f[] [\f[B]options\f[]] \f[C][\-\-]script\ [args...]\f[]
\f[B]ros\f[R] [\f[B]options\f[R]] \f[C][\-\-]script [args...]\f[R]
.IP \[bu] 2
\f[B]ros\f[] [\f[B]options\f[]] < script.ros
\f[B]ros\f[R] [\f[B]options\f[R]] < script.ros
.SH Description
.PP
Roswell is a command line tool for installing and managing Common Lisp
@ -20,7 +20,7 @@ ROSWELL\-SCRIPTS written in Common Lisp.
.PP
Currently roswell supports sbcl, ccl, clisp and ecl as its supported
lisp implementations.
For further details see \f[I]ros\-install\f[](1).
For further details see \f[I]ros\-install\f[R](1).
.PP
Scripts installed by roswell will be system wide if appropriate
directory is included in PATH.
@ -29,241 +29,157 @@ directory is included in PATH.
In an order of utility/frequency.
.TP
.B install
Install a given implementation (e.g.
sbcl, ccl) or a system (e.g.
alexandria) for roswell environment.
See \f[I]ros\-install\f[](1).
.RS
.RE
Install a given implementation (e.g.\ sbcl, ccl) or a system
(e.g.\ alexandria) for roswell environment.
See \f[I]ros\-install\f[R](1).
.TP
.B init [name[.ros]]
Create a new ros script.
\f[C]\&.ros\f[] is optional, and is added automaticaly.
See \f[I]ros\-init\f[].
.RS
.RE
\f[C].ros\f[R] is optional, and is added automaticaly.
See \f[I]ros\-init\f[R].
.TP
.B dump [executable|output] [script]
Dump an image of the script for the faster startup or to make an
executable.
See \f[I]ros\-dump\f[].
.RS
.RE
See \f[I]ros\-dump\f[R].
.TP
.B build
Make an executable from the script.
See \f[I]ros\-build\f[].
.RS
.RE
See \f[I]ros\-build\f[R].
.TP
.B run
Initiate REPL.
See \f[I]ros\-run\f[].
.RS
.RE
See \f[I]ros\-run\f[R].
.TP
.B use
Change the default implementation used by roswell.
See \f[I]ros\-use\f[].
.RS
.RE
See \f[I]ros\-use\f[R].
.TP
.B list
List the various informations.
See \f[I]ros\-list\f[].
.RS
.RE
See \f[I]ros\-list\f[R].
.TP
.B config
Get and set the options.
See \f[I]ros\-config\f[].
.RS
.RE
See \f[I]ros\-config\f[R].
.TP
.B setup
Run the initial setup.
See \f[I]ros\-setup\f[].
.RS
.RE
See \f[I]ros\-setup\f[R].
.TP
.B emacs
Launch emacs with slime.
See \f[I]ros\-emacs\f[].
.RS
.RE
See \f[I]ros\-emacs\f[R].
.TP
.B wait
Wait forever, used for daemonizing the script.
See \f[I]ros\-wait\f[].
.RS
.RE
See \f[I]ros\-wait\f[R].
.TP
.B delete
Delete an installed implementation.
See \f[I]ros\-delete\f[].
.RS
.RE
See \f[I]ros\-delete\f[R].
.TP
.B version
Show the roswell version information.
See \f[I]ros\-version\f[].
.RS
.RE
See \f[I]ros\-version\f[R].
.TP
.B help
Show the subcommand help.
.RS
.RE
.SH Options
.PP
Options are processed in left\-to\-right order.
.TP
.B \-w CODE \-\-wrap CODE
Run the script with a shell wrapper CODE, e.g.
rlwrap
.RS
.RE
.B \-w CODE \[en]wrap CODE
Run the script with a shell wrapper CODE, e.g.\ rlwrap
.TP
.B \-m IMAGE \-\-image IMAGE
.B \-m IMAGE \[en]image IMAGE
Continue from Lisp image IMAGE
.RS
.RE
.TP
.B \-L NAME \-\-lisp NAME
Run the script with a lisp impl NAME[/VERSION] if present, e.g.
sbcl\-bin, sbcl/1.2.16.
.B \-L NAME \[en]lisp NAME
Run the script with a lisp impl NAME[/VERSION] if present,
e.g.\ sbcl\-bin, sbcl/1.2.16.
Fails otherwise.
.RS
.RE
.TP
.B \-l FILE \-\-load FILE
.B \-l FILE \[en]load FILE
Load a lisp file FILE while building
.RS
.RE
.TP
.B \-S X \-\-source\-registry X
.B \-S X \[en]source\-registry X
Override the source registry of asdf systems.
.RS
.RE
.TP
.B \-s SYSTEM \-\-system SYSTEM
.B \-s SYSTEM \[en]system SYSTEM
Load the asdf SYSTEM while building.
.RS
.RE
.TP
.B \-\-load\-system SYSTEM
.B \[en]load\-system SYSTEM
Same as above (buildapp compatibility)
.RS
.RE
.TP
.B \-p PACKAGE \-\-package PACKAGE
.B \-p PACKAGE \[en]package PACKAGE
Change the current package to PACKAGE
.RS
.RE
.TP
.B \-sp SP \-\-system\-package SP
.B \-sp SP \[en]system\-package SP
Combination of \-s SP and \-p SP
.RS
.RE
.TP
.B \-e FORM \-\-eval FORM
.B \-e FORM \[en]eval FORM
Evaluate FORM while building
.RS
.RE
.TP
.B \-\-require MODULE
.B \[en]require MODULE
require MODULE while building
.RS
.RE
.TP
.B \-q \-\-quit
.B \-q \[en]quit
quit lisp here
.RS
.RE
.TP
.B \-r FUNC \-\-restart FUNC
.B \-r FUNC \[en]restart FUNC
the build image restarts from calling FUNC
.RS
.RE
.TP
.B \-E FUNC \-\-entry FUNC
.B \-E FUNC \[en]entry FUNC
the build image restarts from calling (FUNC argv).
.RS
.RE
.TP
.B \-i FORM \-\-init FORM
.B \-i FORM \[en]init FORM
evaluate FORM after the restart.
.RS
.RE
.TP
.B \-ip FORM \-\-print FORM
.B \-ip FORM \[en]print FORM
evaluate and princ FORM after the restart
.RS
.RE
.TP
.B \-iw FORM \-\-write FORM
.B \-iw FORM \[en]write FORM
evaluate and write FORM after the restart
.RS
.RE
.TP
.B \-F FORM \-\-final FORM
.B \-F FORM \[en]final FORM
evaluate FORM before dumping the IMAGE
.RS
.RE
.TP
.B \-R \-\-rc
try to read /etc/rosrc, ~/.roswell/init.lisp
.RS
.RE
.B \-R \[en]rc
try to read /etc/rosrc, \[ti]/.roswell/init.lisp
.TP
.B +R \-\-no\-rc
skip /etc/rosrc, ~/.roswell/init.lisp
.RS
.RE
.B +R \[en]no\-rc
skip /etc/rosrc, \[ti]/.roswell/init.lisp
.TP
.B \-Q \-\-quicklisp
.B \-Q \[en]quicklisp
load quicklisp (default)
.RS
.RE
.TP
.B +Q \-\-no\-quicklisp
.B +Q \[en]no\-quicklisp
do not load quicklisp
.RS
.RE
.TP
.B \-v \-\-verbose
.B \-v \[en]verbose
be quite verbose while building
.RS
.RE
.TP
.B \-\-quiet
.B \[en]quiet
suppress output while building (default)
.RS
.RE
.TP
.B \-\-test
.B \[en]test
for test purpose
.RS
.RE
.TP
.B dynamic\-space\-size=[size in MB]
SBCL specific.
The argument is passed to SBCL by \f[C]\-\-dynamic\-space\-size\f[]
.RS
.RE
The argument is passed to SBCL by \f[C]\-\-dynamic\-space\-size\f[R]
.SH Environmental Variables
.TP
.B ROSWELL_HOME
Specifies the home directory of roswell, defaulted to $HOME on Unix
platform .
.RS
.RE
.SH Bugs
.PP
Check out issues list (https://github.com/roswell/roswell/issues)
.SH SEE ALSO
.PP
\f[I]sbcl\f[](1) \f[I]ros\-dump\f[](1) \f[I]ros\-init\f[](1)
\f[I]ros\-install\f[](1) \f[I]ros\-list\f[](1) \f[I]ros\-setup\f[](1)
\f[I]sbcl\f[R](1) \f[I]ros\-dump\f[R](1) \f[I]ros\-init\f[R](1)
\f[I]ros\-install\f[R](1) \f[I]ros\-list\f[R](1) \f[I]ros\-setup\f[R](1)
.SH AUTHORS
Roswell Project Team.

View file

@ -1,6 +1,12 @@
% ros-asdf(1)
% Roswell Project Team
% January 2022
# NAME
ros-asdf -
# synopsis
# SYNOPSIS
**ros [options] asdf [subcommand]**
@ -10,9 +16,9 @@ ros-asdf -
<!-- : description. end with a period. -->
# description
# DESCRIPTION
**ros asdf** install and manage ASDF(https://common-lisp.net/project/asdf/)
**ros asdf** install and manage ASDF(https://common-lisp.net/project/asdf/).
<!-- # options -->
<!-- -->

35
documents/ros-client.md Normal file
View file

@ -0,0 +1,35 @@
ros-client - one-shot connect to remote repl.
# synopsis
**ros client** protocol [options for the protocol ...] ...
<!-- # subcommands -->
<!-- somecommand -->
<!-- : description. end with a period. -->
# description
`ros-client` send message to lisp server and wait for message sent back.
# swank protocol options
`--port port`
: set server `port` to connect. default port 4005.
`--interface interface`
: interface for connect. default is `localhost`.
-e FORM --eval FORM
: Evaluate FORM while building
<!-- # options -->
<!-- -->
<!-- # Environmental Variables -->
# SEE ALSO
_ros_(1) _ros-serve_(1)

31
documents/ros-serve.md Normal file
View file

@ -0,0 +1,31 @@
ros-serve - start lisp server
# Synopsis
**ros [options for roswell ... ] serve** protocol [options for the protocol ...] ...
<!-- # subcommands -->
<!-- somecommand -->
<!-- : description. end with a period. -->
# description
`ros-serve` start lisp and wait for clients to connect to the lisp.
# swank protocol options
`--port port`
: Listen port would be `port` instead of the default port 4005.
`--interface interface`
: limit interface for listen. default is `localhost` so there would be no limitation.
<!-- # options -->
<!-- -->
<!-- # Environmental Variables -->
# SEE ALSO
_ros_(1) _ros-client_(1)

View file

@ -34,6 +34,10 @@ edit [template-name] [files ...]
: Edit content of files in template using `/usr/bin/editor`.
path [template-name] [files ...]
: Show native path of files in template.
rm [template-name] [files ...]
: Remove file form current template.

View file

@ -28,9 +28,15 @@
for line = (read-line in)
when (ignore-errors (string= line "exec" :end1 4))
do (setf opts (parse-argv line))))
(let ((impl (or (ros:opt "*lisp")
(ros:opt "default.lisp"))))
(roswell:roswell `(,@(when (roswell:verbose) '("-v"))
,@impl-argv
,opts "-L" ,(or (ros:opt "*lisp")
(ros:opt "default.lisp"))
,@(cond ((find impl '("sbcl" "sbcl-bin" "sbcl32" "sbcl-head") :test 'equal)
(append (if (ros:opt "dynamic-space-size")
(list (format nil "dynamic-space-size=~A" (ros:opt "dynamic-space-size"))))
(if (ros:opt "control-stack-size")
(list (format nil "control-stack-size=~A" (ros:opt "control-stack-size")))))))
,opts "-L" ,impl
"dump" ,@dump-argv "executable" ,(first argv))
:interactive nil)))
:interactive nil))))

52
lisp/client-swank.lisp Normal file
View file

@ -0,0 +1,52 @@
(roswell:include "util")
(defpackage :roswell.client.swank
(:use :cl :roswell.util))
(in-package :roswell.client.swank)
(ql:quickload "swank-protocol" :silent t)
(defun swank-wait (connection)
(loop for msg = (swank-protocol:read-message connection)
do (cond ((find (first msg) '(:indentation-update :return :presentation-end)) :ignore)
((eql (first msg) :new-package)
(setf (swank-protocol:connection-package connection) (second msg)))
((eql (first msg) :presentation-start)
(format *error-output* "=> ")
(force-output *error-output*))
((eql (first msg) :debug-activate)
(roswell:quit 1))
((eql (first msg) :write-string)
(format t "~A" (second msg))
(force-output))
(t (print msg *error-output*)))
until (find (first msg) '(:return :debug-activate))))
(defun swank (&rest r)
(let ((port 4005)
(interface "localhost")
(eval))
(loop for (var val) on (cdr r) by #'cddr
do (cond ((equal var "--port")
(setf port (parse-integer val)))
((equal var "--interface")
(setf interface val))
((or (equal var "--eval")
(equal var "-e"))
(push (cons :eval val) eval))))
(let* ((connection (swank-protocol:make-connection
interface
port)))
(swank-protocol:connect connection)
(swank-protocol:request-swank-require
connection
'(:swank-presentations :swank-repl))
(swank-wait connection)
(swank-protocol:request-init-presentations connection)
(swank-wait connection)
(swank-protocol:request-create-repl connection)
(swank-wait connection)
(loop for i in (nreverse eval)
do (swank-protocol:request-listener-eval
connection
(case (first i)
(:eval (rest i))))
(swank-wait connection)))))

26
lisp/client.ros Normal file
View file

@ -0,0 +1,26 @@
#!/bin/sh
#|-*- mode:lisp -*-|#
#|
exec ros +R +Q +A -m roswell -N roswell -- $0 "$@"
|#
(progn ;;init forms
(ros:ensure-asdf)
#+quicklisp(ql:quickload '() :silent t)
(roswell:include '("util-main" "system"))
)
(defpackage :ros.script.client.3837302398
(:use :cl :roswell.util :roswell.util.main))
(in-package :ros.script.client.3837302398)
(defmacro preload-client-subsystems ()
`(progn ,@(loop for s in (directory (merge-pathnames "client-*.lisp" (ros:opt "lispdir")))
collect `(system ,(pathname-name s)))))
#+nil(preload-client-subsystems)
(defun main (&rest argv)
(module-main argv
:default "default"
:usage "default")
)
;;; vim: set ft=lisp lisp:

View file

@ -126,10 +126,14 @@ IR1 (deftransform), IR2 (VOP) information in the infodb."
(setf (sb-impl::package-%shadowing-symbols package) nil)
(format t ".")
(setf (sb-impl::package-internal-symbols package)
(sb-impl::make-package-hashtable 0))
(if (fboundp 'sb-impl::make-symbol-table)
(sb-impl::make-symbol-table 0)
(sb-impl::make-package-hashtable 0)))
(format t ".")
(setf (sb-impl::package-external-symbols package)
(sb-impl::make-package-hashtable 0))
(if (fboundp 'sb-impl::make-symbol-table)
(sb-impl::make-symbol-table 0)
(sb-impl::make-package-hashtable 0)))
(format t ".")
(setf (sb-impl::package-tables package) #())
(format t ".")

View file

@ -33,33 +33,44 @@
(defun roswell-installed-system-name (system-name)
;; should return repo part of system-name.
;; "user//repo" "user//repo/branch" "git://bra/bra/bra/repo.git" "github://user/repo"
(when (find "" (split-sequence #\/ system-name) :test 'equal) ;; found "//"
(if (find #\: system-name)
;; "user:repo[:branch or tag][/subsystem/name]" "git://bra/bra/bra/repo.git" "github://user/repo"
(let ((split (split-sequence #\: system-name)))
(when (rest split) ;; found ":"
(if (ignore-errors (and (eql (aref (second split) 0) #\/)
(eql (aref (second split) 1) #\/)))
(values nil "not implemented yet") ;; TBD
(second (remove "" (split-sequence #\/ system-name) :test 'equal)))))
(let* ((str (first (last split)))
(pos (position #\/ str))
(subsystem (if pos
(prog1
(subseq str pos)
(setf (first (last split)) (subseq str 0 pos)))
"")))
(values (and (second split)
(not (zerop (length (second split))))
(format nil "~A~A" (second split) subsystem))
(lambda (system-name)
(roswell:roswell `("install" ,(format nil "~{~A~^/~}" split)
)))))))))
(defun roswell-installable-searcher (system-name)
(let ((name (roswell-installed-system-name system-name))
pname)
(multiple-value-bind (name func)
(roswell-installed-system-name system-name)
(and
name
(not (when (setf pname (read-call "asdf/find-system::primary-system-name" system-name))
(asdf:find-system pname nil)))
(prog1
(or (quicklisp-client:local-projects-searcher name)
(unless (find system-name (loop for ar = (ros:getenv "ROSINSTALL") then (subseq ar (1+ p))
for p = (position #\, ar)
for arg = (if p (subseq ar 0 p) ar)
collect arg
while p)
:test 'equal)
(roswell:roswell `("install" ,system-name))
(quicklisp-client:register-local-projects)
(quicklisp-client:local-projects-searcher name))
(return-from roswell-installable-searcher)) ;;can't find.
(eval `(asdf:defsystem ,system-name :depends-on (,name))))
(asdf:find-system system-name))))
(not (equal name system-name))
(let ((result
(or (ignore-errors (asdf:find-system name))
(progn
(funcall func system-name)
(local-project-build-hash :rebuild t)
(asdf:find-system name))
(return-from roswell-installable-searcher)))) ;;can't find.
(when result
(let ((*load-pathname* nil))
(eval `(asdf:defsystem ,system-name
:depends-on (,name)))))
result))))
(defun local-project-enum (path)
(let ((sub (remove-if (lambda (x)

View file

@ -5,17 +5,30 @@ exec ros -Q -N roswell -- $0 "$@"
|#
(progn ;;init forms
(ros:ensure-asdf)
#+quicklisp
(progn
(unless (ql:where-is-system :lem)
(roswell:roswell '("git" "clone" "https://github.com/cxxxr/lem.git"))
(roswell.util:read-call "roswell.util:local-project-build-hash" :rebuild t))
(ql:quickload '("swank" "lem" "lem-lisp-syntax") :silent t)))
#+sbcl (require "sb-introspect")
#+quicklisp (ql:quickload '("cl-indentify") :silent t))
(defpackage :ros.script.fmt.3707812168
(:use :cl))
(in-package :ros.script.fmt.3707812168)
(defun function-lambda-list (fn)
"Portably retrieve a function's lambda list."
(ignore-errors
#+sbcl
(funcall (find-symbol "FUNCTION-LAMBDA-LIST" "SB-INTROSPECT") fn)
#-sbcl nil))
(defun register-macro-templates ()
"Auto-detect macros with &body and register cl-indentify templates."
(do-all-symbols (sym)
(when (macro-function sym)
(let* ((arglist (function-lambda-list (macro-function sym)))
(body-pos (position '&body arglist)))
(when body-pos
(setf (indentify:indent-template sym)
`(:style :call :count ,body-pos)))))))
(defun system (path)
(let ((* (when (and (probe-file path)
(equal (pathname-type path) "asd"))
@ -37,15 +50,39 @@ exec ros -Q -N roswell -- $0 "$@"
(list c)))))
(when *
(ql:quickload * :silent (not (ros:verbose)))
(lem-lisp-syntax.indent:indentation-update)
(register-macro-templates)
(r (asdf:find-system *))))))
(defun register-standard-templates ()
"Override templates to match Lem/Emacs/SLIME indentation."
;; if: (&rest nil) in Lem - all args aligned with first arg
(setf (indentify:indent-template 'if) '(:count 3))
;; case/typecase: (4 &rest (&whole 2 &rest 1)) - clause body at paren+1
(dolist (sym '(case ccase ecase typecase ctypecase etypecase))
(setf (indentify:indent-template sym)
'(:count 1 :sub (nil nil (:style :list)))))
;; cond: (&rest (&whole 2 &rest 1)) - clause body at paren+1
(setf (indentify:indent-template 'cond)
'(:count 0 :sub (nil (:style :list)))))
(defun format-file (file)
(let ((result (with-output-to-string (out)
(with-open-file (in file)
(indentify:indentify in out)))))
(with-open-file (out file :direction :output :if-exists :supersede)
(with-input-from-string (in result)
(loop for line = (read-line in nil)
while line
do (write-string (string-right-trim '(#\Space #\Tab) line) out)
(terpri out))))))
(defun main (&rest argv)
"go fmt like something"
(indentify:load-default-templates)
(register-standard-templates)
(dolist (arg (if argv
(prog1 (loop for arg in argv
(loop for arg in argv
append (or (system arg) (list arg)))
(lem-lisp-syntax:indentation-update))
(ignore-errors
(let* ((name (first (last (pathname-directory *default-pathname-defaults*))))
(path (probe-file (make-pathname :name name :type "asd"))))
@ -53,18 +90,6 @@ exec ros -Q -N roswell -- $0 "$@"
(append (directory "*.lisp")
(directory "*.ros")))))))
(if (probe-file arg)
(let ((buffer (lem-base:find-file-buffer arg)))
(setf (lem-base:buffer-syntax-table buffer)
lem-lisp-syntax:*syntax-table*)
(setf (lem-base:variable-value 'lem-base:calc-indent-function :buffer buffer)
'lem-lisp-syntax:calc-indent)
(lem-base:indent-region (lem-base:buffer-start-point buffer)
(lem-base:buffer-end-point buffer))
(loop with regexp = "[ ]+$" ;; remove trailing spaces.
for start = (lem-base:search-forward-regexp (lem-base:copy-point (lem-base:buffer-start-point buffer)) regexp)
while start
for end = (lem-base:search-backward-regexp (lem-base:copy-point start) regexp)
do (lem-base:delete-between-points start end))
(lem-base:write-to-file buffer (lem-base:buffer-filename buffer)))
(format-file arg)
(format *error-output* "~A does not exist" arg))))
;;; vim: set ft=lisp lisp:

View file

@ -17,7 +17,7 @@
(mapcar #'usage
'("Usage:"
""
"To install a new Lisp implementaion:"
"To install a new Lisp implementation:"
" ~A install impl [options]"
"or a system from the GitHub:"
" ~A install fukamachi/prove/v2.0.0 [repository... ]"
@ -30,6 +30,7 @@
""
"For more details on impl specific options, type:"
" ~A help install impl"
"e.g.: ~A help install sbcl"
""
""
"Candidates impls for installation are:")))

View file

@ -1,3 +1,4 @@
;; -*- lexical-binding: nil; -*-
(defun roswell-configdir ()
(substring (shell-command-to-string "ros roswell-internal-use version confdir") 0 -1))

View file

@ -160,7 +160,8 @@ have the latest asdf, and this file has a workaround for this.
(ext:run-shell-command (format nil "~{~A~^ ~}" args))))))
(defun exec (args)
#+(and unix sbcl)
#+(and unix sbcl
(not haiku))
(execvp (first args) args)
#+(and unix ccl)
(ignore-errors
@ -174,8 +175,8 @@ have the latest asdf, and this file has a workaround for this.
(cond
(is-quicklisp-already-available
(unless (equal (opt "quicklisp")
(namestring (symbol-value (read-from-string "ql:*quicklisp-home*"))))
(unless (equal (ignore-errors (truename (pathname (opt "quicklisp"))))
(ignore-errors (truename (symbol-value (read-from-string "ql:*quicklisp-home*")))))
(setf *local-project-directories*
(copy-list
(symbol-value (read-from-string "ql:*local-project-directories*")))))
@ -308,13 +309,25 @@ As a hacky side effect, files with the same name as PROVIDE is not loaded.
(or *version-cache*
(setf *version-cache* (roswell '("roswell-internal-use" "version") :string t)))))
(defun implementation-version ()
"cut off after third? dot from lisp-implementation-version"
(let ((version (lisp-implementation-version)))
(loop with j = 0
for i from 0 to (1- (length version))
when (eql (aref version i) #\.)
do (incf j)
(when (= j 3)
(return-from implementation-version (subseq version 0 i))))
version))
#+sbcl
(when (ignore-errors (string-equal (opt "impl") "sbcl-bin" :end1 8))
(flet ((source (version)
(let ((path (merge-pathnames (format nil "src/sbcl-~A/" version) (opt "homedir"))))
(when (probe-file path)
(sb-ext:set-sbcl-source-location path)))))
(or (source (lisp-implementation-version))
(or (source (implementation-version))
(source "git"))))
(defun source-registry (arg &rest rest)
@ -433,7 +446,8 @@ As a hacky side effect, files with the same name as PROVIDE is not loaded.
(with-open-file (in arg)
(body in)))
(*latest-system* (apply 'hook (cons arg *argv*)))
(t (format t "script ~S does not exist~%" arg)))))
(t (format t "script ~S does not exist~%" arg)
(quit 1)))))
(defun stdin (arg &rest rest)
(declare (ignorable arg rest))

View file

@ -9,8 +9,21 @@
(defvar *msys2-arch*)
(defvar *msys2-bits*)
(defun msys2-get-release (version)
"
In the new GitHub releases, the release name is a date with dashes
and the version is a date without.
"
(if (equal (length version) 8)
(format nil "~A-~A-~A"
(subseq version 0 4)
(subseq version 4 6)
(subseq version 6 8))
version))
(defun msys2-get-version ()
'("20180531"))
'("20230127"))
;;sha1 "309f604a165179d50fbe4131cf87bd160769f974"
;;(ironclad:byte-array-to-hex-string (ironclad:digest-file :sha1 path))
@ -33,9 +46,12 @@
(when (or (not (probe-file path))
(opt "download.force"))
(download
(format nil "~Amsys2/Base/~A/msys2-base-~A-~A.tar.xz"
(format nil "~A~A/msys2-base-~A-~A.tar.xz"
(msys2-uri)
*msys2-arch* *msys2-arch* (getf argv :version))
(msys2-get-release
(getf argv :version))
*msys2-arch*
(getf argv :version))
path))
(format t " done.~%")
(expand path
@ -67,7 +83,6 @@
"make zlib-devel"))
:output t
:error-output t))
(uiop/run-program:run-program
`(,(uiop:native-namestring (merge-pathnames "autorebase.bat" msys)))
:output t

View file

@ -11,10 +11,10 @@
(let ((file (merge-pathnames "tmp/abcl-bin.html" (homedir))))
(format *error-output* "Checking version to install....~%")
(download (abcl-bin-uri) file)
(loop for a in (plump:get-elements-by-tag-name
(loop for a in (get-elements-by-tag-name
(plump:parse file) "a")
for x = (string-right-trim "/" (plump:get-attribute a "href"))
when (digit-char-p (aref x 0))
when (ignore-errors (digit-char-p (aref x 0)))
collect x)))))
(defun abcl-bin-impl ()

View file

@ -13,21 +13,45 @@
(version (getf argv :version)))
(let ((os (intern uname :keyword))
(machine (intern uname-m :keyword)))
(cond ((find version '("10.1express" "100express") :test 'equal)
(cond ((find version '("11.0express"
"10.1express")
:test 'equal)
(format nil "~@{~A~}"
(allegro-uri) "ftp/pub/acl" version "/"
(case os (:|darwin| "macosx") (t os))
(if (eql os :|windows|) ""
(case machine (:|x86| 86) (:|x86-64| 86)))
(ecase os
(:|linux| (ecase machine
(:|x86-64| "linuxamd64.64")
(:|arm64| "linuxarm64")
(:|x86| "linux86")))
(:|darwin| (case machine
(:|arm64| "macarm64.64")
(:|x86-64| "macosx86-64.64")))
(:|windows| os) ;; 32bit only
(:|freebsd| os)) ;; 32bit only
"/acl" version
(case os (:|linux| "-linux") (:|darwin| "-macosx") (:|windows| "") (t os))
"-" (case machine (:|x86-64| "x86") (t machine))
(case os
(:|linux| (cond ((equal "10.1express" version) ".tbz2")
((equal "100express" version) ".bz2")))
(:|darwin| ".dmg")
(:|windows| ".exe"))))
((equal "101b" version)))))
(ecase os
(:|linux| (format nil "~@{~A~}"
"-linux-"
(ecase machine
(:|x86-64| "x64")
(:|arm64| "aarch64")
(:|x86| "x86"))
(cond
((equal "100express" version) ".bz2")
(t ".tbz2"))))
(:|darwin| (format nil "~@{~A~}"
(if (equal version "10.1express")
"-macosx-"
"-macos-")
(ecase machine
(:|x86-64| "x64.dmg")
(:|arm64| "arm64.dmg"))))
(:|windows| "-x86.exe")
(:|freebsd| (format nil "~@{~A~}"
"-freebsd-"
(ecase machine
(:|x86-64| "x86.tbz2")
(:|x86| "x86.tbz2"))))))))))
(defun allegro-argv-parse (argv)
(format *error-output* "~&Installing allegro/~A...~%" (getf argv :version))
@ -54,7 +78,7 @@
(uiop:run-program
(format nil "hdiutil attach ~A | awk -F '\t' 'END{print $NF}'" (opt "download.archive"))
:output :string))))
(uiop:run-program (format nil "cp -r \"~A/AllegroCLexpress.app/Contents/Resources/\" \"~A\""
(uiop:run-program (format nil "cp -r \"~A/AllegroCL64express.app/Contents/Resources/\" \"~A\""
mount-dir
(ensure-directories-exist (merge-pathnames (format nil "~A/" (opt "as")) impls))))
(uiop:run-program (format nil "hdiutil detach \"~A\"" mount-dir))))
@ -64,7 +88,9 @@
(uiop/filesystem:delete-directory-tree
path :validate t))
(ql-impl-util:rename-directory
(merge-pathnames (format nil "acl~A/" (getf argv :version)) impls)
(first (loop for file in (directory (merge-pathnames (format nil "acl~A*/" (getf argv :version)) impls))
when (probe-file file)
collect it))
(merge-pathnames (format nil "~A/" (opt "as")) impls))))
(cons t argv)))

View file

@ -32,7 +32,7 @@
(let* ((src (merge-pathnames (format nil "asdf-~A/" version) src))
(cmd (list (sh) "-lc" (format nil "cd ~S;~A"
(#+win32 mingw-namestring #-win32 princ-to-string src)
"make"))))
(make)))))
(uiop/os:chdir src)
(format t "~&chdir ~A~%" src)
(uiop/run-program:run-program cmd :output t :ignore-error-status nil)

View file

@ -0,0 +1,70 @@
(roswell:include "util-install-quicklisp")
(defpackage :roswell.install.clasp-bin
(:use :cl :roswell.install :roswell.util :roswell.locations))
(in-package :roswell.install.clasp-bin)
(defun clasp-bin-get-version ()
(format *error-output* "Checking version to install...~%")
(cddr (github-version (clasp-git-version-uri)
"clasp"
(lambda (href) (subseq href (1+ (position #\/ href :from-end t)))))))
(defun clasp-bin-argv-parse (argv)
(format *error-output* "~&Installing clasp-bin/~A...~%" (getf argv :version))
(when (position "--without-install" (getf argv :argv) :test 'equal)
(set-opt "without-install" t))
(cons t argv))
(defun clasp-bin-download (argv)
(let* ((uname (uname))
(version (getf argv :version))
(name (format nil "~@{~A~}" "clasp-" version "-x86-64-" uname)))
(set-opt "as" version)
(set-opt "download.uri" (or (opt "download.uri")
(format nil "~@{~A~}" (clasp-bin-uri)
version "/" name "-binary" ".tar.gz")))
(set-opt "download.archive" (let ((pos (position #\/ (opt "download.uri") :from-end t)))
(when pos
(merge-pathnames (format nil "archives/~A" (subseq (opt "download.uri") (1+ pos))) (homedir)))))
`((,(opt "download.archive") ,(opt "download.uri")))))
(defun clasp-bin-expand (argv)
(format t "~%Extracting archive:~A~%" (opt "download.archive"))
(let* ((impls (merge-pathnames (format nil "impls/~A/~A/clasp-bin/" (uname-m) (uname)) (homedir)))
(path (merge-pathnames (format nil "~A/" (opt "as")) impls))
(version (getf argv :version))
(uname (uname)))
(expand (opt "download.archive") (ensure-directories-exist impls))
(and (probe-file path)
(uiop/filesystem:delete-directory-tree
path :validate t))
(ql-impl-util:rename-directory
(merge-pathnames (format nil "~@{~A~}" "clasp-" version "-x86-64-" uname "/") impls)
(merge-pathnames (opt "as") impls)))
(cons t argv))
(defun clasp-bin-help (argv)
(format t "clasp-bin install options~%")
(flet ((fmt (param default more)
(format t "--~A~A ~A~%~5T~A~%"
(cond ((eql default t) "without-")
((null default) "with-")
(t ""))
param
(or (and (not (null default))
(not (eql default t))
default)
"")
more)))
(fmt "install" t "Download archive"))
(cons t argv))
(defun clasp-bin (type)
(case type
(:help '(clasp-bin-help))
(:install `(,(decide-version 'clasp-bin-get-version)
clasp-bin-argv-parse
,(decide-download 'clasp-bin-download)
clasp-bin-expand
setup))
(:list 'clasp-bin-get-version)))

View file

@ -0,0 +1,99 @@
(roswell:include "util-install-quicklisp")
(defpackage :roswell.install.clisp-head
(:use :cl :roswell.install :roswell.util :roswell.locations))
(in-package :roswell.install.clisp-head)
(defun clisp-head-variant ()
(let ((uname (uname))
(variant (opt "variant")))
(cond (variant variant)
((and (equal uname "linux"))
"glibc2.19")
(t "")))) ;; TBD
(defun clisp-head-get-version ()
(format *error-output* "Checking version to install....~%")
(let ((elts
(let ((file (merge-pathnames "tmp/clisp_head.tsv" (homedir))))
(download (clisp-head-version-uri) file :interval 3600)
(mapcar (lambda (x) (uiop:split-string x :separator '(#\tab)))
(uiop:read-file-lines file))))
(uname (uname))
(uname-m (uname-m))
(variant (clisp-head-variant)))
(mapcar 'third (remove-if-not (lambda (x)
(and (equal (first x) uname)
(equal (second x) uname-m)
(equal (fourth x) variant)
))
elts))))
(defun clisp-head-argv-parse (argv)
(let ((uname (uname))
(uname-m (uname-m)))
(set-opt "as" (getf argv :version))
(set-opt "prefix" (merge-pathnames (format nil "impls/~A/~A/~A/~A/" (uname-m) (uname) (getf argv :target) (opt "as")) (homedir)))
(set-opt "src" (merge-pathnames (format nil "src/clisp-~A-~A-~A~A/"
(getf argv :version)
uname-m
uname
(let ((var (clisp-head-variant)))
(if (zerop (length var))
""
(format nil "-~A" var))))
(homedir))))
(cons t argv))
(defun clisp-head-download (argv)
(set-opt "download.uri" (format nil "~@{~A~}" (clisp-head-uri) (getf argv :version)
"/clisp-"
(getf argv :version) "-"
(uname-m) "-"
(uname)
(let ((var (clisp-head-variant)))
(if (zerop (length var))
""
(format nil "-~A" var)))
"-binary"
#-win32 ".tar.bz2"
#+win32 ".msi"))
(set-opt "download.archive" (let ((pos (position #\/ (opt "download.uri") :from-end t)))
(when pos
(merge-pathnames (format nil "archives/~A" (subseq (opt "download.uri") (1+ pos))) (homedir)))))
`((,(opt "download.archive") ,(opt "download.uri"))))
#-win32
(defun clisp-head-expand (argv)
(let ((impls (merge-pathnames (format nil "impls/~A/~A/clisp-head/" (uname-m) (uname)) (homedir))))
(cond
(t
(format t "~%Extracting archive:~A~%" (opt "download.archive"))
(expand (opt "download.archive")
(ensure-directories-exist impls))))
(ql-impl-util:rename-directory
(merge-pathnames (format nil "clisp-~A-~A-~A~A/"
(opt "as")
(uname-m)
(uname)
(let ((var (clisp-head-variant)))
(if (zerop (length var))
""
(format nil "-~A" var))))
impls)
(merge-pathnames (format nil "~A/" (opt "as")) impls)))
(cons t argv))
(defun clisp-head-help (argv)
(format t "no options for clisp-head~%")
(cons t argv))
(defun clisp-head (type)
(case type
(:help '(clisp-head-help))
(:install `(,(decide-version 'clisp-head-get-version)
clisp-head-argv-parse
start
,(decide-download 'clisp-head-download)
clisp-head-expand
setup))
(:list 'clisp-head-get-version)))

View file

@ -10,10 +10,8 @@
(defun clisp-get-version ()
(let ((file (merge-pathnames "tmp/clisp.html" (homedir))))
(format *error-output* "Checking version to install....~%")
(unless (and (probe-file file)
(< (get-universal-time) (+ (* 60 60) (file-write-date file))))
(download (clisp-version-uri) file))
(loop for link in (plump:get-elements-by-tag-name (plump:parse file) "a")
(download (clisp-version-uri) file :interval (* 60 60))
(loop for link in (get-elements-by-tag-name (plump:parse file) "a")
for href = (plump:get-attribute link "href") for len = (1- (length href))
when (and (eql (aref href len) #\/)
(not (eql (aref href 0) #\/))

View file

@ -6,10 +6,8 @@
(defun cmu-bin-get-version ()
(let ((file (merge-pathnames "tmp/cmu-bin.html" (homedir))))
(format *error-output* "Checking version to install...~%")
(unless (and (probe-file file)
(< (get-universal-time) (+ (* 60 60) (file-write-date file))))
(download (format nil "~Arelease/" (cmu-bin-uri)) file))
(loop for link in (plump:get-elements-by-tag-name (plump:parse file) "a")
(download (format nil "~Arelease/" (cmu-bin-uri)) file :interval (* 60 60))
(loop for link in (get-elements-by-tag-name (plump:parse file) "a")
for href = (plump:get-attribute link "href")
for len = (length href)
when (and (digit-char-p (aref href 0))
@ -23,11 +21,31 @@
(or (cdr (assoc (uname-m) *cmu-uname-m-alist* :test 'equal))
(uname-m)))
(defun cmu-bin-archive-uri (version extra)
(let ((uname (uname))
(cmu-uname-m (cmu-uname-m)))
(defun cmu-bin-directory-uri (version)
(format nil "~@{~A~}" (cmu-bin-uri) (if (find #\- version) "snapshots/" "release/")
(substitute #\/ #\- version) "/cmucl-" version "-" cmu-uname-m "-" uname (if extra ".extra" "") ".tar.bz2")))
(substitute #\/ #\- version) "/"))
(defun cmu-bin-archive-name (version extra)
(format nil "~@{~A~}" "cmucl-" version "-" (cmu-uname-m) "-" (uname) (if extra ".extra" "")))
(defun cmu-bin-archive-type (version)
"CMUCL was published as .tar.bz2 up to 21e and as .tar.xz from 21f on,
so ask the download directory which one it has for VERSION."
(let ((file (merge-pathnames (format nil "tmp/cmu-bin-~A.html" version) (homedir)))
(name (cmu-bin-archive-name version nil)))
(or (ignore-errors
(download (cmu-bin-directory-uri version) file :interval (* 60 60))
(loop for link in (get-elements-by-tag-name (plump:parse file) "a")
for href = (plump:get-attribute link "href")
thereis (and href
(find-if (lambda (type)
(equal href (format nil "~A~A" name type)))
'(".tar.xz" ".tar.bz2")))))
".tar.bz2")))
(defun cmu-bin-archive-uri (version extra)
(format nil "~@{~A~}" (cmu-bin-directory-uri version)
(cmu-bin-archive-name version extra) (cmu-bin-archive-type version)))
(defun cmu-bin-argv-parse (argv)
(format *error-output* "~&Installing cmu-bin/~A...~%" (getf argv :version))

View file

@ -0,0 +1,95 @@
(roswell:include "util-install")
(defpackage :roswell.install.dotcl-bin
(:use :cl :roswell.install :roswell.util :roswell.locations))
(in-package :roswell.install.dotcl-bin)
(defun dotcl-bin-impl ()
(merge-pathnames (format nil "impls/~A/~A/dotcl-bin/" (uname-m) (uname)) (homedir)))
(defun dotcl-bin-rid ()
(let* ((arch (uname-m))
(os (uname))
(arch-key (cond ((equal arch "x86-64") "x64")
((equal arch "arm64") "arm64")
(t (error "dotcl-bin: unsupported arch ~A" arch))))
(os-key (cond ((equal os "linux") "linux")
((equal os "darwin") "osx")
((equal os "windows") "win")
(t (error "dotcl-bin: unsupported os ~A" os)))))
(format nil "~A-~A" os-key arch-key)))
(defvar *dotcl-bin-version-cache* nil)
(defun dotcl-bin-get-version ()
(or *dotcl-bin-version-cache*
(setf *dotcl-bin-version-cache*
(let ((file (merge-pathnames "tmp/dotcl-bin.json" (homedir))))
(format *error-output* "Checking version to install....~%")
(download "https://api.github.com/repos/dotcl/dotcl/releases" file)
(with-open-file (in file)
(loop for line = (read-line in nil nil) while line
for pos = (search "\"tag_name\"" line)
when pos
collect (let* ((q1 (position #\" line :start (+ pos 11)))
(q2 (and q1 (position #\" line :start (1+ q1)))))
(when (and q1 q2)
(let ((tag (subseq line (1+ q1) q2)))
(if (and (plusp (length tag)) (char= (aref tag 0) #\v))
(subseq tag 1)
tag))))))))))
(defun dotcl-bin-argv-parse (argv)
(set-opt "prefix" (dotcl-bin-impl))
(cons t argv))
(defun dotcl-bin-download (argv)
(let ((rid (dotcl-bin-rid))
(ver (version argv)))
(set-opt "as" ver)
(set-opt "download.uri"
(format nil "https://github.com/dotcl/dotcl/releases/download/v~A/dotcl-~A-~A.tar.bz2"
ver rid ver))
(set-opt "download.archive"
(let ((pos (position #\/ (opt "download.uri") :from-end t)))
(when pos
(merge-pathnames (format nil "archives/~A"
(subseq (opt "download.uri") (1+ pos)))
(homedir)))))
`((,(opt "download.archive") ,(opt "download.uri")))))
(defun dotcl-bin-expand (argv)
(format t "~%Extracting archive:~A~%" (opt "download.archive"))
(let ((dest (merge-pathnames (format nil "~A/" (opt "as")) (dotcl-bin-impl))))
(when (probe-file dest)
(uiop/filesystem:delete-directory-tree dest :validate t))
(ensure-directories-exist dest)
(expand (opt "download.archive") dest)
#-os-windows
(let ((apphost (merge-pathnames "runtime" dest)))
(when (probe-file apphost)
(uiop:run-program (list "chmod" "+x" (namestring apphost))
:ignore-error-status t))))
(cons t argv))
(defun dotcl-bin-script (argv)
(let* ((dotnet (which "dotnet"))
(dir (merge-pathnames (format nil "~A/" (opt "as")) (dotcl-bin-impl))))
(unless dotnet
(format *error-output* "Error: 'dotnet' (.NET SDK 10+) was not found in PATH.~%")
(format *error-output* " Install .NET SDK 10 from https://dotnet.microsoft.com/download~%")
(format *error-output* " 'ros use dotcl-bin' will fail without dotnet.~%")
(roswell:quit 1))
(install-script
(merge-pathnames "dotcl" dir)
(format nil "exec \"~Aruntime\" \"$@\"" dir))
(cons t argv)))
(defun dotcl-bin (type)
(case type
(:install `(,(decide-version 'dotcl-bin-get-version)
dotcl-bin-argv-parse
,(decide-download 'dotcl-bin-download)
dotcl-bin-expand
dotcl-bin-script
setup))
(:list 'dotcl-bin-get-version)))

View file

@ -90,7 +90,7 @@
(homedir)))
:direction :output :if-exists :append :if-does-not-exist :create)
(format out "~&--~&~A~%" (date))
(let* ((cmd (format nil "make"))
(let* ((cmd (make))
(*standard-output* (make-broadcast-stream out #+sbcl(make-instance 'count-line-stream))))
(ecl-chdir argv)
(uiop/run-program:run-program cmd :output t :ignore-error-status t)))
@ -108,7 +108,7 @@
(format out "~&--~&~A~%" (date))
(let ((*standard-output* (make-broadcast-stream
out #+sbcl(make-instance 'count-line-stream))))
(uiop/run-program:run-program "make install" :output t)))
(uiop/run-program:run-program (format nil "~A install" (make)) :output t)))
(format *error-output* "done.~%"))
(cons t argv))
@ -119,7 +119,7 @@
(*standard-output* (make-broadcast-stream
out #+sbcl(make-instance 'count-line-stream))))
(uiop/run-program:run-program
(list (sh) "-lc" (format nil "cd ~S;make clean" (namestring (uiop:getcwd))))
(list (sh) "-lc" (format nil "cd ~S;~A clean" (namestring (uiop:getcwd)) (make)))
:output t))
(format t "done.~%")
(cons t argv))

112
lisp/install-sbcl-head.lisp Normal file
View file

@ -0,0 +1,112 @@
(roswell:include "util-install-quicklisp")
(defpackage :roswell.install.sbcl-head
(:use :cl :roswell.install :roswell.util :roswell.locations))
(in-package :roswell.install.sbcl-head)
(defun sbcl-head-variant ()
(or (roswell:opt "variant")
(roswell:roswell `("roswell-internal-use" "version" "sbcl-bin-variant") :string t)))
(defun sbcl-head-get-version ()
(format *error-output* "Checking version to install....~%")
(let ((elts
(let ((file (merge-pathnames "tmp/sbcl_head.tsv" (homedir))))
(download (sbcl-head-version-uri) file :interval 3600)
(mapcar (lambda (x) (uiop:split-string x :separator '(#\tab)))
(uiop:read-file-lines file))))
(uname (uname))
(uname-m (uname-m))
(variant (sbcl-head-variant)))
(mapcar 'third (remove-if-not (lambda (x)
(and (equal (first x) uname)
(equal (second x) uname-m)
(equal (fourth x) variant)
))
elts))))
(defun sbcl-head-argv-parse (argv)
(let ((pos (position "--as" (getf argv :argv) :test 'equal))
(uname (uname))
(uname-m (uname-m)))
(set-opt "as" (or (and pos (ignore-errors (nth (1+ pos) (getf argv :argv)))
(format nil "~A-~A"
(getf argv :version)
(nth (1+ pos) (getf argv :argv))))
(getf argv :version)))
(set-opt "prefix" (merge-pathnames (format nil "impls/~A/~A/~A/~A/" (uname-m) (uname) (getf argv :target) (opt "as")) (homedir)))
(set-opt "src" (merge-pathnames (format nil "src/sbcl-~A-~A-~A~A/"
(getf argv :version)
uname-m
uname
(let ((var (sbcl-head-variant)))
(if (zerop (length var))
""
(format nil "-~A" var))))
(homedir))))
(cons t argv))
(defun sbcl-head-download (argv)
(set-opt "download.uri" (format nil "~@{~A~}" (sbcl-head-uri) (getf argv :version)
"/sbcl-"
(getf argv :version) "-"
(uname-m) "-"
(uname)
(let ((var (sbcl-head-variant)))
(if (zerop (length var))
""
(format nil "-~A" var)))
"-binary.tar.bz2"))
(set-opt "download.archive" (let ((pos (position #\/ (opt "download.uri") :from-end t)))
(when pos
(merge-pathnames (format nil "archives/~A" (subseq (opt "download.uri") (1+ pos))) (homedir)))))
`((,(opt "download.archive") ,(opt "download.uri"))))
(defun sbcl-head-expand (argv)
(let* ((h (homedir))
(v (getf argv :version)))
(cond
(t
(format t "~%Extracting archive:~A~%" (opt "download.archive"))
(expand (opt "download.archive")
(ensure-directories-exist (merge-pathnames "src/" h)))
)))
(cons t argv))
(defun sbcl-head-install (argv)
(let* ((impl-path (opt "prefix"))
(src (opt "src"))
(install-root impl-path)
(log-path (merge-pathnames (format nil "impls/log/~A-~A/install.log" (getf argv :target) (opt "as")) (homedir))))
#-delete-later(format t "~S~%" (list :sbcl-head-install :debug impl-path src log-path))
(unless (opt "archive")
(format t "~&Installing ~A/~A" (getf argv :target) (opt "as"))
(format t "~&prefix: ~s~%" impl-path)
(ensure-directories-exist impl-path)
(ensure-directories-exist log-path)
(chdir src)
(unsetenv "SBCL_HOME")
(setenv "INSTALL_ROOT" (format nil "~A" install-root))
(with-open-file (out log-path :direction :output :if-exists :append :if-does-not-exist :create)
(format out "~&--~&~A~%" (date))
(let ((*standard-output* (make-broadcast-stream
out #+sbcl(make-instance 'count-line-stream))))
(uiop/run-program:run-program
(list (sh) "-lc" (format nil "cd ~S;~A ~A"
(#+win32 mingw-namestring #-win32 princ-to-string src)
(or #-win32 (sh) "")
"./install.sh")) :output t)))
(format *error-output* "done.~%")))
(cons t argv))
(defun sbcl-head (type)
(case type
(:help '(sbcl-head-help))
(:install `(,(decide-version 'sbcl-head-get-version)
sbcl-head-argv-parse
#+win32 sbcl-msys
start
,(decide-download 'sbcl-head-download)
sbcl-head-expand
sbcl-head-install
setup))
(:list 'sbcl-head-get-version)))

View file

@ -15,10 +15,12 @@
(push ',name *locations*))))
(defuri clisp-version-uri "http://ftp.gnu.org/pub/gnu/clisp/release/")
(defuri clisp-head-version-uri "https://github.com/roswell/clisp_head/releases/download/files/clisp_head.tsv")
(defuri 7za-uri "http://sourceforge.net/projects/sevenzip/files/7-Zip/9.20/7za920.zip/download#")
(defuri allegro-uri "http://www.franz.com/")
(defuri allegro-uri "https://franz.com/")
(defuri abcl-bin-uri "https://common-lisp.net/project/armedbear/releases/")
(defuri ccl-bin-uri "https://github.com/roswell/ccl_bin/releases/download/")
(defuri clasp-bin-uri "https://github.com/roswell/clasp_bin/releases/download/")
(defuri clisp-uri "http://sourceforge.net/projects/clisp/files/clisp/")
(defuri cmu-bin-uri "https://common-lisp.net/project/cmucl/downloads/")
(defuri quicklisp-uri "http://beta.quicklisp.org/")
@ -26,14 +28,16 @@
(defuri ffcall-uri "https://github.com/roswell/libffcall/archive/")
(defuri sigsegv-uri "http://ftpmirror.gnu.org/libsigsegv/")
(defuri msys2-uri "http://kent.dl.sourceforge.net/project/")
(defuri msys2-uri "https://github.com/msys2/msys2-installer/releases/download/")
(defuri clisp-patch1-uri "https://raw.githubusercontent.com/Homebrew/homebrew/2fb8cb1a2279f80dc89900b3ebaca9e5afc90494/Library/Formula/clisp.rb")
(defuri asdf-git-version-uri "https://github.com/roswell/asdf/releases.atom")
(defuri ecl-git-version-uri "https://github.com/roswell/ecl/releases.atom")
(defuri sbcl-git-version-uri "https://github.com/sbcl/sbcl/releases.atom")
(defuri sbcl-head-version-uri "https://github.com/roswell/sbcl_head/releases/download/files/sbcl-bin_uri.tsv")
(defuri ccl-git-version-uri "https://github.com/roswell/ccl_bin/releases.atom")
(defuri clasp-git-version-uri "https://github.com/roswell/clasp_bin/releases.atom")
(defuri slime-git-version-uri"https://github.com/slime/slime/releases.atom")
(defuri sly-git-version-uri "https://github.com/joaotavora/sly/releases.atom")
(defuri npt-git-version-uri "https://github.com/nptcl/npt/releases.atom")
@ -41,6 +45,8 @@
(defuri asdf-uri "https://github.com/roswell/asdf/archive/")
(defuri ecl-uri "https://github.com/roswell/ecl/archive/")
(defuri sbcl-uri "https://github.com/sbcl/sbcl/archive/")
(defuri sbcl-head-uri "https://github.com/roswell/sbcl_head/releases/download/")
(defuri clisp-head-uri "https://github.com/roswell/clisp_head/releases/download/")
(defuri npt-uri "https://github.com/nptcl/npt/archive/")
(defuri sbcl-bin-version-uri)
@ -48,6 +54,7 @@
(export
(defvar *allegro-agreement-uri*
'(("10.1express" . #1="http://franz.com/ftp/pub/legal/ACL-Express-20150812.pdf")
'(("11.0express" . "https://franz.com/ftp/pub/legal/ACL-Express-20170301.pdf")
("10.1express" . #1="https://franz.com/ftp/pub/legal/ACL-Express-20170301.pdf")
("100express" . #1#)
("101b" . "http://franz.com/products/licensing/FSLA10.1.beta.pdf"))))

View file

@ -17,6 +17,7 @@ exec ros -Q -m roswell -N roswell -- $0 "$@"
("add" . template-add)
("cat" . template-cat)
("edit" . template-edit)
("path" . template-native-path)
("rm" . template-rm)
("delete" . template-rm)
("type" . template-type)
@ -28,12 +29,15 @@ exec ros -Q -m roswell -N roswell -- $0 "$@"
(defun template-init (names)
"Create new template"
(if names
(let* ((name (first names))
(path (template-asd-path name)))
(when (probe-file path)
(format *error-output* "already exist ~A~%" path)
(ros:quit 0))
(template-create name)))
(ros:quit 1))
(template-create name)
(format *error-output* "template written ~A~%" path))
(format *error-output* "template init need template name.~%")))
(defun template-deinit (names)
"Remove a template"
@ -76,7 +80,7 @@ exec ros -Q -m roswell -N roswell -- $0 "$@"
(format *error-output* "current default is ~S~%~%candidates:~%~{~A~%~}"
(template-default)
(templates-list :name t))
(ros:quit 1))
(ros:quit 0))
(let ((path (templates-list :filter name)))
(unless path
(format *error-output* "template: ~S not found.~%" name)
@ -121,6 +125,18 @@ exec ros -Q -m roswell -N roswell -- $0 "$@"
,@(loop for i in _
collect (uiop:native-namestring (template-file-path name i)))))))
(defun template-native-path (_)
"show native path in the template"
(let ((name (template-default)))
(when (equal name "default")
(setf name (pop _)))
(unless (and (templates-list :filter name)
(not (equal name "default")))
(format *error-output* "template ~S does not contain files.~%" name)
(ros:quit 1))
(loop for i in _
do (format t "~A~%" (uiop:native-namestring (template-file-path name i))))))
(defun template-rm (_)
"Remove (delete) files from template."
(let ((name (template-default)))

View file

@ -26,10 +26,17 @@ exec ros -Q -m roswell -N roswell -- $0 "$@"
;; update systems
(dolist (alias argv)
(loop
with path = (ignore-errors
with path = (or
(and (find #\/ alias)
(let ((dir (merge-pathnames
(format nil "local-projects/~A/" alias)
(roswell.util:homedir))))
(when (probe-file (merge-pathnames ".git/" dir))
dir)))
(ignore-errors
(make-pathname
:type nil :name nil
:defaults (asdf:system-source-file (asdf:find-system alias))))
:defaults (asdf:system-source-file (asdf:find-system alias)))))
for f in *update-functions*
for r = (and path (funcall f path))
when r do (roswell:roswell `("install" ,alias))

View file

@ -5,6 +5,18 @@
(defvar *build-hook* nil)
(defun get-elements-by-tag-name (node tag)
(let* ((current-version
(ignore-errors
(let* ((* "plump")
(* (ql-dist:find-system *))
(* (ql-dist:dist *))
(* (ql-dist:version *)))
*)))
(new (string< "2022-07-08" current-version)))
(funcall (if new #'nreverse #'identity)
(plump:get-elements-by-tag-name node tag))))
#+sbcl
(defclass count-line-stream (sb-gray:fundamental-character-output-stream)
((base :initarg :base
@ -162,7 +174,8 @@
*error-output* (make-broadcast-stream)
*trace-output*(make-broadcast-stream)))
(if (ql:where-is-system system)
(progn (ql:quickload system)
(progn (asdf:load-asd (asdf:system-source-file system))
(ql:quickload system)
(ignore-errors(asdf:oos 'asdf:load-op system :force t)))
(ql:quickload system)))
(format *error-output* "~&[~a/3] Processing build-hook.." (incf step))
@ -209,12 +222,14 @@
(system "install-abcl-bin")
(system "install-allegro")
(system "install-ccl-bin")
(system "install-clasp-bin")
(system "install-clasp")
(system "install-clisp")
(system "install-cmu-bin")
(system "install-ecl")
(system "install-mkcl")
(system "install-sbcl-bin")
(system "install-sbcl-head")
(system "install-sbcl")
(system "install-sbcl-source")
(system "install+7zip"(:depends-on (:zip)))

View file

@ -5,7 +5,8 @@
:install-system-script :install-impl-if-probed :install-script-if-probed
:install-system-if-probed :mingw-namestring :install-github :*checkout-default*
:install :decide-version :decide-download :require-system-package
:start :setup :date :github-version :version :install-script :count-line-stream))
:start :setup :date :github-version :version :install-script :count-line-stream
:get-elements-by-tag-name))
(in-package :roswell.install)
(defvar *ros-path* nil)
@ -74,12 +75,10 @@ To differentiate it from the system with the same name in quicklisp, the path sh
(defun github-version (uri project filter)
(let ((elts
(let ((file (merge-pathnames (format nil "tmp/~A.html" project) (homedir))))
(unless (and (probe-file file)
(< (get-universal-time) (+ (* 60 60) (file-write-date file))))
(download uri file))
(download uri file :interval (* 60 60))
(read-call "plump:parse" file))))
(nreverse
(loop for link in (read-call "plump:get-elements-by-tag-name" elts "link")
(loop for link in (read-call "roswell.install:get-elements-by-tag-name" elts "link")
for href = (read-call "plump:get-attribute" link "href")
when (funcall filter href)
collect it))))

View file

@ -9,9 +9,9 @@
(error-output *error-output*))
(let* ((name (first args))
(packagename (package-name *package*))
(pos (loop repeat 3
with pos = 0
(pos (loop with pos = 0
for p = (position #\. packagename :start pos)
repeat 3
while p
collect p
do (setf pos (1+ p))))

View file

@ -1,7 +1,7 @@
#+ros.init
(roswell:include '("util" "system") "util-template")
#+quicklisp
(ql:quickload '("uiop" "djula") :silent t)
(ignore-errors (ql:quickload '("uiop" "djula") :silent t))
(defpackage :roswell.util.template
(:use :cl)
(:export
@ -113,7 +113,8 @@
:name (format nil "roswell.init.~A" template-name)))
(defun apply-djula (template-string stream params)
(apply 'djula::render-template* (djula::compile-string template-string) stream
(apply (read-from-string "djula::render-template*")
(read-call "djula::compile-string" template-string) stream
`(,@params
:author ,(author)
:email ,(email)

View file

@ -4,7 +4,7 @@
(:import-from :ros :opt :ensure-asdf :*local-project-directories*)
(:export
:uname :uname-m :homedir :config :impl :which :config-env :checkoutdir
:parse-version-spec :head :download :expand :sh :chdir :system :module
:parse-version-spec :head :download :expand :sh :make :chdir :system :module
:core-extention :clone-github :opt :read-call :set-opt :copy-dir
:roswell-installable-searcher :setenv :unsetenv :ensure-asdf :split-sequence
:local-project-build-hash))
@ -76,7 +76,7 @@ Returns NIL when the package in the symbol prefix is not available."
(read-call "local-project-build-hash" :rebuild t)
(or
(and (or (read-call "ql-dist:find-system" imp)
#+nil(read-call "ql:where-is-system" imp))
(read-call "ql:where-is-system" imp))
(read-call "ql:quickload" imp :silent t))
(roswell:include (format nil "~A-~A" prefix name)))
#1#)))))
@ -137,13 +137,16 @@ Example:
output nil)
t)))
(defun download (uri file &key proxy (verbose nil) (output :interactive))
(defun download (uri file &key proxy (verbose nil) (output :interactive) interval)
"Interface to curl4 in the roswell C binary"
(declare (ignorable proxy))
(unless (and interval
(probe-file file)
(< (get-universal-time) (+ interval (file-write-date file))))
(ensure-directories-exist file)
(roswell:roswell `("roswell-internal-use" "download" ,(backslash-encode uri)
,file ,@(when verbose (list verbose)))
output nil))
output nil)))
(defun expand (archive dest &key verbose)
"extract archive via roswell. gz/bz/7z should be supported."
@ -193,6 +196,9 @@ Example:
(which "bash")
"sh"))
(defun make ()
(or #+freebsd "gmake" "make"))
(defvar *version*
`(:roswell ,(or (ignore-errors (roswell:version))
(progn

View file

@ -18,6 +18,7 @@ exec ros -Q -m roswell -N roswell -- $0 "$@"
(curl (version "curl"))
(asdf (version "asdf"))
(conf (version "confdir"))
(variant (version "sbcl-bin-variant"))
(home (roswell.util:homedir)))
(unless (zerop (length revision))
(setf revision (format nil "(~A)" revision)))
@ -34,5 +35,6 @@ exec ros -Q -m roswell -N roswell -- $0 "$@"
(format *error-output* "lispdir='~A'~%" (opt "lispdir"))
(format *error-output* "homedir='~A'~%" home)
(unless (or (zerop (length conf)) (equal home conf))
(format *error-output* "configdir='~A'~%" conf))))
(format *error-output* "configdir='~A'~%" conf))
(format *error-output* "sbcl-bin-variant='~A'~%" variant)))
;;; vim: set ft=lisp lisp:

View file

@ -1,5 +1,5 @@
(defsystem "roswell"
:version "21.1.14.108"
:version "26.2.116"
:author "SANO Masatoshi"
:license "MIT"
:depends-on ("simple-date-time" "split-sequence" "plump" "zip")
@ -36,7 +36,7 @@
:components
((:file "ros"))))
:perform (test-op :after (op c)
#+quickisp(ql:quickload :prove-asdf)
#+quicklisp(ql:quickload :prove-asdf)
#-asdf(asdf:load-system :prove-asdf)
(uiop:symbol-call :prove-asdf :run-test-system c)
(asdf:clear-system c)))

View file

@ -0,0 +1,10 @@
FROM ubuntu:18.04
RUN apt-get update && apt-get install -y \
build-essential git automake libcurl4-openssl-dev curl gcc-multilib lib32z1-dev \
dh-autoreconf bash-completion binutils-i686-linux-gnu \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
run ln -s /bin/echo /bin/run-prove
run curl -L -O https://github.com/roswell/roswell/releases/download/v21.05.14.109/roswell_21.05.14.109-1_amd64.deb;dpkg -i roswell_21.05.14.109-1_amd64.deb; rm roswell_21.05.14.109-1_amd64.deb
run ros install sbcl-bin/2.0.0; ros run -- --version
run ros install snmsts/sn.github

1
scripts/Docker/deb/Name Normal file
View file

@ -0,0 +1 @@
bionic:64

View file

@ -0,0 +1,5 @@
FROM alpine:3.20
run apk add --no-cache \
alpine-sdk automake autoconf curl-dev bash linux-headers \
curl-static nghttp2-static openssl-libs-static brotli-static zlib-static zstd-static c-ares-static \
libidn2-static libunistring-static libpsl-static;

Some files were not shown because too many files have changed in this diff Show more