Thanks Matthew for all these answers. That clarifies some points.<br>(see private mail for details on the full paths)<br><br><div class="gmail_quote">On Wed, Jul 7, 2010 at 14:49, Matthew Flatt <span dir="ltr"><<a href="mailto:mflatt@cs.utah.edu">mflatt@cs.utah.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">[Re-ordered questions]<br>
<div class="im"><br>
At Wed, 7 Jul 2010 14:34:51 +0200, Laurent wrote:<br>
> When the executable is launched, why does it not simply set the<br>
> current-directory to the root of the distribution,<br>
<br>
</div>Many executables use the current directory to perform their work. For<br>
example, `raco exe prog.rkt' creates an executable from "prog.rkt" in<br>
the current directory, rather than forcing you to provide a complete<br>
pat for "prog.rkt".<br>
<div class="im"><br>
> so the executable can be<br>
> moved, depending on the OS?<br>
<br>
</div>The executable can be moved, as long as the rest of the tree is moved<br>
with it. All path computations via `define-runtime-path' are relative<br>
to the executable.<br>
<div class="im"><br>
> I find the directory hierarchy that `assemble-distribution' creates a bit<br>
> disturbing (using runtime-paths):<br>
> - Why does the absolute path of my project appear in the distribution? I<br>
> wouldn't like a software I distribute to carry such information.<br>
<br>
</div>Yes, that should be fixed. Can you tell me more about where it appears?<br>
<br>
(If a full path appears in the source, I'm not sure I can fix it, but<br>
I'm guessing that there's some other problem.)<br>
<div class="im"><br>
> - Why are my "img\", "docs\" and other subdirectories buried to a<br>
> (sub)^10-directory? I'd prefer them to remain simple sub-directories.<br>
><br>
> I'm happy with runtime-paths talking care of copying all the required files,<br>
> and I understand runtime-paths ensure consistency across multiple OSes, but<br>
> I don't see why this implies such a complicated hierarchy for relative<br>
> sub-directories.<br>
<br>
</div>For a Unix distribution, the expectation of some users is that they can<br>
unpack it in "/usr/local", the package's files will go to the right<br>
place, and the installation won't stomp on other installed software ---<br>
including, perhaps, other Racket-based software.<br>
<br>
Some layers of paths that you see keep files distinct while following<br>
common directory conventions. Some other layers avoid collisions<br>
between different files with the same name included by<br>
`define-runtime-path' Finally, some layers keep files that Racket needs<br>
separate from files included via `define-runtime-path'.<br>
<br>
</blockquote></div><br>