[racket-dev] proposal for moving to packages: binary vs source
[Note subject change...]
Two days ago, Eric Dobson wrote:
> 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.
There have been a bunch of concerns expressed about the question of
distributing sources or not -- but I think that generally speaking,
there shouldn't be any problems at all. Here's a list of things that
contribute to not having such concerns:
1. The eventual goal would be to have very easy selection of packages
that you want to install. Either with (a) a bunch of installers,
(b) possibly doing this by just a different URL that will have the
installers listed in it as arguments, or (c) with a post-install
dialog that will ask you for additional packages to install. (In
the (c) case, it could also detect packages that you had decided to
install previously, and re-use the same list.)
The bottom line is that if *you* want to get the sources, then it
should be extremely easy to just have them installed (c), or create
installers that include the sources (a;b) which you'll use. The
main point here is that using packages will make such variations
very easy to implement, and make it easy for you to add sources or
provide popular options based on demand.
2. With the geiser/drracket concern about reduced functionality
because there are no sources: the information about the source of
bindings is still there. (Ie, things work fine if you remove a
random source file from a current installation -- the only
difference is that the actual source file is not there.)
Now, I'm assuming that there is some way with the package system to
know for any given file which package it came from. With this
information, I think that it would be easy to do something like
this:
* In drr, if you try to jump to a definition for a function whose
source is not included, you get a popup telling you that you
don't have the source, and list an on-line URL where the source
can be found (which is inferrable from the package information)
as well as a one-button-click option to install the source and
then open the file.
* Geiser could do exactly the same, and also use something like
`url-handler-mode' to visit the source file directly from the
on-line source in addition to offering to install the sources.
3. I think that there should be an option for package owners to decide
how their package gets installed, so for example, if realm must be
distributed with its sources, it can just specify that and avoid
the stripping that other packages would go through.
--
((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay:
http://barzilay.org/ Maze is Life!