From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Andy Wingo Newsgroups: gmane.lisp.guile.bugs Subject: Re: module system / (oop goops) / :duplicates (merge-generics) / bug? Date: Fri, 02 Sep 2011 13:26:20 +0200 Message-ID: <87ehzz423n.fsf@pobox.com> References: <20110705183229.6f779a6b@rascar> <87vcvfcrjc.fsf@gnu.org> <20110706162244.2bf4b90a@rascar> <87ipre48zj.fsf@pobox.com> <20110707132659.2cee382d@rascar> <87box54xjg.fsf@pobox.com> <20110708140559.6ed55cd9@rascar> <87tyav3h7q.fsf@pobox.com> <20110709120816.0827236b@rascar> <87aack3jif.fsf@pobox.com> <20110711222555.4bd45679@rascar> <87bovngf01.fsf@pobox.com> <20110819024043.74a4d71e@rascar> <20110829140518.4ad0c46a@rascar> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: dough.gmane.org 1314963605 21588 80.91.229.12 (2 Sep 2011 11:40:05 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Fri, 2 Sep 2011 11:40:05 +0000 (UTC) Cc: bug-guile@gnu.org, Ludovic =?utf-8?Q?Court=C3=A8s?= To: David Pirotte Original-X-From: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Fri Sep 02 13:40:00 2011 Return-path: Envelope-to: guile-bugs@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1QzS6I-0003RP-Qa for guile-bugs@m.gmane.org; Fri, 02 Sep 2011 13:39:59 +0200 Original-Received: from localhost ([::1]:49130 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QzS6I-0000H1-C7 for guile-bugs@m.gmane.org; Fri, 02 Sep 2011 07:39:58 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]:50234) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QzS6F-0000Gl-CW for bug-guile@gnu.org; Fri, 02 Sep 2011 07:39:56 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QzS6E-0006vO-54 for bug-guile@gnu.org; Fri, 02 Sep 2011 07:39:55 -0400 Original-Received: from a-pb-sasl-sd.pobox.com ([74.115.168.62]:53950 helo=sasl.smtp.pobox.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QzS6E-0006vD-22; Fri, 02 Sep 2011 07:39:54 -0400 Original-Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTP id 431C85E24; Fri, 2 Sep 2011 07:39:53 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type:content-transfer-encoding; s=sasl; bh=Tr+4nfVSvX+D k2GqCiMoxsR7tps=; b=iruKsoW9XAt6iiqu7TK4x0yGy49oYy8UbkKjaPs461PP dqUpG+vR/W7GGCxvlX6ztEsvmz5o5q+kDoAcvern9izRnFv5E/dTZSc7fyg1nz+4 C3Y1eZjx3YE5RJnNAOgIoQIEi4AUpYLQZCJRhMClk/Hq5/AdEhAW3Z1c3SXlkig= DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type:content-transfer-encoding; q=dns; s=sasl; b=rCaV3t l2fuELKY9Y3w3FlEZ/fy+9beHA/hhbUvXsVIoifYUAwNSMnkepOJT+CebUyKzE7j kSEp6qHhMjWyF4pOAvWB4PcH6zT5X6boRvii1pl8YbTvfDuUaNY4nHvsSIovkv0w UPX65PluTQSh0BkEcFUX9Y9vUzWHOsN/7Qp58= Original-Received: from a-pb-sasl-sd.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTP id 3C0505E23; Fri, 2 Sep 2011 07:39:53 -0400 (EDT) Original-Received: from badger (unknown [90.164.198.39]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTPSA id 836465E21; Fri, 2 Sep 2011 07:39:52 -0400 (EDT) In-Reply-To: <20110829140518.4ad0c46a@rascar> (David Pirotte's message of "Mon, 29 Aug 2011 14:05:18 -0300") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.3 (gnu/linux) X-Pobox-Relay-ID: 45DA84E6-D558-11E0-B22C-65B1DE995924-02397024!a-pb-sasl-sd.pobox.com X-detected-operating-system: by eggs.gnu.org: Solaris 10 (beta) X-Received-From: 74.115.168.62 X-BeenThere: bug-guile@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Bug reports for GUILE, GNU's Ubiquitous Extension Language" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Original-Sender: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.bugs:5804 Archived-At: Hi David, On Mon 29 Aug 2011 19:05, David Pirotte writes: > I finally could reproduce the problem and wrote an example you can run 'i= n the cafe > without internet' :) [hopefully]=20 Well. This was indeed an amusing issue :) I am indeed sitting in the caf=C3=A9, and so thank you :) However right now I trust Guile more than I trust Guile-GNOME, so an more minimal case is even better :) Like this: a.scm: (define-module (a) #:use-module (oop goops) #:export ( foo bar make-a)) (define-class () (foo #:accessor foo #:init-keyword #:foo #:init-value #f) (bar #:accessor bar #:init-keyword #:bar #:init-value #f)) (define (make-a) (make #:foo "qux" #:bar "a")) b.scm: (define-module (b) #:use-module (oop goops) #:export ( bar make-b)) (define-class () (bar #:accessor bar #:init-keyword #:bar #:init-value #f)) (define (make-b) (make #:bar "b")) test.scm: (define-module (test) #:use-module (ice-9 format) #:use-module (oop goops) #:use-module (a) #:use-module (b) #:duplicates (merge-generics=20 replace warn-override-core warn last) #:export (run-test)) (define (run-test) (let* ((a (make-a)) (b (make-b))) (format #t "(bar a): ~S~%" (bar a)) (format #t "(bar b): ~S~%" (bar b)))) The ultimate issue was a cache coherency problem. The set of methods of an extended (merged) generic depends on the sets of methods of the extendees. Some aspects about the method set are cached. This cache was not being managed properly. I believe that I have fixed it in Guile. Thanks for the report, Andy --=20 http://wingolog.org/