[armedbear-ticket] [armedbear] #38: CLOS :metaclass support
#38: CLOS :metaclass support ------------------------+--------------------------------------------------- Reporter: ehuelsmann | Owner: somebody Type: defect | Status: new Priority: major | Milestone: Component: component1 | Version: Keywords: | ------------------------+--------------------------------------------------- Blake McBride reports: Running the code: (defclass meta-class1 (standard-class) (cv1 cv2 cv3) (:metaclass standard-class)) (defclass class1 (standard-object) (iv1 iv2 iv3) (:metaclass meta-class1)) The second object returns: #<STANDARD-CLASS CLASS1 {F673CC}> It should be: #<META-CLASS1 CLASS1 {F673CC}> Not only is it reporting the wrong class of class1 but it doesn't work either. I suppose ABCL doesn't support the :metaclass option. It just ignores it. The problem is that without that option ABCL's CLOS is severely limited. Any plans to fix this? Thanks. Blake McBride -- Ticket URL: <http://127.0.0.1:8000/armedbear/ticket/38> armedbear <http://common-lisp.net/project/armedbear> armedbear
#38: CLOS :metaclass support -------------------------+-------------------------------------------------- Reporter: ehuelsmann | Owner: ehuelsmann Type: defect | Status: accepted Priority: major | Milestone: 0.20 Component: other | Version: Resolution: | Keywords: -------------------------+-------------------------------------------------- Changes (by ehuelsmann): * owner: somebody => ehuelsmann * status: new => accepted * milestone: => 0.20 -- Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/38#comment:1> armedbear <http://common-lisp.net/project/armedbear> armedbear
#38: CLOS :metaclass support -------------------------+-------------------------------------------------- Reporter: ehuelsmann | Owner: ehuelsmann Type: defect | Status: accepted Priority: major | Milestone: 0.20 Component: other | Version: Resolution: | Keywords: -------------------------+-------------------------------------------------- Comment(by ehuelsmann): (In [12527]) Make all class accessor functions generic functions instead of normal ones, to support METACLASS. Additionally, make it possible to store general objects in Layout.lispClass. Because classes may be of a different Java type than StandardClass, fall back to the generic functions to access the required fields from Java. See #38. -- Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/38#comment:2> armedbear <http://common-lisp.net/project/armedbear> armedbear
#38: CLOS :metaclass support -------------------------+-------------------------------------------------- Reporter: ehuelsmann | Owner: ehuelsmann Type: defect | Status: accepted Priority: major | Milestone: 0.20 Component: other | Version: Resolution: | Keywords: -------------------------+-------------------------------------------------- Description changed by ehuelsmann: Old description:
Blake McBride reports:
Running the code:
(defclass meta-class1 (standard-class) (cv1 cv2 cv3) (:metaclass standard-class))
(defclass class1 (standard-object) (iv1 iv2 iv3) (:metaclass meta-class1))
The second object returns:
#<STANDARD-CLASS CLASS1 {F673CC}>
It should be:
#<META-CLASS1 CLASS1 {F673CC}>
Not only is it reporting the wrong class of class1 but it doesn't work either. I suppose ABCL doesn't support the :metaclass option. It just ignores it. The problem is that without that option ABCL's CLOS is severely limited. Any plans to fix this?
Thanks.
Blake McBride
New description: Blake McBride reports: Running the code: {{{ (defclass meta-class1 (standard-class) (cv1 cv2 cv3) (:metaclass standard-class)) (defclass class1 (standard-object) (iv1 iv2 iv3) (:metaclass meta-class1)) }}} The second object returns: #<STANDARD-CLASS CLASS1 {F673CC}> It should be: #<META-CLASS1 CLASS1 {F673CC}> Not only is it reporting the wrong class of class1 but it doesn't work either. I suppose ABCL doesn't support the :metaclass option. It just ignores it. The problem is that without that option ABCL's CLOS is severely limited. Any plans to fix this? Thanks. Blake McBride -- -- Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/38#comment:3> armedbear <http://common-lisp.net/project/armedbear> armedbear
#38: CLOS :metaclass support -------------------------+-------------------------------------------------- Reporter: ehuelsmann | Owner: ehuelsmann Type: defect | Status: accepted Priority: major | Milestone: 0.20 Component: other | Version: Resolution: | Keywords: -------------------------+-------------------------------------------------- Comment(by ehuelsmann): (In [12529]) Re #38: CLASSP can't be checked with instanceof alone any longer. -- Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/38#comment:4> armedbear <http://common-lisp.net/project/armedbear> armedbear
#38: CLOS :metaclass support -------------------------+-------------------------------------------------- Reporter: ehuelsmann | Owner: ehuelsmann Type: defect | Status: accepted Priority: major | Milestone: 0.20 Component: other | Version: Resolution: | Keywords: -------------------------+-------------------------------------------------- Comment(by ehuelsmann): (In [12530]) Re #38: Make method creation and dispatch possible for classes with non-standard-class metaclasses. -- Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/38#comment:5> armedbear <http://common-lisp.net/project/armedbear> armedbear
#38: CLOS :metaclass support -------------------------+-------------------------------------------------- Reporter: ehuelsmann | Owner: ehuelsmann Type: defect | Status: accepted Priority: major | Milestone: 0.20 Component: other | Version: Resolution: | Keywords: -------------------------+-------------------------------------------------- Comment(by ehuelsmann): (In [12534]) Make sure non-standard (meta) classes aren't cast to LispClass as they are StandardObject-s. Re #38. -- Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/38#comment:6> armedbear <http://common-lisp.net/project/armedbear> armedbear
#38: CLOS :metaclass support -------------------------+-------------------------------------------------- Reporter: ehuelsmann | Owner: ehuelsmann Type: defect | Status: accepted Priority: major | Milestone: 0.20 Component: other | Version: Resolution: | Keywords: -------------------------+-------------------------------------------------- Comment(by ehuelsmann): (In [12576]) Re #38: Merge the METACLASS branch to trunk. -- Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/38#comment:7> armedbear <http://common-lisp.net/project/armedbear> armedbear
#38: CLOS :metaclass support -------------------------+-------------------------------------------------- Reporter: ehuelsmann | Owner: ehuelsmann Type: defect | Status: accepted Priority: major | Milestone: 0.20 Component: other | Version: Resolution: | Keywords: -------------------------+-------------------------------------------------- Comment(by ehuelsmann): (In [12577]) Re #38: Delete merged metaclass branch. -- Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/38#comment:8> armedbear <http://common-lisp.net/project/armedbear> armedbear
#38: CLOS :metaclass support -------------------------+-------------------------------------------------- Reporter: ehuelsmann | Owner: ehuelsmann Type: defect | Status: accepted Priority: major | Milestone: 0.20 Component: other | Version: Resolution: | Keywords: -------------------------+-------------------------------------------------- Comment(by ehuelsmann): (In [12582]) Re #38: Make Cells compile with our metaclass support by making a documentation initarg. -- Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/38#comment:9> armedbear <http://common-lisp.net/project/armedbear> armedbear
#38: CLOS :metaclass support -------------------------+-------------------------------------------------- Reporter: ehuelsmann | Owner: ehuelsmann Type: defect | Status: closed Priority: major | Milestone: 0.20 Component: other | Version: Resolution: fixed | Keywords: -------------------------+-------------------------------------------------- Changes (by ehuelsmann): * status: accepted => closed * resolution: => fixed Comment: (In [12658]) Close #38: Add some metaclass tests - to be expanded upon fixing encountered issues. -- Ticket URL: <http://trac.common-lisp.net/armedbear/ticket/38#comment:10> armedbear <http://common-lisp.net/project/armedbear> armedbear
participants (1)
-
armedbear