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