From marcoxa at cs.nyu.edu Thu Nov 10 16:40:58 2005 From: marcoxa at cs.nyu.edu (Marco Antoniotti) Date: Thu, 10 Nov 2005 11:40:58 -0500 Subject: [cl-unification-devel] Re: Problems with cl-unification In-Reply-To: <1131612965.43730b257db31@webmail.daimi.au.dk> References: <1131612965.43730b257db31@webmail.daimi.au.dk> Message-ID: 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. From marcoxa at cs.nyu.edu Fri Nov 11 15:14:42 2005 From: marcoxa at cs.nyu.edu (Marco Antoniotti) Date: Fri, 11 Nov 2005 10:14:42 -0500 Subject: [cl-unification-devel] Re: Problems with cl-unification In-Reply-To: <43746ED0.6030302@daimi.au.dk> References: <1131612965.43730b257db31@webmail.daimi.au.dk> <43746ED0.6030302@daimi.au.dk> Message-ID: <0e86cd09897e516bc2a4127b91a35587@cs.nyu.edu> Thanks Peter, can you send me a diff of the changes you made? Thanks marco On Nov 11, 2005, at 5:13 AM, Peter Mechlenborg wrote: > Marco Antoniotti wrote: >> 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 also changed the &rest argument in match-case to &body to get Slime > to indent the macro better. > >>> >>> - 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. > > If you did, I would be really scared :-). It's something for my master, > and not relevant. > > Here is a cleaned up version that seems to have the same problem. > > (defun nested-match-cases (input) > (match-case (input) > ((:a ?a :b ?bs) > (loop for b in ?bs > collect (match-case (b) > ((:c ?c) ?c) > ((:d ?d) ?d) > (otherwise (error 'error-inner))))) > (otherwise 'error-outer))) > > >> However, I will fix the problems with CL-UNIFICATION ASAP. >> Meanwhile, why don't you subscribe to the cl-unification-devel >> mailing list? > > Just did! > >> Cheers >> -- >> Marco > > -- Peter > -- 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.