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">&lt;<a href="mailto:mflatt@cs.utah.edu">mflatt@cs.utah.edu</a>&gt;</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>
&gt; When the executable is launched, why does it not simply set the<br>
&gt; 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&#39; creates an executable from &quot;prog.rkt&quot; in<br>
the current directory, rather than forcing you to provide a complete<br>
pat for &quot;prog.rkt&quot;.<br>
<div class="im"><br>
&gt; so the executable can be<br>
&gt; 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&#39; are relative<br>
to the executable.<br>
<div class="im"><br>
&gt; I find the directory hierarchy that `assemble-distribution&#39; creates a bit<br>
&gt; disturbing (using runtime-paths):<br>
&gt; - Why does the absolute path of my project appear in the distribution? I<br>
&gt; wouldn&#39;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&#39;m not sure I can fix it, but<br>
I&#39;m guessing that there&#39;s some other problem.)<br>
<div class="im"><br>
&gt; - Why are my &quot;img\&quot;, &quot;docs\&quot; and other subdirectories buried to a<br>
&gt; (sub)^10-directory? I&#39;d prefer them to remain simple sub-directories.<br>
&gt;<br>
&gt; I&#39;m happy with runtime-paths talking care of copying all the required files,<br>
&gt; and I understand runtime-paths ensure consistency across multiple OSes, but<br>
&gt; I don&#39;t see why this implies such a complicated hierarchy for relative<br>
&gt; sub-directories.<br>
<br>
</div>For a Unix distribution, the expectation of some users is that they can<br>
unpack it in &quot;/usr/local&quot;, the package&#39;s files will go to the right<br>
place, and the installation won&#39;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&#39; Finally, some layers keep files that Racket needs<br>
separate from files included via `define-runtime-path&#39;.<br>
<br>
</blockquote></div><br>