<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>Hello everyone.</p>
    <p>I have a rather particular problem that I have so far not been
      able to solve on my own without brittle workarounds. Specifically,
      I'm looking for a way to ensure that the directory paths stored in
      the FASL cache directory are, if possible, truncated according to
      some other path (by enough-pathname or a similar facility).</p>
    <p>The reason I want this is for <a moz-do-not-send="true"
        href="https://portacle.github.io/">Portacle</a>. The Portacle
      directory should be relocatable and you should even be able to
      take it with you on a flash drive to run on other machines.
      However, this usually means that the absolute position of the
      directory on the file system will change, even if the Lisp files
      and FASLs within it remain at the same relative locations.</p>
    <p>I would thus like to stop ASDF from recompiling everything when
      the directory is moved absolutely, and instead rely on paths
      relative to Portacle's own "root" directory if possible.</p>
    <p>My current approach involves setting
      asdf/output-translations::*output-translation-function* to a
      modified version that attempts to relativise the path as seen <a
        moz-do-not-send="true"
        href="https://github.com/portacle/config/blob/master/sbcl-init.lisp#L70">here</a>.
      However, this sometimes <a moz-do-not-send="true"
        href="https://github.com/portacle/portacle/issues/62">leads to
        issues</a> as the translated path might be relative and other
      components down the line seem to expect absolute paths.</p>
    <p>Any advice on how to proceed on this would be appreciated.</p>
    <p>Sincerely, Nicolas Hafner<br>
    </p>
  </body>
</html>