<div dir="ltr"><div><br></div>Hi Marc,<div><br></div><div>Thank you for the feedback. </div><div><br><div style>Ok, here is my proposed patch for this issue. It defers the loading of fonts in chart.lisp until runtime, and adds a file zzinit.lisp which contains an initialize! function as well as a confirmation (with warning) if any of the *afm-files-directories* do not exist. This confirmation is invoked at the toplevel so you will see a warning during compile and/or load if the afm directories are not existing, with suggestion to run the initialize! function at runtime before trying to use cl-pdf functions. </div>
<div style><br></div><div style>This patch was made with </div><div style><br></div><div style> git format-patch</div><div style><br></div><div style>so you should be able to apply it to a local clone of the master branch with </div>
<div style><br></div><div style> git apply 0001-Make-it-so-cl-pdf-can-load-without-afm-directory-the.patch</div><div style><br></div><div style><br></div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Tue, Mar 26, 2013 at 11:04 PM, Marc Battyani <span dir="ltr"><<a href="mailto:marc.battyani@fractalconcept.com" target="_blank">marc.battyani@fractalconcept.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    Hi Dave,<div class="im"><br>
    <br>
    On 26/3/13 21:49 , Dave Cooper wrote:<br>
    <blockquote type="cite">
      <div dir="ltr">
        <div>Hi All,</div>
        <div><br>
        </div>
        <div> I'm not sure if I should put this on this mailing
          list or as an Issue on the new Github site (where I could
          claim "First!" : )</div>
      </div>
    </blockquote></div>
    Well I have no idea either and I have to look at how this works on
    github. Anyway this mailing list on <a href="http://common-lisp.net" target="_blank">common-lisp.net</a> works well and
    is really low volume so probably it's not useful to change for now.
    That said I would be interested to here if people have more informed
    opinions on that.<div class="im"><br>
    <blockquote type="cite">
      <div dir="ltr">
        <div>How many of you have seen this error at some point
          during your time using cl-pdf:</div>
        <div><br>
        </div>
        <div> "Error: Font Helvetica not Found" </div>
        <div><br>
        </div>
        <div>As you probably know, one of the things which can
          cause this is when cl-pdf is being loaded from a compiled fasl
          which is not in the location of the source codebase, and the
          source codebase is no longer available at the location where
          it was during compiling.</div>
        <div><br>
        </div>
        <div>So my basic question is: does anyone have
          suggestions what to do about *cl-pdf-base-directory* and
          *cl-typesetting-base-directory* so that a fasl or built
          runtime can be used without the depending on the original
          absolute pathname to afm/ directory, etc. still existing as
          they were during compilation? As it is currently, the full
          hardcoded pathname of the *cl-pdf-base-directory* and
          *cl-typesetting-base-directory* are baked into a compiled
          fasl. I understand this used to work from *load-truename*
          instead of *compile-file-truename*, and the hardcoding of
          compile-time source location was introduced as a "fix" for the
          fact that ASDF started using output-translations which
          resulted in the fasl being loaded not being in the source
          location. But this "fix" still assumes that the sources are
          always going to be available in their original location every
          time a fasl is loaded, which I consider to be a fragile
          assumption. <br>
        </div>
        <div><br>
        </div>
        <div>For me, the ideal solution would be: </div>
        <div><br>
        </div>
        <div> 1. First of all, don't have any compile-time or
          load-time dependencies on these variables at all. As it is
          now, only chart.lisp in cl-pdf appears to depend on
          *afm-files-directories* -- couldn't this stuff be deferred to
          runtime? For cl-typesetting I'm not sure what are the
          dependencies at compile and load time, but I speculate that
          they are few. </div>
        <div><br>
        </div>
        <div> 2. Provide an "initialize!" function for use at
          runtime startup, which is supposed to establish base directory
          locations for afm/ directory etc. <br>
        </div>
      </div>
    </blockquote>
    <blockquote type="cite">
      <div dir="ltr">
        <div>
          Then it would be (as it rightfully should be) the
          responsibility of any runtime application which is using
          cl-pdf to set the *-base-directory* variables and call the
          initialize! function as part of its "restart" function, much
          the same way as many applications normally have to initialize
          themselves at startup to find the location of outside
          resources (e.g. webserver applications have to be set with the
          location of static files for publishing, etc). </div>
        <div><br>
        </div>
        <div>Before I go any deeper into this direction I just
          wanted to get any feedback that current users have about this
          issue. And let me know if it should be opened as an Issue on
          the github project or stay on this mailing list. <br>
        </div>
      </div>
    </blockquote></div>
    Seems good for me. Anyway as you mentioned, probably everybody had
    to integrate that into some initialization function.<div class="im"><br>
    <blockquote type="cite">
      <div dir="ltr">
        <div>Best Regards</div>
        <div><br>
        </div>
        <div> Dave</div>
        <div><br>
        </div>
        <div>P.S. Are there plans to bring cl-typesetting to
          github as well, side-by-side with cl-pdf?</div>
      </div>
    </blockquote></div>
    Sure! I wanted to clean them up somewhat like I have done with
    cl-pdf but maybe I should move all this to github and clean it
    later. <br>
    I'm also planning to modernize my web framework and put it on github
    too but this will take some time.<br>
    <br>
    Cheers,<br>
    <br>
    Marc<div class="im"><br>
    <blockquote type="cite">
      <div dir="ltr">
        <div class="gmail_extra"><br>
          <div class="gmail_quote">On Thu, Feb 28, 2013 at 12:28 PM,
            Marc Battyani <span dir="ltr"><<a href="mailto:marc.battyani@fractalconcept.com" target="_blank">marc.battyani@fractalconcept.com</a>></span>
            wrote:<br>
            <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div bgcolor="#FFFFFF" text="#000000"> <font size="-1"><font face="Helvetica, Arial, sans-serif">Hi all,<br>
                    <br>
                    <font size="-1">cl-pdf is moving to <a href="https://github.com/mbattyani/cl-pdf.git" target="_blank">https://github.com/mbattyani/cl-pdf.git</a><br>
                      <br>
                      <font size="-1"><font size="-1">Please contact me
                          if</font> want to have push a<font size="-1">ccess.</font></font><span><font color="#888888"><br>
                          <br>
                          <font size="-1">Marc<br>
                          </font></font></span></font></font></font><br>
              </div>
              <br>
              _______________________________________________<br>
              cl-pdf-devel site list<br>
              <a href="mailto:cl-pdf-devel@common-lisp.net" target="_blank">cl-pdf-devel@common-lisp.net</a><br>
              <a href="http://common-lisp.net/mailman/listinfo/cl-pdf-devel" target="_blank">http://common-lisp.net/mailman/listinfo/cl-pdf-devel</a><br>
            </blockquote>
          </div>
          <br>
          <br clear="all">
          <div><br>
          </div>
          -- <br>
          My Best,<br>
          <br>
          Dave Cooper, Genworks Support<br>
          <a href="mailto:david.cooper@genworks.com" target="_blank">david.cooper@genworks.com</a>,
          <a href="http://dave.genworks.com" target="_blank">dave.genworks.com</a>(skype)<br>
          USA: <a href="tel:248-327-3253" value="+12483273253" target="_blank">248-327-3253</a>(o), <a href="tel:1-248-330-2979" value="+12483302979" target="_blank">1-248-330-2979</a>(mobile)<br>
          UK: 0191 645 1699<br>
        </div>
      </div>
    </blockquote>
    <br>
  </div></div>

</blockquote></div><br><br clear="all"><div><br></div>-- <br>My Best,<br><br>Dave Cooper, Genworks Support<br><a href="mailto:david.cooper@genworks.com">david.cooper@genworks.com</a>, <a href="http://dave.genworks.com">dave.genworks.com</a>(skype)<br>
USA: 248-327-3253(o), 1-248-330-2979(mobile)<br>UK: 0191 645 1699<br>
</div>