[Openmcl-devel] Re: docs FAQ and CVS/build cycle sections need revamping

Gary Byers gb at clozure.com
Thu Aug 5 20:30:13 PDT 2004

On Thu, 5 Aug 2004, Dan Knapp wrote:

>    Yeah... I tried to rewrite the CVS information a while back and got
> stuck because
> I couldn't figure out the distinction.
>    By all means, don't wait on my account - go ahead and find any prior
> discussion
> of it you can.  There's no reason it shouldn't be added immediately.

Well, I couldn't find the message I was thinking of, so here's an attempt
to explain the distinction (with editorial comments in square brackets.)

There are two CVS trees related to OpenMCL 0.14 development.  [These
could be CVS "branches"; they're separate trees/repositories for mostly
historical reasons.]

The "stable" tree (clozure.com:/usr/local/tmpcvs/ccl-0.14) should
contain sources that correspond to the most recent binary release +
"simple" bug fixes.  It should always be possible to follow the heap
image build procedure [link] to generate an up-to-date heap image,
using the heap image from the most recent binary release and these
"stable" sources.

Binary releases are based on the contents of the "stable" tree as
of the time of release.  "Simple" bug fixes (those that don't involve
significant changes to OpenMCL's ABI) are usually checked into the
stable CVS tree [sometimes with some nagging involved.]

The "bleeding edge" tree (clozure.com:/usr/local/tmpcvs/ccl-0.14-dev)
often contains sources that are more experimental or speculative in
nature and sometimes contains deep changes to the lisp implementation
itself.  The nature of some of these "deep changes" sometimes means
that the bootstrapping process is much more complicated: there may
be cases where the relased binary image can't be used to build a
new image from bleeding edge sources, and there may be times when
the sources in the bleeding edge tree don't compile at all.  [It's
currently the case that the bleeding-edge tree is binary-compatible
with the stable tree.  Maybe some examples of "deep changes" should
be offered here ?]

Most development on OpenMCL itself (other than "simple" bug-fixes)
takes place in the bleeding edge tree.  Since that development sometimes
breaks binary compatibility with the current release (and since those
changes are often hard to bootstrap), heap images that can be used
to bootstrap the bleeding-edge sources are often provided via FTP at:


Sometimes, the bleeding-edge sources are volatile enough that these
"testing" images are themselves obsolete within a day or so.

Most users (certainly most new users) would probably be well-advised
to ignore the "bleeding edge" tree [and we should concentrate on
explaining how to do CVS updates from that tree and how to rebuild
the heap image from that tree].

Users who:

 a) are familiar with the image building process
 b) want to track or contribute to OpenMCL development
 c) enjoy living dangerously [sometimes; it's currently not too bad.]

may want to use the bleeding-edge CVS tree as well.

Note that it's generally necessary to keep working copies of "stable"
and "development" trees in separate directories (and remember to install
interface files, etc.)


I'm probably still forgetting a few issues and don't claim that that's
presented all that sanely, but hopefully it's a start.

More information about the Openmcl-devel mailing list