Hello Bob,<br><br><div class="gmail_quote">On Thu, May 1, 2008 at 5:52 PM, Robert Brown <<a href="mailto:brown@google.com">brown@google.com</a>> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I tried to get CLPython up and running on the latest SBCL.  The diff below<br>
contains a couple of easy fixes.  SBCL wants BREAK's argument to be a string<br>
and SBCL's LOOP does not like a negative loop increment.</blockquote><div><br>Thanks for the patches!<br> <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
The real porting problem right now is CLOS related.  SBCL does not like the<br>
following code in core/classes.lisp:<br>
<br>
    ;; Fix superclass and metaclass of PY-DICT.<br>
    (ensure-class 'py-dict<br>
                  :direct-superclasses (list 'py-core-object)<br>
                  :metaclass 'py-core-type)<br>
<br>
I get the following error:<br>
<br>
    debugger invoked on a SB-PCL::METAOBJECT-INITIALIZATION-VIOLATION in thread<br>
    #<THREAD "initial thread" {11701A79}>:<br>
      Cannot CHANGE-CLASS objects into CLASS metaobjects.<br>
    See also:<br>
      AMOP, Initialization of Class Metaobjects<br>
<br>
I think the problem is that PY-DICT is a normal class and the ENSURE-CLASS<br>
call tries to turn it into a metaclass.  Anyway, I'm far from a CLOS expert.</blockquote><div><br>Well, class py-dict is not turned into a metaclass here, at least that's not the intention. :) The superclass and metaclass of it are changed but py-dict remains a non-metaclass class. So I think the actual error message is incorrect, but something else is wrong.<br>
<br>The problem might be that you can not change the metaclasses of a class using ensure-class. Could you please check if the call to ensure-class without the metaclass change is accepted?<br><br>(ensure-class 'py-dict<br>
                    :direct-superclasses (list 'py-core-object))<br><br>Thanks,<br>- Willem<br></div></div>