[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! _________________________ Racket Developers list: http://lists.racket-lang.org/dev