[racket-dev] A basic package system

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Wed Jul 27 11:20:01 EDT 2011

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.

Robby

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

Posted on the dev mailing list.