[racket-dev] A basic package system

From: Carl Eastlund (cce at ccs.neu.edu)
Date: Wed Jul 27 16:12:07 EDT 2011

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.


Posted on the dev mailing list.