[racket-dev] proposal: `data' collection

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Sat Jul 10 10:35:28 EDT 2010

Just to be sure I understand, you're saying that these two may or may
not refer to the same file:

>>   (require foo/blah)
>>   (require "blah.rkt")



On Sat, Jul 10, 2010 at 9:07 AM, Matthew Flatt <mflatt at cs.utah.edu> wrote:
> At Sat, 10 Jul 2010 01:48:09 -0400, Eli Barzilay wrote:
>> On Jul  9, Matthew Flatt wrote:
>> > At Wed, 30 Jun 2010 22:28:48 -0400, Eli Barzilay wrote:
>> > > Back to `data', the problem is that you cannot have two toplevel
>> > > `data' collections -- which means that you cannot have separate
>> > > distributions of `data/foo' and `data/bar' since they must both
>> > > appear in your plt installation or in your user directory -- not
>> > > in both.
>> >
>> > The more I think about it, the more I'm convinced that it's ok to
>> > splice collections at the file level instead of the directory level:
>> >
>> >  * Splicing at the file level doesn't create any issues for
>> >    resolving module names: There's already a search path to find the
>> >    directory for a collection, and the filename is known at that
>> >    point, so the filename could be used as part of the search.
>> Was there an issue of efficiency?
> I don't think so.
>> Also, I think that there was a
>> potential issue with, for example, "collects/foo/bar.rkt" having:
>>   (require foo/blah)
>>   (require "blah.rkt")
>> not have the same meaning, since the first would search for the file
>> in all roots, and the second is always in the same directory. So
>> assuming those would be different, there should be a scan on all
>> requires in the tree, making sure that the appropriate style is used.
> Using "blah.rkt" wouldn't always mean the "blah.rkt" in the same
> directory, due to the occasional need for module-path collapsing (as
> opposed to module-path resolution). That is, neither style of `require'
> would avoid the possibility that "blah.rkt" comes from a different
> directory or that there will be a mess if it exists in multiple places.
> On points like this, I came to the conclusion that users can just break
> things with bad collection configurations. Similar bad things can
> happen with "info.rkt" files. Maybe `raco setup' should perform a
> sanity check, but I don't think we can rule out this kind of confusion
> by design within our current constraints.
> _________________________________________________
>  For list-related administrative tasks:
>  http://lists.racket-lang.org/listinfo/dev

Posted on the dev mailing list.