GNU bug report logs - #19459
#:export does not honor the merge-generics contract

Previous Next

Package: guile;

Reported by: David Pirotte <david <at> altosw.be>

Date: Sun, 28 Dec 2014 18:22:01 UTC

Severity: normal

Full log


Message #14 received at 19459 <at> debbugs.gnu.org (full text, mbox):

From: Andy Wingo <wingo <at> pobox.com>
To: David Pirotte <david <at> altosw.be>
Cc: 19459 <at> debbugs.gnu.org
Subject: Re: bug#19459: #:export does not honor the merge-generics contract
Date: Thu, 23 Jun 2016 22:06:27 +0200
On Thu 23 Jun 2016 21:23, David Pirotte <david <at> altosw.be> writes:

> Hi Andy,
>
>> > (define-module (a)
>> >   #:use-module (oop goops)
>> >   #:export (<a>
>> > 	    !width
>> > 	    get-width
>> > 	    set-width))  
>
>> Here you export four bindings: one class and three generics.  Those
>> three generics have methods on <a>.
>
>> > (define-module (b)
>> >   #:use-module (oop goops)
>> >   #:use-module (a)  
>
>> Here you import the previous four bindings.
>
>> >   #:export (<b>
>> > 	    !width
>> > 	    get-width
>> > 	    set-width))  
>
>> However here you declare that you are going to export four new
>> bindings.
>> ...
>
> Under the exact circumstances of the original email, I disagree, see below.

I see.  You were expecting for the dynamically setting the
default-duplicate-binding-handler parameter to make a difference.
However I think this is maybe not the right way to set this up; see
reasoning in http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20093.

However... I believe merge-generics is intended to merge duplicate
imported bindings.  It does not provide a copy-on-write version of an
imported generic, if that generic was not duplicated in the imports.
There is no facility in GOOPS to do that, AFAIU.

Did I get it right this time? :)

Andy




This bug report was last modified 8 years and 354 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.