[racket-dev] Submodules & dependencies

From: Eli Barzilay (eli at barzilay.org)
Date: Fri Mar 16 07:33:45 EDT 2012

On Monday, Matthias Felleisen wrote:
> I think Jay is expressing an Eli-concern: we need to distribute the
> full source to determine whether something can be thrown away.

It's more than just the dependencies between libraries -- it's the
fact that expanding the code (before "stripping", but see below)
requires the extra libraries to be present.  So it's not plain
stripping of the zo files that are needed -- it's some way to make all
tools silently ignore `test' submodules (or something else).

On Monday, Matthew Flatt wrote:
> Yes: In other words, there could be a parameter that causes the
> macro expander to drop `test' submodules before it even attempts to
> expand them --- roughly like not using `-g' with `gcc'.
> Meanwhile, the after-the-fact pruning tool could be called `raco
> strip'.

In the case of tests, this is a good analogy: either you ship the full
zos as-is, with the test code, or you strip it out just like the `-g'
flag.  But things get more complicated with something like
documentation submodules: in that case you want to strip them out for
one kind of (core) distribution, but for some "documentation-source"
distribution you'll want to have just the documentation code.  So in
this case it's splitting more than stripping.  (And then there's the
problem of how both of these packages are assembled.)

          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!

Posted on the dev mailing list.