[racket-dev] proposal for moving to packages

From: Eric Dobson (eric.n.dobson at gmail.com)
Date: Wed May 22 21:25:15 EDT 2013

I agree that 363 to 28 would be a great win. But you seem to be
describing the difference between Full Racket and core racket, not the
difference between binary and source.

For binary vs source, I think you are providing a good argument for
the usefulness of a no source distribution. Some people want to use
tools written in Racket, and the fact that the tools are written in
Racket is immaterial to them. They should be able to have just the
binary versions.



On Wed, May 22, 2013 at 12:30 PM, Eli Barzilay <eli at barzilay.org> wrote:
> Yesterday, Eric Dobson wrote:
>> On Tue, May 21, 2013 at 4:29 AM, Jay McCarthy <jay.mccarthy at gmail.com> wrote:
>> > In my tree, I have 20M of compiled code and 13M of source. I like
>> > the idea of a reduction of about 50% in size of downloads.
>>
>> I'm not sure if something on the order of 10M is something to worry
>> about optimizing, that takes like 5-6 seconds to download on a
>> 15Mbit connection. And a minute on a much slower connection.
>
> I don't know how Jay got those numbers, but I have a very different
> picture:
>
>   363M Current installed tree
>   278M No-source tree (with docs)
>    56M Installed "textual" tree (has no docs and scrbl files)
>    42M Same minus sources
>
> If a package based installation is roughly like the textual thing, and
> given that it's easy to extend it to a full installation by adding
> packages, then we're talking about going from a 363M tree down to a
> 42M thing.  I think that the minimal core racket would be even smaller
> than the "textual" thing: once I remove things that look like they
> shouldn't be there, it goes down to 28M.
>
> The impact of having a huge tree currently is pretty big, IMO.  One
> example is that it is impractical to have random linux utilities
> implemented in Racket if you need to drag in a 363M working
> environment.  It's true that you could in theory use the textual
> thing, but the monolithic tree makes it hard for linux distro
> packagers to split things into a small core -- hard enough that nobody
> did it so far.  Another example is the few brave people who tried to
> make things work on small devices, which usually starts with a huge
> effort to get rid of unnecessary stuff.
>
> Finally -- consider J. Random User -- installing a 360M thing on your
> computer is something that you'd worry about much more than a 28M
> thing.  The smaller thing is at a point where you won't worry about it
> beind left somewhere, and at a point where it's fine to installed as a
> kind of a shared runtime thing for someone who wants to distribute
> racket-based applications.
>
> --
>           ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
>                     http://barzilay.org/                   Maze is Life!

Posted on the dev mailing list.