From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: David Pirotte Newsgroups: gmane.lisp.guile.bugs Subject: bug#19459: #:export does not honor the merge-generics contract Date: Sun, 26 Jun 2016 23:54:55 -0300 Message-ID: <20160626235455.7726d721@capac> References: <20141228162024.048ca208@capac> <87vb11q8ir.fsf@pobox.com> <20160623162321.448e47af@capac> <87oa6rllfg.fsf@pobox.com> <20160623181103.00e09d95@capac> <87twgjji1k.fsf@pobox.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; boundary="Sig_/hO.=B9pt+6R8i2_3TBkz90x"; protocol="application/pgp-signature" X-Trace: ger.gmane.org 1467009694 15115 80.91.229.3 (27 Jun 2016 06:41:34 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 27 Jun 2016 06:41:34 +0000 (UTC) Cc: 19459@debbugs.gnu.org To: Andy Wingo Original-X-From: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Mon Jun 27 04:58:02 2016 Return-path: Envelope-to: guile-bugs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1bHMkL-0005yb-9Y for guile-bugs@m.gmane.org; Mon, 27 Jun 2016 04:58:01 +0200 Original-Received: from localhost ([::1]:56074 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bHMkK-0004Rg-8o for guile-bugs@m.gmane.org; Sun, 26 Jun 2016 22:58:00 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:38181) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bHMiV-0002Uv-8Z for bug-guile@gnu.org; Sun, 26 Jun 2016 22:56:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bHMiQ-0008RJ-BV for bug-guile@gnu.org; Sun, 26 Jun 2016 22:56:07 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:44957) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bHMiQ-0008RF-7w for bug-guile@gnu.org; Sun, 26 Jun 2016 22:56:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1bHMiQ-0007R2-0t for bug-guile@gnu.org; Sun, 26 Jun 2016 22:56:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: David Pirotte Original-Sender: "Debbugs-submit" Resent-CC: bug-guile@gnu.org Resent-Date: Mon, 27 Jun 2016 02:56:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 19459 X-GNU-PR-Package: guile X-GNU-PR-Keywords: Original-Received: via spool by 19459-submit@debbugs.gnu.org id=B19459.146699612528527 (code B ref 19459); Mon, 27 Jun 2016 02:56:01 +0000 Original-Received: (at 19459) by debbugs.gnu.org; 27 Jun 2016 02:55:25 +0000 Original-Received: from localhost ([127.0.0.1]:57294 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bHMhp-0007Q3-4M for submit@debbugs.gnu.org; Sun, 26 Jun 2016 22:55:25 -0400 Original-Received: from maximusconfessor.all2all.org ([79.99.200.102]:47530) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bHMhl-0007Pr-Qq for 19459@debbugs.gnu.org; Sun, 26 Jun 2016 22:55:23 -0400 Original-Received: from localhost (unknown [192.168.0.2]) by maximusconfessor.all2all.org (Postfix) with ESMTP id 76D16A04C114; Mon, 27 Jun 2016 04:55:09 +0200 (CEST) Original-Received: from maximusconfessor.all2all.org ([192.168.0.1]) by localhost (maximusconfessor.all2all.org [192.168.0.2]) (amavisd-new, port 10024) with ESMTP id Z3vnEo6vN7r0; Mon, 27 Jun 2016 04:55:05 +0200 (CEST) Original-Received: from capac (unknown [177.40.205.170]) by maximusconfessor.all2all.org (Postfix) with ESMTPSA id 0AD8FA04C10C; Mon, 27 Jun 2016 04:55:01 +0200 (CEST) In-Reply-To: <87twgjji1k.fsf@pobox.com> X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.30; x86_64-pc-linux-gnu) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-guile@gnu.org 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" Xref: news.gmane.org gmane.lisp.guile.bugs:8257 --Sig_/hO.=B9pt+6R8i2_3TBkz90x Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Hello Andy, > >> 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. =20 > > It is a module bug, not a GOOPS bug, see my 'personal/local' fix: the p= roblem is > > that once the user uses #:export, guile's module system create a new bi= nding, > > and it should not ... [hence this confusion as well: as it is: the modu= le must > > merge its definition with the imported ones, even if it imported only 1 > > generic ... because of a module bug...] =20 > I... I just think you're wrong here, sorry :/ That's just not how the > system works. If you #:export an identifier in a module, you create a > fresh local binding, and that binding doesn't implicitly extend an > imported binding, merge-generics or no. Merge-generics only operates on > the import interface of a module. I don't think so, and I feel sorry too ;/. We disagree, which is different,= and nobody is 'right' or 'wrong' here. [and I know 'how the system works, I des= cribed it that in the original email, I'd like to change that, hence this thread .= ..] IMO, this should never fail: ,use (b) make Your last sentence states that merge-generics only operates on the import i= nterface of a module: that is the feature I'm referring to to claim the above: [ using #:export ] t0 the system creates new 'empty' binding at some point 'it' knows it is a gf ti it imports (a) now the (b) module interface is facing a duplicate gf binding, and accordi= ng to the user settings wrt to this, it has to merge. Then you tell me 'yep David, internally the system faced an import situatio= n, and ok, let's merge, _but_ #:export must export a fresh new ... I can buy that,= but do we have the technology do implement this senario?=20 I believe, still referring to your last sentence, the above sentence as wel= l and respecting your position, that we should rather create/have global setting 'export-rexport-imported-gf' [or a better name.], WDYT? Happy Hacking, David --Sig_/hO.=B9pt+6R8i2_3TBkz90x Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBCAAGBQJXcJV/AAoJEPN0/ZOjBXrXio8H/2cqcZOhIdfiH8dffT6yk+fL 78XQrI4Nmzvfv/u4wTjJ+thqHilqjEQbcLy2JjI1QJNi4IMWQwPsD7pAvVSwt1ix KMxrIVHh/ujOqK8alINV69F9X7+PURMEOwt00IhvfHAjN+Rfg+bB4fbx3qAwjJA8 h++bF6FFdigfbDKKnDtSMg4AqArKWqVobF+6qCAjfV0PvtRFjydqThPosKuSkQhO a4+XHulAL0o0BsRrg0scn05ATV92MlVYZtb7dgTY5jH7v/cwh6PJTQZZKqtBB4HF mwBfSRNxLijIUJuGIoIn3JBOWgISGPquu/ZApxqGcYp/owdDZWi4dmirXcN1GC8= =zcMJ -----END PGP SIGNATURE----- --Sig_/hO.=B9pt+6R8i2_3TBkz90x--