[racket-dev] no symlinks in planet links (was: Re: single-instantiation trick: kludgy workaround for planet packages?)
8 minutes ago, John Clements wrote:
>
> So, it looks like planet is broken wrt planet-links containing
> symbolic links. Maybe you could solve this by just putting a
> fully-expand-path-mumble somewhere very early in the signal chain?
> ... Hmm, actually that might not be such a great idea; you break the
> abstraction of the symbolic link from the standpoint of the user.
I recently ran into a similar problem -- and if it's the same problem
then it has nothing to do with planet. I had some code in a symlink
that was required as a relative string and as symbolic name, and it
ended up requiring a module going through two different paths, which
meant that a certain piece of state in that module was duplicated
which resulted in lots of confusion.
Matthew's advice was to never use symlinks.
I thought about it a little, and I think that it might be better if
everything around resolving module names never expands symlinks.
IIRC, the problem was caused by a relative require that was resolved
using the real path of the originating file, even though that file was
required from a different place (which was the symlink). I think that
it might work, but didn't talk to Matthew about it yet, so for all I
know that will lead to some other horrors.
--
((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay:
http://barzilay.org/ Maze is Life!