[Openmcl-devel] packagers of CCL

R. Matthew Emerson rme at clozure.com
Tue Apr 30 10:40:33 PDT 2024



> On Apr 29, 2024, at 11:07 PM, Andrey G. Grozin <A.G.Grozin at inp.nsk.su> wrote:
> 
> 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’t 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.
> 
> 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=doc) 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’t 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’s 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”)

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


More information about the Openmcl-devel mailing list