They have more similarities than your message suggests I believe. And it is probably worth exploring that. As far as I can see a facet/modulet has less stuff than a package and possibly a different story vis a vis files in the filesystem. <br>
<br>Robby<br><br>On Wednesday, July 27, 2011, Jay McCarthy <<a href="mailto:jay.mccarthy@gmail.com">jay.mccarthy@gmail.com</a>> wrote:<br>> I don't see them as overlapping, but you may understand them different<br>
> than I do.<br>><br>> The way I see modules/facets is that 'racket/list.rkt' will have a<br>> 'default' facet and a 'testing' facet and a 'documentation' facet, so<br>> that each use can be syntactically close but separately loadable.<br>
><br>> The way I see packages is that they allow indirection of module paths,<br>> so that inside 'a.rkt', 'racket/list' can refer to something other<br>> than the usual thing because of what package it is inside. Packages<br>
> also allow module privacy in a way we don't provide now, because some<br>> modules may not be provided from the package, even though they are<br>> inside it.<br>><br>> So... do you think those two understandings overlap? Or do you<br>
> understand them differently?<br>><br>> Jay<br>><br>> On Wed, Jul 27, 2011 at 7:52 AM, Robby Findler<br>> <<a href="mailto:robby@eecs.northwestern.edu">robby@eecs.northwestern.edu</a>> wrote:<br>>> Bullet point 2 seems like it may overlap (in a practical, "what do I<br>
>> use today" sort of a way) with Matthew's modulelet construct. Both<br>>> group modules together, both provide independently loadable things.<br>>><br>>> Do we really want/need both of these?<br>
>><br>>> Robby<br>>><br>>> On Tue, Jul 26, 2011 at 5:49 PM, Jay McCarthy <<a href="mailto:jay.mccarthy@gmail.com">jay.mccarthy@gmail.com</a>> wrote:<br>>>> Eli and I had a very useful conversation last night and we realized<br>
>>> that a lot of the ideal package system we are imagining is within our<br>>>> reach very quickly. Today I made a demonstration of our ideas:<br>>>><br>>>> <a href="https://github.com/jeapostrophe/exp/tree/master/pkgs">https://github.com/jeapostrophe/exp/tree/master/pkgs</a><br>
>>><br>>>> There's a README there. Once you read it,<br>>>><br>>>> Run use/program.rkt<br>>>><br>>>> Then edit use/pkg-in.rkt and change the "safe" to "unsafe"<br>
>>><br>>>> You'll see that it changes the meaning of racket/listy module<br>>>> reference in use/program.rkt<br>>>><br>>>> I haven't implemented the module algebra, but it should be clear from<br>
>>> looking at the macro implementations that the existing identifier<br>>>> algebra in require/provide will work transparently.<br>>>><br>>>> Jay<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">http://faculty.cs.byu.edu/~jay</a><br>
>>><br>>>> "The glory of God is Intelligence" - D&C 93<br>>>> _________________________________________________<br>>>> For list-related administrative tasks:<br>>>> <a href="http://lists.racket-lang.org/listinfo/dev">http://lists.racket-lang.org/listinfo/dev</a><br>
>>><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">http://faculty.cs.byu.edu/~jay</a><br>
><br>> "The glory of God is Intelligence" - D&C 93<br>><br>> _________________________________________________<br>> For list-related administrative tasks:<br>> <a href="http://lists.racket-lang.org/listinfo/dev">http://lists.racket-lang.org/listinfo/dev</a>