Re: packagers of CCL

"R. Matthew Emerson" <[email protected]> Tue, 30 Apr 2024 10:40:33 -0700
Newsgroups gmane.lisp.openmcl.devel
Message-ID <[email protected]>

> On Apr 29, 2024, at 11:07=E2=80=AFPM, Andrey G. Grozin =
<[email protected]> wrote:
>=20
> On Mon, 29 Apr 2024, R. Matthew Emerson wrote:
>> Are any readers are involved in packaging CCL (for Homebrew, =
MacPorts, various Linux distributions, whatever)?
>> If there are reasonable things that I could do with CCL to make that =
packaging effort easier, won=E2=80=99t you please get in touch?
> I'm the packager of ccl for Gentoo Linux. Gentoo is a source-based =
distro, each user compiles all packages on his/her own computer using =
ebuilds (bash scripts written according to some strict rules). In the =
case of ccl, both the source tarball and the binary one are downloaded, =
the binary is used to compile the source, and the result is =
installed.This is not very difficult.
>=20
> I have just one critical comment. If the USE flag "doc" is set, the =
ebuild also downloads and installs =
https://ccl.clozure.com/docs/ccl.html. And this file name is =
unversioned. It can silently change at any moment. If this happens, all =
users wanting to install ccl (with USE=3Ddoc) will find that this file's =
checksum differs from the one recorded in the corresponding Gentoo =
database, and the installation process will fail. It would be much =
better if this file were named not ccl.html but ccl-1.12.2.html, and it =
won't change during the lifespan of the version 1.12.2.

I see. I didn=E2=80=99t expect that =
<https://ccl.clozure.com/docs/ccl.html> would be part of a package.

The sources for the manual are included in the CCL sources in =
doc/manual, but the CCLDoc processor code is in a separate repository, =
namely <https://github.com/clozure/ccldoc>.

I wonder if there=E2=80=99s something we can do to make it easier to =
format the documentation as an optional part of the CCL build process. =
CCLDoc is an ASDF system, and it uses a few dependencies. But the =
dependencies are not used very extensively; I could imagine copying the =
small amount of code from the dependencies into CCLDoc itself or else =
re-implementing it.

The benefit of this would be that CCLDoc could load in plain CCL, and =
could therefore process the files in doc/manual. It would be necessary =
to clone the ccldoc repo separately, but I could imagine a simple =
Makefile or a little .lisp file to start CCL, do (require 'asdf), point =
ASDF at the ccldoc source, and then format the manual via

(defparameter *d* (ccldoc:load-document "ccl:doc;manual;ccl.ccldoc"))
(ccldoc::output-html *d* "/tmp/ccl.html" :stylesheet "ccl.css=E2=80=9D)

Or maybe it=E2=80=99s not burdensome to install Quicklisp and have it =
quickload ccldoc and its dependencies. I=E2=80=99m not sure a =
source-based distribution would like that, though.=