[cl-unification-devel] Re: Problems with cl-unification

Marco Antoniotti marcoxa at cs.nyu.edu
Thu Nov 10 16:40:58 UTC 2005


On Nov 10, 2005, at 3:56 AM, Peter Julian Marstrand Mechlenborg wrote:

> Hi
>
> I have gotten cl-unification from CVS:
> [goblin:~/.asdf-install-dir/site]$cvs -z3 -d
> :pserver:anonymous:anonymous at common-lisp.net:/project/cl-unification/ 
> cvsroot co
> cl-unification
>
> and I have used SBCL 0.9.6 and clisp-2.33.2.
>
> First some notes.
>
> - The macro match-case is not exported. Is this correct?.

Yep.  I need to get back to work on this.
>

> - I think this code snippet in match-case:
>
>    ...
>    (otherwise-claus
>      (if otherwise-clause-present-p
>          (first (last clauses))
>    ...
>
> should be replaced with this:
>
>    ...
>    (otherwise-clause
>       (if otherwise-clause-present-p
>           `(progn ,@(rest (first (last clauses))))
>    ...
>
> Otherwise I get the error "the function: otherwise not defined".

Yes.  This looks like a bug.  Thanks for the report.

I cannot quite help you with the code below.  I do not know what  
BOUND-IDL-CLASSES is and so on.
However, I will fix the problems with CL-UNIFICATION ASAP.

Meanwhile, why don't you subscribe to the cl-unification-devel mailing  
list?

Cheers
--
Marco










>
>
> Here comes my problem.
>
> I have this in a file (unify-problems.lisp):
>
> =Start============
>
> (in-package :unify)
>
> (defun check-bindings (interface-bindings)
>    (match-case (interface-bindings)
>
>      ((:interface ?interface-name :bindings ?binds)
>       (let ((bound-idl-classes (loop for binding in ?binds
>                                     collect (match-case (binding)
>                                               ((:concrete-class ?_  
> :idl-class
> ?idl-class-name)
>                                                ?idl-class-name)
>                                               ((:concrete-class ?foo  
> :idl-class
> ?idl-class-name)
>                                                ?idl-class-name)
>                                               (otherwise
>                                                (error "UTILS:  
> Interface binding
> has wrong format: ~S"
>                                                       binding))))))
>         bound-idl-classes))
>
>      (otherwise (error "UTILS: Interface binding has wrong format: ~S"
> interface-bindings))))
>
> #|
> (check-bindings '(:interface |Set-interface| :bindings  
> ((:concrete-class |SetC|
> :idl-class |Set|)
>                                                           
> (:concrete-class
> |BigSetC| :idl-class |BigSet|)
>                                                           
> (:concrete-class
> |BigSetC| :idl-class |BigSet|))))
> ==> (|Set| |BigSet| |BigSet|)
>
> (check-bindings '(:interface |Set-interface| :bindings  
> ((:concrete-class |SetC|
> :idl-class |Set|)
>                                                           
> (:concrete-class
> |BigSetC| :idl-class |BigSet|))))
> ==> (|Set| |BigSet|)
>
> (check-bindings '(:interface |Set-interface| :bindings  
> ((:concrete-class |SetC|
> :idl-class |Set|))))
>
> ==> (|Set|)
> |#
>
> =End===============
>
> When compiling the file with C-c-k in Slime I get 3 errors which I  
> don't
> understand
> (only in SBCL, in Clisp it's ok). I can compile the function using  
> C-c-c in
> Slime, but
> when I test it with the code in the comment above, I run into trouble  
> again. The
> test
> only gives the correct result for the first test you run, no matter  
> which one.
>
> Am I doing something stupid, or is this a bug? Hope you can help.
>
> Bye,
>
>    --  Peter Mechlenborg
>
--
Marco Antoniotti					http://bioinformatics.nyu.edu/~marcoxa
NYU Courant Bioinformatics Group		tel. +1 - 212 - 998 3488
715 Broadway 10th FL				fax. +1 - 212 - 998 3484
New York, NY, 10003, U.S.A.




More information about the cl-unification-devel mailing list