[racket-dev] Installing subsets of Racket

From: Laurent (laurent.orseau at gmail.com)
Date: Tue Sep 24 15:17:23 EDT 2013

Thanks for the info.
Binaries may still be good when one wants to install a package only for a
single purpose.



On Tue, Sep 24, 2013 at 12:50 AM, Matthew Flatt <mflatt at cs.utah.edu> wrote:

> Although packages are not currently distributed in binary form, you can
> install built packages (as available from a snapshot site) in binary
> mode by supplying the `--binary' flag to `raco pkg install'.
>
> For example, if you start with a Minimal Racket build from
>
>   http://www.cs.utah.edu/plt/snapshots/
>
> then install it on Mac OS X (64-bit), it starts with a footprint of
> about 30 MB.
>
> Using
>
>  bin/raco pkg install -i --binary images
>
> installs about 40 packages to bring the total footprint to about 70 MB.
>
> In contrast, using
>
>  bin/raco pkg install -i images
>
> installs about 95 packages to bring the total footprint to about 260
> MB.
>
> Fewer packages are installed in binary mode because build dependencies
> are pruned from each package as it is converted (on download) from
> "built" to "binary".
>
> The "binary" versus "built" distinction doesn't automatically exclude
> documentation. The 40-ish packages installed for "images" includes
> "images-doc", because the "images" package is meant to imply both
> "images-lib" and "images-doc". Little other documentation is installed,
> however, because other documentation is mostly needed only to build the
> "images" documentation.
>
> The smallest installation with the "images" libraries is
>
>  bin/raco pkg install -i --binary images-lib
>
> which installs about 30 packages to bring the total footprint to about
> 55 MB.
>
> Then again, sticking with built mode as
>
>  bin/raco pkg install -i images-lib
>
> installs the same 30-ish packages with a footprint of 65 MB, which
> illustrates that the savings from `--binary' are almost all from
> reducing dependencies (and not about omitting source).
>
> So, `--binary` is available and can help, but it's an indirect way of
> reducing dependencies. Improved support for generating, installing, and
> depending on "-lib" variants might be better in the long run --- but I
> think we don't know how to do that, yet.
>
> At Mon, 16 Sep 2013 09:04:49 -0600, Jay McCarthy wrote:
> > Hi Laurent,
> >
> > I think that the solution to this are "binary" builds.... versions of
> > a package that only have the bytecode and documentation.
> >
> > We're a bit behind on binary builds, because when they were discussed
> > for the main repository [1] they were rejected. I hope to be able to
> > still provide them for ring-0 packages through the results of DrDr
> > running tests (and thus compiling) on those packages, but it's in the
> > future.
> >
> > The result would be that when you installed a package in "binary"
> > form, you would only get the "deps" and not the "build-deps". (And
> > you'd probably get those in binary form too.)
> >
> > Jay
> >
> > 1. http://www.mail-archive.com/[email protected]/msg08879.html
> >
> > On Mon, Sep 16, 2013 at 2:32 AM, Laurent <laurent.orseau at gmail.com>
> wrote:
> > > Hi,
> > >
> > > (this is not a complain, just an inquiry)
> > >
> > > While installing Racket on a small server, I wanted to avoid
> installing gui
> > > and doc related libraries.
> > > The minimal install was great!
> > >
> > > Then I wanted to install a package of my own (the aptly named
> "bazaar"),
> > > which requires "images" and other gui libs (which I actually would not
> use
> > > on the server), among other things, but no doc
> > >
> > > But the "images" package draws racket-doc and gui-doc dependencies,
> which in
> > > turn draws practically all of Racket. And it then takes a much longer
> time
> > > for `raco setup` to do its job that I had hoped for.
> > >
> > > Certainly, this can be resolved by splitting "images" and "bazaar"
> into lib,
> > > gui and docs packages, but I foresee another problem:
> > > It's difficult to enforce such a split for third-party libraries, as
> it puts
> > > the burden on the user.
> > > And the first package like that to be installed will again draw all of
> > > Racket dependencies.
> > >
> > > This is probably not a trivial matter, but what can be done about this?
> > >
> > > My dream would be that gui and doc dependencies are never triggered,
> without
> > > preventing the packages I actually use to be downloaded, but I don't
> know
> > > how this could actually be ensured without a good amount of magic.
> > >
> > > Merely preventing downloads does not sound like a good option though.
> > >
> > > I bet you've already discussed this far and wide, so are there any
> plans?
> > >
> > > Laurent
> > >
> > > _________________________
> > >   Racket Developers list:
> > >   http://lists.racket-lang.org/dev
> > >
> >
> >
> >
> > --
> > Jay McCarthy <jay at cs.byu.edu>
> > Assistant Professor / Brigham Young University
> > http://faculty.cs.byu.edu/~jay
> >
> > "The glory of God is Intelligence" - D&C 93
> > _________________________
> >   Racket Developers list:
> >   http://lists.racket-lang.org/dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/dev/archive/attachments/20130924/e25e16e8/attachment.html>

Posted on the dev mailing list.