[racket-dev] Symlink trouble

2013-04-17 Thread Tobias Hammer
Hi, i am currently implementing an application that heavily relies on rackets great serialize functionality to exchange data between racket processes on different computers. That works well until i stumbled over a very confusion behavior of rackets filesystem and module path resolution.

Re: [racket-dev] Symlink trouble

2013-04-17 Thread Matthew Flatt
Yes, I think Racket should use PWD --- if the expansion of soft links produces the same path as getcwd(), which seems to be what /bin/pwd does. Should Racket also set PWD (optionally, but by default) when it creates a subprocess? I think probably so. To make sure we're all on the same page:

Re: [racket-dev] Symlink trouble

2013-04-17 Thread Neil Van Dyke
Matthew Flatt wrote at 04/17/2013 10:39 AM: It would be great if we could normalize every path to a canonical form, but path normalization in general seems to intractable due to the possibilities of soft links, hard links, multiple mount points, case-sensitivity choices, and probably other

Re: [racket-dev] Symlink trouble

2013-04-17 Thread Tobias Hammer
On Wed, 17 Apr 2013 16:39:22 +0200, Matthew Flatt mfl...@cs.utah.edu wrote: Yes, I think Racket should use PWD --- if the expansion of soft links produces the same path as getcwd(), which seems to be what /bin/pwd does. That check is even better than the one i had in mind. That should

Re: [racket-dev] Symlink trouble

2013-04-17 Thread Matthew Flatt
At Wed, 17 Apr 2013 17:19:58 +0200, Tobias Hammer wrote: On Wed, 17 Apr 2013 16:39:22 +0200, Matthew Flatt mfl...@cs.utah.edu wrote: For module paths, same file involves only syntactic normalizations of the pathname (e.g., no checking for soft links). Various pieces of the system are

Re: [racket-dev] Symlink trouble

2013-04-17 Thread Tobias Hammer
On Wed, 17 Apr 2013 17:25:02 +0200, Matthew Flatt mfl...@cs.utah.edu wrote: That matches my observations. Files accessed via collection always keep their paths 'as is'. But it is enough to start a program via racket file instead of racket -l what/ever to break this. I should have mentioned