Thank all you guys for the advices.<br>
<br>
I see. Macroexpansion before compilation. Then, at that moment, macro-defined couldn't find function-defined...<br>
I never imagined that. I appreciate you all to telling me that.<br>
<br>
I will check how to use eval-when. Thank you very much.<br><br>Also, C-u RET solves reader macro issue. <br><br>Thanks a lot.<br>
<br>
cametan<br><br><div class="gmail_quote">2010/4/30 Helmut Eller <span dir="ltr"><<a href="mailto:heller@common-lisp.net">heller@common-lisp.net</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im">* 亀田馬志 [2010-04-29 16:23+0200] writes:<br>
<br>
> C-c C-k shows such a message below.<br>
><br>
>     ; in: DEFMACRO! NIF<br>
>     ;     (DEFMACRO! NIF (O!EXPR POS ZERO NEG)<br>
>     ;                `(COND ((PLUSP ,G!EXPR) ,POS) ((ZEROP ,G!EXPR) ,ZERO) (T<br>
>     ,NEG)))<br>
>     ;<br>
>     ; caught ERROR:<br>
>     ;   (during macroexpansion of (DEFMACRO! NIF ...))<br>
>     ;   The function O!-SYMBOL-P is undefined.<br>
>     ;<br>
>     ; compilation unit finished<br>
>     ;   caught 1 ERROR condition<br>
><br>
>     ; /home/cametan/lol.chapter_2.fasl written<br>
>     ; compilation finished in 0:00:00.091<br>
><br>
> Strange. The function O!-SYMBOL-P was THERE on the file.<br>
<br>
</div>Yes, but it's needed "during macroexpansion".  If you only compile<br>
a function you can't call it yet.<br>
<br>
You could try to just load it with C-c C-l. Then every toplevel form<br>
is evaluated immediately and available in the following forms.<br>
But there are also other missing function like SYMB and FLATTEN.<br>
<div class="im"><br>
> So I check sbcl repl directly on my bash; in that case, the file could be<br>
> loaded and compiled without any problem.<br>
> Therefore, SLIME must have the problem.<br>
<br>
</div>If you load it before compiling it you make all definitions available<br>
for macroexpansion.  If you execute (load (compile-file "lol.chatper_2.lisp"))<br>
in a clean session you'll will most likely see the same problem.<br>
<div class="im"><br>
> Actually, if I made the function on REPL on SLIME, NO PROBLEM. The problem is<br>
> occured when I made a file, load, and compile THE FILE.<br>
><br>
> I checked the file, then I found both g!-symbol-p and o!-symbol-to-g!-symbol<br>
> are not recognized by SLIME, either. Then, I concluded functions with "!"<br>
> are not recognized by SLIME.<br>
><br>
> Is there any solution about that? I use Ubuntu 9.10, SBCL and Emacs 23<br>
> provided by Ubuntu. Also I use cvs version of SLIME(newest).<br>
<br>
</div>When you get more experienced you'll recognize that you need EVAL-WHEN in<br>
situations like these.  You will also learn the value of adding an<br>
IN-PACKAGE form at the beginning of a file.<br>
<div class="im"><br>
> P.S. I also found SLIME's REPL don't recognized reader macros. Though making<br>
> reader macro with #foo, SLIME says something like "incomplete input".<br>
<br>
</div>Well, yes, SLIME assumes that you want to enter Lisp syntax not some<br>
random character noise.  C-u RET will accept the current input anyway<br>
even if it doesn't look like a complete form.<br>
<font color="#888888"><br>
Helmut<br>
</font><div><div></div><div class="h5"><br>
<br>
_______________________________________________<br>
slime-devel site list<br>
<a href="mailto:slime-devel@common-lisp.net">slime-devel@common-lisp.net</a><br>
<a href="http://common-lisp.net/mailman/listinfo/slime-devel" target="_blank">http://common-lisp.net/mailman/listinfo/slime-devel</a></div></div></blockquote></div><br><br clear="all"><br>-- <br>  亀田馬志<br>Masahi Kameda<br>