Open eschaton opened 7 years ago
I don't know about this. I know this is a convention in wide use, but it certainly does scatter things all over the place.
In a scheme like this, where would the interface databases (e.g., darwin-x86-headers64
) go? What about sources?
Also, the needs of a CCL installed as a lisp development system are surely different from those of a CCL installed as a part of (or as) an application that isn't about writing lisp.
It doesn’t really scatter content all over, it actually enables it to be centralized. For example, you can put CCL in /opt
and upgrade it as a single unit.
The interface databases would go in the lib/ccl/
subdirectory. The sources wouldn’t be part of the binary distribution, the point would be to separate them.
We'd also have to identify modules that aren't included in the heap image and possibly provide fasls for them. I'm thinking primarily of asdf, but there are other things in ccl:library; that can be require
d as well.
Or if we want to make a binary-only distribution, maybe we have a "full-fat" image that includes everything.
To be a good UNIX citizen, a built binary distribution of CCL should be structured for extraction into either
/opt
or/usr/local
by default.For example, the contents of the Darwin 64-bit Intel distribution should probably look something like this:
bin/ccl64
lib/ccl/dx86cl64
lib/ccl/dx86cl64.image
share/doc/ccl/release-notes.txt
share/doc/ccl/manual.pdf
share/doc/ccl/examples/
share/man/man1/ccl64.1
Or something along those lines.