[racket-dev] A basic package system
On Wed, Jul 27, 2011 at 11:32 AM, Eli Barzilay <eli at barzilay.org> wrote:
> 10 minutes ago, Robby Findler wrote:
>> 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.
>
> They're really unrelated -- the new thing with
> facets/modulets/whatever name they get is a kind of a separately
> loadable sub-module. What we were talking about is basically making
> the `foo' in (require foo) be an identifier that you could define to
> actually point to some random file.
Would a binding for foo affect uses like foo/bar? And would this mean
going to a semantics for require specs where unbound identifiers have
one meaning, and bound identifiers have another? That leads to issues
with silent failures, where you try to refer to a binding but a typo
leads to the wrong require instead of a syntax error. Also, right now
I can do (define racket "Racket") and then (require racket) and it
works fine. If require starts looking at bindings, suddenly the
collection namespace becomes part of the normal Racket namespace.
--Carl