[racket] Raco Extraneous Setup Activity

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Wed May 29 10:43:18 EDT 2013

Robby has pointed out the detail that is probably least obvious in this
context: building any given document can consult the builds for all
other documents to set up cross-reference links, and the "skipping"
message is meant to convey that a document's cross-reference
information is not available.

In more detail, here's one way that I think you could end up with those
messages even when it seems like it shouldn't happen:

 * Start with some Racket build through `make install'.

 * Run `raco setup' after the build.

   This will do things despite the `make install' that just finished,
   because `make install' avoids any user-specific installation
   actions, while the "handin-server" and "honu" docs build to user
   space.

   Yes, it's weird that "handin-server" and "honu" docs build to user
   space. That detail works around problems with our builds and
   bundles. The problems (and workarounds) are going away with a new
   package system and new repo organization.

 * Install a Planet package, which also installs in user-specific
   space.

 * `raco setup -c' to clean.

 * `make install' to rebuild.

   Since `make install' confines its actions to the installation, the
   "handin-server" and "honu" docs are not rebuilt, and Planet packages
   are not set up.

 * `raco setup x', which confines rebuild operations to `x'.

   In trying to build documentation for `x', cross-reference
   information is consulted for *all* packages. Collections and
   documentation in a user-specific space haven't been rebuilt, so
   `raco setup' notes that its having to skip them.

It's unlikely that I've described exactly what happened in your case,
but maybe that helps shine some light on what could be happening.

The parts of this story seem particularly awkward to me --- the no-user
constraint on `make install' and the way "honu" and "handin-server"
docs go to user space --- are in our sights to fix with the new package
system.

At Tue, 28 May 2013 14:59:37 -0500, Robby Findler wrote:
> Probably because the indicies have to be rebuilt after any documentation
> changes; you're seeing messages that say something about that rebuilding
> process, I believe.
> 
> (But 'raco setup' is ridiculously complex (as Matthew mentioned recently on
> the dev@ list) so there may be something else going on too.)
> 
> Robby
> 
> 
> 
> On Tue, May 28, 2013 at 8:36 AM, Ray Racine <ray.racine at gmail.com> wrote:
> 
> > I have several decent sized collections, each utilized via a 'raco link -d
> > /a/b'.  I end up doing numerous 'raco setup x' after munging around in a
> > particular collection set.
> >
> > A typical stdout from a 'raco setup' always appears to have "mystery"
> > collection entailment to vary degrees over time.  e.g.,  this morning's set
> > is consists of
> >
> > raco setup: 3 skipping:
> > <planet>/untyped/unlib.plt/3/24/scribblings/unlib.scrbl
> > raco setup: 2 skipping: <planet>/cce/scheme.plt/6/3/reference/manual.scrbl
> > raco setup: 6 skipping: <planet>/cce/scheme.plt/4/1/scribblings/main.scrbl
> > raco setup: 7 skipping: honu/scribblings/honu.scrbl
> >
> > At various times in the past I've seen 'handin" and other collections sort
> > of come and go.   The first three I was able to remove by cleaning out the
> > ~/.racket/planet.
> >
> > Which leaves the following:
> >
> > 1) It appears 'raco setup x' attempts to perform a doc build in
> > ~/.planet/...  I double checked and none of the local collections perform a
> > single (require (planet ...)).  There is no reason for 'raco setup x' to
> > entail any activity in ~/.racket/planet/...  Is this a bug? or implicit
> > ~/.racket/planet building intentional for a 'raco setup x' invocation?
> >
> > 2) Why is honu currently entailed in 'raco setup x', where x is a 'raco
> > link -d ...' local collection?
> >
> > The above in situ:
> >
> > raco setup: version: 5.3.4.10 [3m]
> > raco setup: variants: 3m
> > raco setup: main collects: /usr/local/racket/collects
> > raco setup: collects paths:
> > raco setup:   /home/ray/.racket/5.3.4.10/collects
> > raco setup:   /usr/local/racket/collects
> > raco setup: --- pre-installing collections ---
> > raco setup: --- installing foreign libraries ---
> > raco setup: --- compiling collections ---
> > raco setup: --- parallel build using 8 processes ---
> > raco setup: 7 making: /code/rlib/gut/gut (aws)
> > raco setup: 7 making: /code/rlib/gut/gut/http (http)
> > raco setup: 7 making: /code/rlib/gut/gut/uri
> > raco setup: 7 making: /code/rlib/gut/gut/uri/url
> > raco setup: 7 making: /code/rlib/gut/gut/oauth
> > ...
> > raco setup: 7 making: /code/rlib/gut/gut/uuid
> > raco setup: --- updating info-domain tables ---
> > raco setup: --- creating launchers ---
> > raco setup: --- installing man pages ---
> > raco setup: --- building documentation ---
> > raco setup: 3 skipping:
> > <planet>/untyped/unlib.plt/3/24/scribblings/unlib.scrbl
> > raco setup: 2 skipping: <planet>/cce/scheme.plt/6/3/reference/manual.scrbl
> > raco setup: 6 skipping: <planet>/cce/scheme.plt/4/1/scribblings/main.scrbl
> > raco setup: 7 skipping: honu/scribblings/honu.scrbl
> > raco setup: --- installing collections ---
> > raco setup: --- post-installing collections ---
> > raco setup:
> >
> >
> >
> > ____________________
> >   Racket Users list:
> >   http://lists.racket-lang.org/users
> >
> >
> ____________________
>   Racket Users list:
>   http://lists.racket-lang.org/users

Posted on the users mailing list.