This is the situation with CVS:<div><br></div><div><div>> (my-package::test)</div><div><br></div><div>"I was here!" </div><div>#<MY-PACKAGE::MY-GF MY-PACKAGE::FOO></div><div>> #'my-package::foo</div>
<div><br></div><div>#<MY-PACKAGE::MY-GF MY-PACKAGE::FOO></div><div>> (typep #'my-package::foo 'function)</div><div><br></div><div>T</div><div>> (typep (allocate-instance (find-class 'my-package::my-gf)) 'function)</div>
<div><br></div><div>NIL</div><div><br></div><div>The first three are OK. The last one is ok, because only initialized instances are recognized as functions.</div><div><br></div><div>Juanjo</div><br><div class="gmail_quote">
2009/11/29 Pascal Costanza <span dir="ltr"><<a href="mailto:pc@p-cos.net">pc@p-cos.net</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Hi,<br>
<br>
Another bug report: Consider the following example.<br>
<br>
(defpackage :my-package<br>
  (:use :common-lisp :clos))<br>
<br>
(in-package :my-package)<br>
<br>
(defclass my-gf (standard-generic-function)<br>
  ()<br>
  (:metaclass funcallable-standard-class))<br>
<br>
(defmethod initialize-instance :around<br>
    ((gf my-gf) &rest initargs)<br>
  (declare (dynamic-extent initargs))<br>
  (print "I was here!")<br>
  (call-next-method))<br>
<br>
(defun test ()<br>
  (eval '(defgeneric foo (x y z)<br>
          (:generic-function-class my-gf))))<br>
<br>
<br>
If I compile this, the load the compiled file, I get an error when running (test). Here is the transcript:<br>
<br>
> (in-package :my-package)<br>
<br>
#<"MY-PACKAGE" package><br>
MY-PACKAGE> (test)<br>
<br>
The value of GF is #<MY-GF SI:UNBOUND>, which is not of type FUNCTION.<br>
<br>
Available restarts:<br>
<br>
1. (STORE-VALUE) Supply a new value of GF<br>
2. (RESTART-TOPLEVEL) Go back to Top-Level REPL.<br>
<br>
Broken at SI:BYTECODES. [Evaluation of: (DEFGENERIC FOO (X Y Z) (:GENERIC-FUNCTION-CLASS MY-GF))] In: #<process SI:TOP-LEVEL 00000001005c0f60>.<br>
<br>
<br>
This doesn't happen when I leave out the dynamic-extent declaration. Somehow, the si::no-check-type declaration for gf seems to get lost then (but that's just a guess on my side).<br>
<br>
It is indeed the case that (typep (allocate-instance (find-class 'my-gf)) 'function) yields nil.<br>
<br>
<br>
Best,<br>
Pascal<br>
<br>
--<br>
Pascal Costanza, mailto:<a href="mailto:pc@p-cos.net">pc@p-cos.net</a>, <a href="http://p-cos.net" target="_blank">http://p-cos.net</a><br>
Vrije Universiteit Brussel<br>
Software Languages Lab<br>
Pleinlaan 2, B-1050 Brussel, Belgium<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
------------------------------------------------------------------------------<br>
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day<br>
trial. Simplify your report design, integration and deployment - and focus on<br>
what you do best, core application coding. Discover what's new with<br>
Crystal Reports now.  <a href="http://p.sf.net/sfu/bobj-july" target="_blank">http://p.sf.net/sfu/bobj-july</a><br>
_______________________________________________<br>
Ecls-list mailing list<br>
<a href="mailto:Ecls-list@lists.sourceforge.net">Ecls-list@lists.sourceforge.net</a><br>
<a href="https://lists.sourceforge.net/lists/listinfo/ecls-list" target="_blank">https://lists.sourceforge.net/lists/listinfo/ecls-list</a><br>
</blockquote></div><br><br clear="all"><br>-- <br>Instituto de Física Fundamental, CSIC<br>c/ Serrano, 113b, Madrid 28006 (Spain) <br><a href="http://juanjose.garciaripoll.googlepages.com">http://juanjose.garciaripoll.googlepages.com</a><br>

</div>