<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#003333">
    <br>
    <div class="moz-cite-prefix">On 10/30/2013 01:53 PM, Christophe
      Rhodes wrote:<br>
    </div>
    <blockquote cite="mid:87fvri32gy.fsf@cantab.net" type="cite">
      <pre wrap="">Jeffrey Cunningham <a class="moz-txt-link-rfc2396E" href="mailto:jeffrey@jkcunningham.com"><jeffrey@jkcunningham.com></a> writes:

</pre>
      <blockquote type="cite">
        <pre wrap="">According to the ASDF documentation:
<a class="moz-txt-link-freetext" href="http://common-lisp.net/project/asdf/asdf.html#Using-ASDF">http://common-lisp.net/project/asdf/asdf.html#Using-ASDF</a>

The system foo is loaded (and compiled, if necessary) by evaluating
the following Lisp form:
     (asdf:load-system :foo)
On some implementations (namely recent versions of ABCL, Allegro CL,
Clozure CL, CMUCL, ECL, GNU CLISP, LispWorks, MKCL, *SBCL* and XCL),
ASDF hooks into the |CL:REQUIRE| facility and you can just use:
     (require :foo)
Is this not correct?
</pre>
      </blockquote>
      <pre wrap="">
It is correct.  Evaluating (asdf:load-system :foo) or (require :foo)
will (compile and) load the :foo system.

However, when you compile a file containing
  (require :foo)
  (describe 'foo::bar)
you do not evaluate the `(require :foo)' form; you generate code such
that, when you later load the file, (require :foo) will be executed.  So
when the compiler attempts to read the next form, (describe 'foo::bar),
the symbol 'foo::bar does not yet exist, because nothing has yet
happened to cause the "FOO" package to be created.


</pre>
    </blockquote>
    <br>
    I get the same behavior if I compile each line within the file
    individually with C-c . That should be evaluating the form, right? <br>
    <br>
    CL-USER> ; <b>compiling (ASDF/OPERATE:LOAD-SYSTEM "cl-ppcre")</b><br>
    ; <b>compiling (DESCRIBE (QUOTE CL-PPCRE:REGEX-APROPOS))</b><br>
    CL-PPCRE:REGEX-APROPOS<br>
      [symbol]<br>
    <br>
    REGEX-APROPOS names a compiled function:<br>
      Lambda-list: (REGEX &OPTIONAL PACKAGES &KEY
    (CASE-INSENSITIVE T))<br>
      Derived type: (FUNCTION (T &OPTIONAL T &KEY
    (:CASE-INSENSITIVE T))<br>
                     (VALUES &OPTIONAL))<br>
      Documentation:<br>
        Similar to the standard function APROPOS but returns a list of
    all<br>
        symbols which match the regular expression REGEX.  If
    CASE-INSENSITIVE<br>
        is true and REGEX isn't already a scanner, a case-insensitive
    scanner<br>
        is used.<br>
      Source file: /home/jcunningham/slime/test1.lisp<br>
    <br>
    Regards,<br>
    --Jeff<br>
  </body>
</html>