From debbugs-submit-bounces@debbugs.gnu.org Wed Mar 11 23:18:05 2015 Received: (at submit) by debbugs.gnu.org; 12 Mar 2015 03:18:05 +0000 Received: from localhost ([127.0.0.1]:43310 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YVtdM-0006Rb-ID for submit@debbugs.gnu.org; Wed, 11 Mar 2015 23:18:04 -0400 Received: from eggs.gnu.org ([208.118.235.92]:43632) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1YVtdK-0006R6-EP for submit@debbugs.gnu.org; Wed, 11 Mar 2015 23:18:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YVtdE-0000Ij-45 for submit@debbugs.gnu.org; Wed, 11 Mar 2015 23:17:57 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:33607) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YVtdE-0000Ib-13 for submit@debbugs.gnu.org; Wed, 11 Mar 2015 23:17:56 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45354) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YVtdC-0006Zu-Sy for bug-guile@gnu.org; Wed, 11 Mar 2015 23:17:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YVtd9-0000I1-Ii for bug-guile@gnu.org; Wed, 11 Mar 2015 23:17:54 -0400 Received: from maximusconfessor.all2all.org ([79.99.200.102]:41295) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YVtd9-0000Ef-9W for bug-guile@gnu.org; Wed, 11 Mar 2015 23:17:51 -0400 Received: from localhost (unknown [192.168.0.2]) by maximusconfessor.all2all.org (Postfix) with ESMTP id 5941AA04C166 for ; Thu, 12 Mar 2015 04:17:29 +0100 (CET) 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 48zDj-t6gs4v for ; Thu, 12 Mar 2015 04:17:22 +0100 (CET) Received: from capac (unknown [179.210.40.186]) by maximusconfessor.all2all.org (Postfix) with ESMTPSA id 392CBA04C163 for ; Thu, 12 Mar 2015 04:17:22 +0100 (CET) Date: Thu, 12 Mar 2015 00:17:18 -0300 From: David Pirotte To: Subject: master: setting merge-generics duplicate-binding-handler @ expand time raises an error Message-ID: <20150312001718.5d1ae438@capac> X-Mailer: Claws Mail 3.11.1 (GTK+ 2.24.25; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; boundary="Sig_/oiidVvOT=R3xMv2hUDCq1t="; protocol="application/pgp-signature" X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -5.0 (-----) --Sig_/oiidVvOT=R3xMv2hUDCq1t= Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Hello guilers, Hi Andy, Following our brief chat on irc, yesterday, here is he bug I was referring = to: GNU Guile 2.1.0.322-eb3d6 setting merge-generics duplicate-binding-handler @ expand time raises an error. a) here is a short test case: --8<---------------cut here---------------start------------->8--- #! /bin/sh # -*- mode: scheme; coding: utf-8 -*- exec guile -e main -s $0 "$@" !# (eval-when (expand load eval) (use-modules (oop goops)) (default-duplicate-binding-handler '(merge-generics replace warn-override-core warn last))) (define (main args) (display "hello\n")) --8<---------------cut here---------------start------------->8--- =3D> david@capac:~/alto/projects/guile-tests/2.2/goops/duplicate-binding-handler= 76 $ ./hello=20 ;;; note: source file /usr/alto/projects/guile-tests/2.2/goops/duplicate-bi= nding-handler/./hello ;;; newer than compiled /home/david/.cache/guile/ccache/2.2-LE-8-3.6/= usr/alto/projects/guile-tests/2.2/goops/duplicate-binding-handler/hello.go ;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=3D0 ;;; or pass the --no-auto-compile argument to disable. ;;; compiling /usr/alto/projects/guile-tests/2.2/goops/duplicate-binding-ha= ndler/./hello ;;; WARNING: compilation of /usr/alto/projects/guile-tests/2.2/goops/duplic= ate-binding-handler/./hello failed: ;;; ERROR: No applicable method for #< merge-generics (3)> in call= Error while printing exception. hello! b) here is how it propagates, 'just' trying to import 2 gnome modules: --8<---------------cut here---------------start------------->8--- #! /bin/sh # -*- mode: scheme; coding: utf-8 -*- exec guile -e main -s $0 "$@" !# (eval-when (expand load eval) (use-modules (oop goops)) (default-duplicate-binding-handler '(merge-generics replace warn-override-core warn last))) (use-modules (gnome-2) (gnome gobject) (gnome glib)) (define (main args) (display "hello!\n")) --8<---------------cut here---------------start------------->8--- =3D> david@capac:~/alto/projects/guile-tests/2.2/goops/duplicate-binding-handler= 40 $ ./hello ;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=3D0 ;;; or pass the --no-auto-compile argument to disable. ;;; compiling /usr/alto/projects/guile-tests/2.2/goops/duplicate-binding-ha= ndler/./hello ;;; WARNING: compilation of /usr/alto/projects/guile-tests/2.2/goops/duplic= ate-binding-handler/./hello failed: ;;; ERROR: No applicable method for #< merge-generics (3)> in call= Error while printing exception. Backtrace: In ice-9/boot-9.scm: 3275: 19 [try-module-autoload _ _] 2611: 18 [save-module-excursion #] 3295: 17 [#] In unknown file: ?: 16 [primitive-load-path "gnome/gw/glib" #] In gnome/gw/glib.scm: 15: 15 [#] In unknown file: ?: 14 [load-extension "libgw-guile-gnome-glib" "gw_init_wrapset_gnome_gl= ib"] In ice-9/boot-9.scm: 2999: 13 [#> # = _ _ ...] 3275: 12 [try-module-autoload _ _] 2611: 11 [save-module-excursion #] 3295: 10 [#] In unknown file: ?: 9 [primitive-load-path "gnome/gw/generics" #] In gnome/gw/generics.scm: 35: 8 [#f] In ice-9/boot-9.scm: 3136: 7 [define-module* _ #:filename _ #:pure _ #:version _ #:duplicates ..= .] 3074: 6 [resolve-interface (gnome gobject generics) #:select ...] 2999: 5 [#> # _= _ ...] 3275: 4 [try-module-autoload _ _] 2611: 3 [save-module-excursion #] 3295: 2 [#] In unknown file: ?: 1 [primitive-load-path "gnome/gobject/generics" ...] In gnome/gobject/generics.scm: 130: 0 [()] gnome/gobject/generics.scm:130:0: In procedure (): gnome/gobject/generics.scm:130:0: In procedure module-lookup: Unbound varia= ble: david@capac:~/alto/projects/guile-tests/2.2/goops/duplicate-binding-handler= 41 $=20 Cheers, David --Sig_/oiidVvOT=R3xMv2hUDCq1t= Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBCAAGBQJVAQU+AAoJEPN0/ZOjBXrXTCMH+wagII0Eh0Xhf8W/eKK3pdU/ 1eYjklpL/kXC/69p8VmYGhvVFPnN6ID75zKBPo52fEb8zWK9q5jV9RhOBOSgv0gu HOpPZZ7x8DyRRP+wRPvXh/Ss7q3JOLfsjz6M9rV4a6o2Mpw9KDSnGxCvKw5s1Avx mVG4qBasvgooYjqCihm48RRnCXEwSQg7t50HcvtEq0XWxwxfsOXdwx5tYnjgnMlX b28oQ9k+eHC+nUAAZqkrNdGcwNnlVrfBcXsY6iMg06hNBkzrwtTihvT7KgbsVSbl 3uXAfxzkUPVYY/y9hK/xUvGl/AOSevCrNFkHbHB02jEMeZRCPT+arrnSoEisYls= =oNSQ -----END PGP SIGNATURE----- --Sig_/oiidVvOT=R3xMv2hUDCq1t=-- From debbugs-submit-bounces@debbugs.gnu.org Thu Jun 23 12:00:39 2016 Received: (at 20093-done) by debbugs.gnu.org; 23 Jun 2016 16:00:39 +0000 Received: from localhost ([127.0.0.1]:52839 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bG73W-0005mO-Op for submit@debbugs.gnu.org; Thu, 23 Jun 2016 12:00:39 -0400 Received: from pb-sasl1.pobox.com ([64.147.108.66]:64755 helo=sasl.smtp.pobox.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bG73V-0005mG-N0 for 20093-done@debbugs.gnu.org; Thu, 23 Jun 2016 12:00:38 -0400 Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by pb-sasl1.pobox.com (Postfix) with ESMTP id 0F4C12425C; Thu, 23 Jun 2016 12:00:36 -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; s=sasl; bh=D/QT++DdCh0N/9wdvbJA4pnvLWo=; b=tS/mB1 xMc017Ou+oJ50VFLTRZFXlNuBm8QoOXvVb+EHGHDozF9EMHrMiJfsqBEQiZg8Y/U qJA7m12vQxMPcxx86VENmy+9LVdBRjGx8LhYNMw3+9+gg35lPY/9iqbxnBS78ZFu cruvtntpoODYoUbQmvakbD2dMBN29bj6E8DOg= 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; q=dns; s=sasl; b=Qe63tClkppaYH+O4UAP25cG/7H6jiIw+ mxm3WzIofeuUfHRljJNbp4/vyW+T9UPkiUIO9L4XDzFwOefeKK01gG/CXEH05Nle 9JRdCvjYr5PFDvTkn4OzAvrIELFVWioY5MV+oDj3pTa6hndW/bOQ8p8TXXC9u+D3 N12bseyRbis= Received: from pb-sasl1.nyi.icgroup.com (unknown [127.0.0.1]) by pb-sasl1.pobox.com (Postfix) with ESMTP id EA8B72425A; Thu, 23 Jun 2016 12:00:35 -0400 (EDT) Received: from clucks (unknown [88.160.190.192]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by pb-sasl1.pobox.com (Postfix) with ESMTPSA id E235F24255; Thu, 23 Jun 2016 12:00:34 -0400 (EDT) From: Andy Wingo To: David Pirotte Subject: Re: bug#20093: master: setting merge-generics duplicate-binding-handler @ expand time raises an error References: <20150312001718.5d1ae438@capac> Date: Thu, 23 Jun 2016 18:00:27 +0200 In-Reply-To: <20150312001718.5d1ae438@capac> (David Pirotte's message of "Thu, 12 Mar 2015 00:17:18 -0300") Message-ID: <87k2hfopyc.fsf@pobox.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Pobox-Relay-ID: 9EE6C22C-395B-11E6-8B33-C1836462E9F6-02397024!pb-sasl1.pobox.com X-Spam-Score: -1.4 (-) X-Debbugs-Envelope-To: 20093-done Cc: 20093-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.4 (-) Hi, This was interesting -- turned out that GOOPS imports `map' from (srfi srfi-1), and it's also there from (guile-user). SRFI-1 specified it via #:replace so all is well, no warnings. However merge-generics is itself a generic which needs `map' to dispatch over its types (at first) and then that recurses, leading to badness. But, you say, I only specified the duplicates handler after loading goops! Well indeed, but if a module didn't specify #:duplicates, its duplicates handling was implicitly dynamically scoped to whatever the current default-duplicates-handlers were. That seems bogus to me: the module declares its imports and exports and a lack of a declaration of #:duplicates indicates that the module is implicitly specifying the duplicate handlers that are described in the manual. In master I have changed the `default-duplicate-binding-handler' to simply access the handlers for the current module, as that seems to be the correct thing. Let me know how it goes! Closing as done but let's follow up :) Andy On Thu 12 Mar 2015 04:17, David Pirotte writes: > Hello guilers, > Hi Andy, > > Following our brief chat on irc, yesterday, here is he bug I was referring to: > > GNU Guile 2.1.0.322-eb3d6 > > setting merge-generics duplicate-binding-handler @ expand time raises an > error. > > a) here is a short test case: > > #! /bin/sh > # -*- mode: scheme; coding: utf-8 -*- > exec guile -e main -s $0 "$@" > !# > > (eval-when (expand load eval) > (use-modules (oop goops)) > (default-duplicate-binding-handler > '(merge-generics replace warn-override-core warn last))) > > (define (main args) > (display "hello\n")) > > => > > david@capac:~/alto/projects/guile-tests/2.2/goops/duplicate-binding-handler 76 $ ./hello > ;;; note: source file /usr/alto/projects/guile-tests/2.2/goops/duplicate-binding-handler/./hello > ;;; newer than compiled /home/david/.cache/guile/ccache/2.2-LE-8-3.6/usr/alto/projects/guile-tests/2.2/goops/duplicate-binding-handler/hello.go > ;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0 > ;;; or pass the --no-auto-compile argument to disable. > ;;; compiling /usr/alto/projects/guile-tests/2.2/goops/duplicate-binding-handler/./hello > ;;; WARNING: compilation of /usr/alto/projects/guile-tests/2.2/goops/duplicate-binding-handler/./hello failed: > ;;; ERROR: No applicable method for #< merge-generics (3)> in call Error while printing exception. > hello! > > > b) here is how it propagates, 'just' trying to import 2 gnome modules: > > #! /bin/sh > # -*- mode: scheme; coding: utf-8 -*- > exec guile -e main -s $0 "$@" > !# > > (eval-when (expand load eval) > (use-modules (oop goops)) > (default-duplicate-binding-handler > '(merge-generics replace warn-override-core warn last))) > > (use-modules (gnome-2) > (gnome gobject) > (gnome glib)) > > (define (main args) > (display "hello!\n")) > > => > > david@capac:~/alto/projects/guile-tests/2.2/goops/duplicate-binding-handler 40 $ ./hello > ;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0 > ;;; or pass the --no-auto-compile argument to disable. > ;;; compiling /usr/alto/projects/guile-tests/2.2/goops/duplicate-binding-handler/./hello > ;;; WARNING: compilation of /usr/alto/projects/guile-tests/2.2/goops/duplicate-binding-handler/./hello failed: > ;;; ERROR: No applicable method for #< merge-generics (3)> in call Error while printing exception. > Backtrace: > In ice-9/boot-9.scm: > 3275: 19 [try-module-autoload _ _] > 2611: 18 [save-module-excursion #] > 3295: 17 [#] > In unknown file: > ?: 16 [primitive-load-path "gnome/gw/glib" #] > In gnome/gw/glib.scm: > 15: 15 [#] > In unknown file: > ?: 14 [load-extension "libgw-guile-gnome-glib" "gw_init_wrapset_gnome_glib"] > In ice-9/boot-9.scm: > 2999: 13 [#> # _ _ ...] > 3275: 12 [try-module-autoload _ _] > 2611: 11 [save-module-excursion #] > 3295: 10 [#] > In unknown file: > ?: 9 [primitive-load-path "gnome/gw/generics" #] > In gnome/gw/generics.scm: > 35: 8 [#f] > In ice-9/boot-9.scm: > 3136: 7 [define-module* _ #:filename _ #:pure _ #:version _ #:duplicates ...] > 3074: 6 [resolve-interface (gnome gobject generics) #:select ...] > 2999: 5 [#> # _ _ ...] > 3275: 4 [try-module-autoload _ _] > 2611: 3 [save-module-excursion #] > 3295: 2 [#] > In unknown file: > ?: 1 [primitive-load-path "gnome/gobject/generics" ...] > In gnome/gobject/generics.scm: > 130: 0 [()] > > gnome/gobject/generics.scm:130:0: In procedure (): > gnome/gobject/generics.scm:130:0: In procedure module-lookup: Unbound variable: > david@capac:~/alto/projects/guile-tests/2.2/goops/duplicate-binding-handler 41 $ > > > Cheers, > David From debbugs-submit-bounces@debbugs.gnu.org Sun Jul 03 00:58:04 2016 Received: (at 20093-done) by debbugs.gnu.org; 3 Jul 2016 04:58:04 +0000 Received: from localhost ([127.0.0.1]:35058 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bJZTo-0000R4-9X for submit@debbugs.gnu.org; Sun, 03 Jul 2016 00:58:04 -0400 Received: from maximusconfessor.all2all.org ([79.99.200.102]:52718) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bJZTl-0000Qc-TK for 20093-done@debbugs.gnu.org; Sun, 03 Jul 2016 00:58:02 -0400 Received: from localhost (unknown [192.168.0.2]) by maximusconfessor.all2all.org (Postfix) with ESMTP id BB034A04C012; Sun, 3 Jul 2016 06:58:00 +0200 (CEST) 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 ecuWO8FeAwkE; Sun, 3 Jul 2016 06:57:56 +0200 (CEST) Received: from capac (unknown [177.43.7.247]) by maximusconfessor.all2all.org (Postfix) with ESMTPSA id 3209DA04C10B; Sun, 3 Jul 2016 06:57:54 +0200 (CEST) Date: Sun, 3 Jul 2016 01:57:49 -0300 From: David Pirotte To: Andy Wingo Subject: Re: bug#20093: master: setting merge-generics duplicate-binding-handler @ expand time raises an error Message-ID: <20160703015749.4538f751@capac> In-Reply-To: <87k2hfopyc.fsf@pobox.com> References: <20150312001718.5d1ae438@capac> <87k2hfopyc.fsf@pobox.com> X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.30; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; boundary="Sig_/eS+k0=GtOST760CYsuInJWe"; protocol="application/pgp-signature" X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 20093-done Cc: 20093-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --Sig_/eS+k0=GtOST760CYsuInJWe Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi Andy, > This was interesting -- turned out that GOOPS imports `map' from (srfi > srfi-1), and it's also there from (guile-user). SRFI-1 specified it via > #:replace so all is well, no warnings. However merge-generics is itself > a generic which needs `map' to dispatch over its types (at first) and > then that recurses, leading to badness. Thanks, it fixed the bug wrt the example of the original message, but it se= ems it introduced a new bug, see below. > But, you say, I only specified the duplicates handler after loading > goops! Well indeed, but if a module didn't specify #:duplicates, its > duplicates handling was implicitly dynamically scoped to whatever the > current default-duplicates-handlers were. That seems bogus to me: the > module declares its imports and exports and a lack of a declaration of > #:duplicates indicates that the module is implicitly specifying the > duplicate handlers that are described in the manual. > In master I have changed the `default-duplicate-binding-handler' to > simply access the handlers for the current module, as that seems to be > the correct thing. Let me know how it goes! Closing as done but let's > follow up :) This is a big problem for me, so I partially locally reverted that part of the patch, plus, I patch guild so it does this before anything else: (eval-when (expand load eval) (use-modules (oop goops)) (default-duplicate-binding-handler '(merge-generics replace warn-override-core warn last))) This worked well with guile-2.0 [guild patched the same way I mean], but ra= ises a bug using guild from 2.2, that I can reproduce even not reverting anything = from your fix: if you patch guild the same way, just to try, then try to compile any file= that does even not use goops, it raises the same error As an example, let's create a reexport.scm [based on guile-gnome glib/gnome/gw/support/modules.scm] ;; reexport.scm starts here (define-module (reexport) #:export (re-export-public-interface)) (define-macro (re-export-public-interface . args) "Re-export the public interface of a module or modules. Invoked as @code{(re-export-public-interface (mod1) (mod2)...)}." (if (null? args) '(if #f #f) `(begin ,@(map (lambda (mod) (or (list? mod) (error "Invalid module specification" mod)) `(module-use! (module-public-interface (current-module)) (resolve-interface ',mod))) args)))) ;; reexport.scm ends here Then let's try to compile it using the patched guild as mentioned above: david@capac:~/gnu/grip/git/grip 5 $ which guild /opt2/bin/guild david@capac:~/gnu/grip/git/grip 6 $ guild compile reexport.scm=20 ;;; note: source file /opt2/bin/guild ;;; newer than compiled /home/david/.cache/guile/ccache/2.2-LE-8-3.9/= opt2/bin/guild.go ;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=3D0 ;;; or pass the --no-auto-compile argument to disable. ;;; compiling /opt2/bin/guild ;;; WARNING: compilation of /opt2/bin/guild failed: ;;; ERROR: No applicable method for #< merge-generics (3)> in call= (merge-generics # format # # # # #f #f) Backtrace: In ice-9/eval.scm: 710:20 19 (primitive-eval (define (main args) (if (# (# #)) #) #)) In ice-9/psyntax.scm: 1199:22 18 (expand-top-sequence ((define (main args) (if (=E2=80=A6) =E2= =80=A6) =E2=80=A6)) =E2=80=A6) In ice-9/boot-9.scm: 224:17 17 (map1 (#)) In ice-9/psyntax.scm: 1374:12 16 (_) 1754:11 15 (lp (#(syntax-object (if (defined? (quote #)) #) # =E2=80=A6) = =E2=80=A6) =E2=80=A6) 1644:45 14 (parse _ _ _ _ _ _ _) In ice-9/boot-9.scm: 224:17 13 (map1 (((("placeholder" placeholder) ("=E2=80=A6" . #) =E2=80= =A6) . #) =E2=80=A6)) In ice-9/psyntax.scm: 1374:12 12 (_ _ _) 1449:23 11 (_ _ _) In ice-9/boot-9.scm: 224:29 10 (map1 ((quote system-error) (lambda () (setlocale =E2=80=A6)) = #)) 224:29 9 (map1 ((lambda () (setlocale LC_ALL "")) (lambda # #))) 224:17 8 (map1 ((lambda args (format (current-error-port) # #)))) In ice-9/psyntax.scm: 1754:11 7 (lp ((format (current-error-port) "warning: failed=E2=80=A6" = =E2=80=A6)) =E2=80=A6) 1577:33 6 (parse (((("placeholder" placeholder) ("=E2=80=A6" . #) =E2=80= =A6) . #)) =E2=80=A6) 1298:27 5 (syntax-type (format (current-error-port) "warning:=E2=80=A6" = =E2=80=A6) =E2=80=A6) 1282:39 4 (syntax-type format (("placeholder" placeholder) # # =E2=80=A6= ) =E2=80=A6) 302:24 3 (resolve-identifier _ _ (("placeholder" placeholder) =E2=80=A6= ) =E2=80=A6) In unknown file: 2 (module-variable # format) In oop/goops.scm: 1437:4 1 (cache-miss # format # =E2=80=A6) In unknown file: 0 (scm-error goops-error #f "No applicable method for ~S=E2=80= =A6" =E2=80=A6) ERROR: In procedure scm-error: ERROR: No applicable method for #< merge-generics (3)> in call (me= rge-generics # format # # # # #f #f) david@capac:~/gnu/grip/git/grip 7 $=20 NOW, let's ask guild to use --no-auto-compile #!/bin/sh # -*- scheme -*- exec ${GUILE:-/opt2/bin/guile} --no-auto-compile -e '(@@ (guild) main)' -s = "$0" "$@" !# ... ... And try again: david@capac:~/gnu/grip/git/grip 8 $ guild compile reexport.scm=20 ;;; note: source file /opt2/bin/guild ;;; newer than compiled /home/david/.cache/guile/ccache/2.2-LE-8-3.9/= opt2/bin/guild.go Backtrace: In ice-9/eval.scm: 710:20 19 (primitive-eval (define (main args) (if (# (# #)) #) #)) In ice-9/psyntax.scm: 1199:22 18 (expand-top-sequence ((define (main args) (if (=E2=80=A6) =E2= =80=A6) =E2=80=A6)) =E2=80=A6) In ice-9/boot-9.scm: 224:17 17 (map1 (#)) In ice-9/psyntax.scm: 1374:12 16 (_) 1754:11 15 (lp (#(syntax-object (if (defined? (quote #)) #) # =E2=80=A6) = =E2=80=A6) =E2=80=A6) 1644:45 14 (parse _ _ _ _ _ _ _) In ice-9/boot-9.scm: 224:17 13 (map1 (((("placeholder" placeholder) ("=E2=80=A6" . #) =E2=80= =A6) . #) =E2=80=A6)) In ice-9/psyntax.scm: 1374:12 12 (_ _ _) 1449:23 11 (_ _ _) In ice-9/boot-9.scm: 224:29 10 (map1 ((quote system-error) (lambda () (setlocale =E2=80=A6)) = #)) 224:29 9 (map1 ((lambda () (setlocale LC_ALL "")) (lambda # #))) 224:17 8 (map1 ((lambda args (format (current-error-port) # #)))) In ice-9/psyntax.scm: 1754:11 7 (lp ((format (current-error-port) "warning: failed=E2=80=A6" = =E2=80=A6)) =E2=80=A6) 1577:33 6 (parse (((("placeholder" placeholder) ("=E2=80=A6" . #) =E2=80= =A6) . #)) =E2=80=A6) 1298:27 5 (syntax-type (format (current-error-port) "warning:=E2=80=A6" = =E2=80=A6) =E2=80=A6) 1282:39 4 (syntax-type format (("placeholder" placeholder) # # =E2=80=A6= ) =E2=80=A6) 302:24 3 (resolve-identifier _ _ (("placeholder" placeholder) =E2=80=A6= ) =E2=80=A6) In unknown file: 2 (module-variable # format) In oop/goops.scm: 1437:4 1 (cache-miss # format # =E2=80=A6) In unknown file: 0 (scm-error goops-error #f "No applicable method for ~S=E2=80= =A6" =E2=80=A6) ERROR: In procedure scm-error: ERROR: No applicable method for #< merge-generics (3)> in call (me= rge-generics # format # # # # #f #f) david@capac:~/gnu/grip/git/grip 9 $=20 BUT THIS Works:fine, in case it gives you come idea [it raises a warning th= ough, is this warning expected?] david@capac:~/alto/projects/guile-tests/goops 3 $ guile GNU Guile 2.1.3.52-8a087 Copyright (C) 1995-2016 Free Software Foundation, Inc. Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'. This program is free software, and you are welcome to redistribute it under certain conditions; type `,show c' for details. Enter `,help' for help. scheme@(guile-user)> ,use (oop goops) scheme@(guile-user)> (default-duplicate-binding-handler '(merge-generics replace warn-override-core warn last)) ;;; warning: unknown warning type `macro-use-before-definition' $1 =3D (#< merge-generics (3)> # # # #) scheme@(guile-user)> ,use (system base compile) scheme@(guile-user)> (compile-file "/home/david/gnu/grip/git/grip/reexport.= scm") ;;; warning: unknown warning type `macro-use-before-definition' $2 =3D "/home/david/.cache/guile/ccache/2.2-LE-8-3.9/usr/alto/projects/gnu/= grip/git/grip/reexport.scm.go" scheme@(guile-user)>=20 Sorry for the long email! I hope you can help! Cheers, David --Sig_/eS+k0=GtOST760CYsuInJWe Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBCAAGBQJXeJtNAAoJEPN0/ZOjBXrXQJIIAK/GqPGPveZI32ZPAcOSGVS4 oONorVkMa8W6qad9hpC1MvqTlug07Z6ULpn66p3I+4gp/7xPbOgo/5bXbL8eE2Z4 L2Q9Z7sLXBWUIm4AZ2BboM5UwnY9hZtZGMSWpHW+4SlwCU51G9B3DPd3kGJJtAb5 0hjY9k3LEmI0B2E9IYMR++Q4IWZ2nyIDEKeGs80Nju6rff3SQ11In2W5/OXhImg6 vi67JT9V5FanBnmyYiALi+BePRMnWrKK0v/X1yLqgH8E679/FbG1BzkYyudBV9RF 7MkDiCc8ap/r3atGhA72pKf28ydCogEdO5bH1pEitfQ7cfJ/wdSDs2z3UQAZywA= =t0r/ -----END PGP SIGNATURE----- --Sig_/eS+k0=GtOST760CYsuInJWe-- From debbugs-submit-bounces@debbugs.gnu.org Sun Jul 03 16:55:24 2016 Received: (at 20093) by debbugs.gnu.org; 3 Jul 2016 20:55:24 +0000 Received: from localhost ([127.0.0.1]:36267 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bJoQG-00061k-3D for submit@debbugs.gnu.org; Sun, 03 Jul 2016 16:55:24 -0400 Received: from maximusconfessor.all2all.org ([79.99.200.102]:36333) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bJoQE-00061b-C7 for 20093@debbugs.gnu.org; Sun, 03 Jul 2016 16:55:23 -0400 Received: from localhost (unknown [192.168.0.2]) by maximusconfessor.all2all.org (Postfix) with ESMTP id 32B80A04C12C for <20093@debbugs.gnu.org>; Sun, 3 Jul 2016 22:55:21 +0200 (CEST) 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 llCApfmhjN5n for <20093@debbugs.gnu.org>; Sun, 3 Jul 2016 22:55:16 +0200 (CEST) Received: from capac (unknown [179.210.32.130]) by maximusconfessor.all2all.org (Postfix) with ESMTPSA id B48BCA04C0E1 for <20093@debbugs.gnu.org>; Sun, 3 Jul 2016 22:55:15 +0200 (CEST) Date: Sun, 3 Jul 2016 17:55:06 -0300 From: David Pirotte To: 20093@debbugs.gnu.org Subject: Fw: bug#20093: master: setting merge-generics duplicate-binding-handler @ expand time raises an error Message-ID: <20160703175506.17cbe958@capac> X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.30; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; boundary="Sig_/RzmC+txsCYBAmrr.g3+jFKQ"; protocol="application/pgp-signature" X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 20093 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --Sig_/RzmC+txsCYBAmrr.g3+jFKQ Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi Andy, It is only after I answered that I did spot in the close associated with this bug report that we should 'get further detail' answering the bug id a= nd not bug-id-done, hence this 'forward' > This was interesting -- turned out that GOOPS imports `map' from (srfi > srfi-1), and it's also there from (guile-user). SRFI-1 specified it via > #:replace so all is well, no warnings. However merge-generics is itself > a generic which needs `map' to dispatch over its types (at first) and > then that recurses, leading to badness. =20 Thanks, it fixed the bug wrt the example of the original message, but it se= ems it introduced a new bug, see below. > But, you say, I only specified the duplicates handler after loading > goops! Well indeed, but if a module didn't specify #:duplicates, its > duplicates handling was implicitly dynamically scoped to whatever the > current default-duplicates-handlers were. That seems bogus to me: the > module declares its imports and exports and a lack of a declaration of > #:duplicates indicates that the module is implicitly specifying the > duplicate handlers that are described in the manual. =20 > In master I have changed the `default-duplicate-binding-handler' to > simply access the handlers for the current module, as that seems to be > the correct thing. Let me know how it goes! Closing as done but let's > follow up :) =20 This is a big problem for me, so I partially locally reverted that part of the patch, plus, I patch guild so it does this before anything else: (eval-when (expand load eval) (use-modules (oop goops)) (default-duplicate-binding-handler '(merge-generics replace warn-override-core warn last))) This worked well with guile-2.0 [guild patched the same way I mean], but ra= ises a bug using guild from 2.2, that I can reproduce even not reverting anything = from your fix: if you patch guild the same way, just to try, then try to compile any file that does even not use goops, it raises the same error As an example, let's create a reexport.scm [based on guile-gnome glib/gnome/gw/support/modules.scm] ;; reexport.scm starts here (define-module (reexport) #:export (re-export-public-interface)) (define-macro (re-export-public-interface . args) "Re-export the public interface of a module or modules. Invoked as @code{(re-export-public-interface (mod1) (mod2)...)}." (if (null? args) '(if #f #f) `(begin ,@(map (lambda (mod) (or (list? mod) (error "Invalid module specification" mod)) `(module-use! (module-public-interface (current-module)) (resolve-interface ',mod))) args)))) ;; reexport.scm ends here Then let's try to compile it using the patched guild as mentioned above: david@capac:~/gnu/grip/git/grip 5 $ which guild /opt2/bin/guild david@capac:~/gnu/grip/git/grip 6 $ guild compile reexport.scm=20 ;;; note: source file /opt2/bin/guild ;;; newer than compiled /home/david/.cache/guile/ccache/2.2-LE-8-3.9/opt2/bin/guild.go ;;;= note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=3D0 ;;; or pass t= he --no-auto-compile argument to disable. ;;; compiling /opt2/bin/guild ;;; WARNING: compilation of /opt2/bin/guild failed: ;;; ERROR: No applicable method for #< merge-generics (3)> in call (merge-generics # format # # # # #f #f) Backtrace: In ice-9/eval.scm: 710:2= 0 19 (primitive-eval (define (main args) (if (# (# #)) #) #)) In ice-9/psyntax.s= cm: 1199:22 18 (expand-top-sequence ((define (main args) (if (=E2=80=A6) =E2=80= =A6) =E2=80=A6)) =E2=80=A6) In ice-9/boot-9.scm: 224:17 17 (map1 (#)) In ice-9/psyntax.scm: 1374:12 16 (_) 1754:11 15 (lp (#(syntax-object (if (defined? (quote #)) #) # =E2=80=A6) = =E2=80=A6) =E2=80=A6) 1644:45 14 (parse _ _ _ _ _ _ _) In ice-9/boot-9.scm: 224:17 13 (map1 (((("placeholder" placeholder) ("=E2=80=A6" . #) =E2=80= =A6) . #) =E2=80=A6)) In ice-9/psyntax.scm: 1374:12 12 (_ _ _) 1449:23 11 (_ _ _) In ice-9/boot-9.scm: 224:29 10 (map1 ((quote system-error) (lambda () (setlocale =E2=80=A6)) = #)) 224:29 9 (map1 ((lambda () (setlocale LC_ALL "")) (lambda # #))) 224:17 8 (map1 ((lambda args (format (current-error-port) # #)))) In ice-9/psyntax.scm: 1754:11 7 (lp ((format (current-error-port) "warning: failed=E2=80=A6" = =E2=80=A6)) =E2=80=A6) 1577:33 6 (parse (((("placeholder" placeholder) ("=E2=80=A6" . #) =E2=80= =A6) . #)) =E2=80=A6) 1298:27 5 (syntax-type (format (current-error-port) "warning:=E2=80=A6" = =E2=80=A6) =E2=80=A6) 1282:39 4 (syntax-type format (("placeholder" placeholder) # # =E2=80=A6= ) =E2=80=A6) 302:24 3 (resolve-identifier _ _ (("placeholder" placeholder) =E2=80=A6= ) =E2=80=A6) In unknown file: 2 (module-variable # format) In oop/goops.scm: 1437:4 1 (cache-miss # format # =E2=80=A6) In unknown file: 0 (scm-error goops-error #f "No applicable method for ~S=E2=80= =A6" =E2=80=A6) ERROR: In procedure scm-error: ERROR: No applicable method for #< merge-generics (3)> in call (merge-generics # format # # # # #f #f) david@capac:~/gnu/grip/git/grip 7 $= =20 NOW, let's ask guild to use --no-auto-compile #!/bin/sh # -*- scheme -*- exec ${GUILE:-/opt2/bin/guile} --no-auto-compile -e '(@@ (guild) main)' -s = "$0" "$@" !# ... ... And try again: david@capac:~/gnu/grip/git/grip 8 $ guild compile reexport.scm=20 ;;; note: source file /opt2/bin/guild ;;; newer than compiled /home/david/.cache/guile/ccache/2.2-LE-8-3.9/opt2/bin/guild.go Bac= ktrace: In ice-9/eval.scm: 710:20 19 (primitive-eval (define (main args) (if (# (# #)) #) #)) In ice-9/psyntax.scm: 1199:22 18 (expand-top-sequence ((define (main args) (if (=E2=80=A6) =E2= =80=A6) =E2=80=A6)) =E2=80=A6) In ice-9/boot-9.scm: 224:17 17 (map1 (#)) In ice-9/psyntax.scm: 1374:12 16 (_) 1754:11 15 (lp (#(syntax-object (if (defined? (quote #)) #) # =E2=80=A6) = =E2=80=A6) =E2=80=A6) 1644:45 14 (parse _ _ _ _ _ _ _) In ice-9/boot-9.scm: 224:17 13 (map1 (((("placeholder" placeholder) ("=E2=80=A6" . #) =E2=80= =A6) . #) =E2=80=A6)) In ice-9/psyntax.scm: 1374:12 12 (_ _ _) 1449:23 11 (_ _ _) In ice-9/boot-9.scm: 224:29 10 (map1 ((quote system-error) (lambda () (setlocale =E2=80=A6)) = #)) 224:29 9 (map1 ((lambda () (setlocale LC_ALL "")) (lambda # #))) 224:17 8 (map1 ((lambda args (format (current-error-port) # #)))) In ice-9/psyntax.scm: 1754:11 7 (lp ((format (current-error-port) "warning: failed=E2=80=A6" = =E2=80=A6)) =E2=80=A6) 1577:33 6 (parse (((("placeholder" placeholder) ("=E2=80=A6" . #) =E2=80= =A6) . #)) =E2=80=A6) 1298:27 5 (syntax-type (format (current-error-port) "warning:=E2=80=A6" = =E2=80=A6) =E2=80=A6) 1282:39 4 (syntax-type format (("placeholder" placeholder) # # =E2=80=A6= ) =E2=80=A6) 302:24 3 (resolve-identifier _ _ (("placeholder" placeholder) =E2=80=A6= ) =E2=80=A6) In unknown file: 2 (module-variable # format) In oop/goops.scm: 1437:4 1 (cache-miss # format # =E2=80=A6) In unknown file: 0 (scm-error goops-error #f "No applicable method for ~S=E2=80= =A6" =E2=80=A6) ERROR: In procedure scm-error: ERROR: No applicable method for #< merge-generics (3)> in call (merge-generics # format # # # # #f #f) david@capac:~/gnu/grip/git/grip 9 $= =20 BUT THIS Works:fine, in case it gives you come idea [it raises a warning th= ough, is this warning expected?] david@capac:~/alto/projects/guile-tests/goops 3 $ guile GNU Guile 2.1.3.52-8a087 Copyright (C) 1995-2016 Free Software Foundation, Inc. Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'. This program is free software, and you are welcome to redistribute it under certain conditions; type `,show c' for details. Enter `,help' for help. scheme@(guile-user)> ,use (oop goops) scheme@(guile-user)> (default-duplicate-binding-handler '(merge-generics replace warn-override-core warn last)) ;;; warning: unknown warning type `macro-use-before-definition' $1 =3D (#< merge-generics (3)> # # # #) scheme@(guile-user)> ,use (system base compile) scheme@(guile-user)> (compile-file "/home/david/gnu/grip/git/grip/reexport.= scm") ;;; warning: unknown warning type `macro-use-before-definition' $2 =3D "/home/david/.cache/guile/ccache/2.2-LE-8-3.9/usr/alto/projects/gnu/grip/gi= t/grip/reexport.scm.go" scheme@(guile-user)>=20 Sorry for the long email! I hope you can help! Cheers, David --Sig_/RzmC+txsCYBAmrr.g3+jFKQ Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBCAAGBQJXeXusAAoJEPN0/ZOjBXrXtbsH/2haUdJK4eojjPph+C0AjKg+ fItwf8801q6MtFjZfRuWlPY4mjMKhQMweMDgsZjeBLiNdcfG9ybDw0BnvVBxkZKG /k6C7KdXHz1xElDDRo+6kpJEQ2DyRN6VHiDt6WqTW+Zrvc5DTYzFuNZjRPx33BJF cDrJlw/0Qvg6CEDE87fx6CoZc8vgLbpnzLJBtXqrBtWh6+Fm4YNIoWQrlD9VsMKw wgGhBIeKtrtSIpNHVK8DulRDxEn8PF3jxnNBlM5hyCCdcSb3GXF01Ns0pDXiausX JFwUZHwczc/Y1sTsY5/gq1SgTLfblz2zOObpISsxuoJpffu22ckTjh6P3xF3ufg= =9x6c -----END PGP SIGNATURE----- --Sig_/RzmC+txsCYBAmrr.g3+jFKQ-- From debbugs-submit-bounces@debbugs.gnu.org Sun Jul 03 18:10:23 2016 Received: (at 20093) by debbugs.gnu.org; 3 Jul 2016 22:10:23 +0000 Received: from localhost ([127.0.0.1]:36287 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bJpap-0007ik-3O for submit@debbugs.gnu.org; Sun, 03 Jul 2016 18:10:23 -0400 Received: from maximusconfessor.all2all.org ([79.99.200.102]:50281) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bJpan-0007ic-FW for 20093@debbugs.gnu.org; Sun, 03 Jul 2016 18:10:22 -0400 Received: from localhost (unknown [192.168.0.2]) by maximusconfessor.all2all.org (Postfix) with ESMTP id D684BA04C00F; Mon, 4 Jul 2016 00:10:19 +0200 (CEST) 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 BYhWcF2Xdvp7; Mon, 4 Jul 2016 00:10:14 +0200 (CEST) Received: from capac (unknown [179.210.32.130]) by maximusconfessor.all2all.org (Postfix) with ESMTPSA id 13C47A04C10B; Mon, 4 Jul 2016 00:10:13 +0200 (CEST) Date: Sun, 3 Jul 2016 19:10:07 -0300 From: David Pirotte To: Andy Wingo Subject: Re: bug#20093: master: setting merge-generics duplicate-binding-handler @ expand time raises an error Message-ID: <20160703191007.0e4d2471@capac> In-Reply-To: <87k2hfopyc.fsf@pobox.com> References: <20150312001718.5d1ae438@capac> <87k2hfopyc.fsf@pobox.com> X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.30; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; boundary="Sig_/yZ8lyTePZXyMf6bwj4DUFjk"; protocol="application/pgp-signature" X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 20093 Cc: 20093@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --Sig_/yZ8lyTePZXyMf6bwj4DUFjk Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Hello Andy, Further to the previous answer [of July the 2th 2016] > ... > But, you say, I only specified the duplicates handler after loading > goops! Well indeed, but if a module didn't specify #:duplicates, its > duplicates handling was implicitly dynamically scoped to whatever the > current default-duplicates-handlers were. That seems bogus to me: the > module declares its imports and exports and a lack of a declaration of > #:duplicates indicates that the module is implicitly specifying the > duplicate handlers that are described in the manual. I disagree with the way you [now' re-] interpret things: if a module has no #:duplicates declaration, it is implicitly specifying the duplicate handler= s=20 returned by (default-duplicate-binding-handler), _not_ the one from the manual. IMO, this was an API, and for me, a hard coded list instead of querying an = API does not offer any advantage, at the contrary, a step backward in 'power'. > In master I have changed the `default-duplicate-binding-handler' to > simply access the handlers for the current module, as that seems to be > the correct thing. Let me know how it goes! Closing as done but let's > follow up :) This breaks all my code, with no other option but maintaining my own boot-9 version: I really wish I can avoid that, could you reconsider? [no, = I don't want to have to use #:duplicates, since I _always_ [like always always alwa= ys] want my modules to grab my global setting and default]. As you understood by now, I need 2 things wrt duplicate handlers: 1. I must be able to patch guild, so it ,use (oop goops) and set these before I compile my modules [with or without --no-auto-compile does not matter]. All my scripts do so as well of course [1] #!/bin/sh # -*- scheme -*- exec ${GUILE:-/opt2/bin/guile} --no-auto-compile -e '(@@ (guild) main)' -= s "$0" "$@" !# (eval-when (expand load eval) (use-modules (oop goops)) (default-duplicate-binding-handler '(merge-generics replace warn-override-core warn last))) ... This does not work anymore, I hope it can be fixed 2. obviously, the above only make sense if modules grab (default-duplicate-binding-handler) when no #:duplicates declaration I can maintain my own boot-9 but wish to avoid this solution. Cheers, David [1] http://git.savannah.gnu.org/cgit/grip.git/tree/grip/clutter/examples/bo= uncer.in --Sig_/yZ8lyTePZXyMf6bwj4DUFjk Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBCAAGBQJXeY0/AAoJEPN0/ZOjBXrXTHgIAMOC5y4OVfc+t4zqTA8STzNn C6ZZvM02RV6JfILmtbvhmAD1pIZwu89Pn9l5SdnsDsDolLAUJ+aFa1In0MXS+AdC zE+C18bCVXVd/IZKb5D/2oViDbvBcd/UMERl+KgQX/96NORZpocqAg5hvqi8eOb2 H9AvBBA0jcYT9t2Zn6WMHzi9n4ArKfLV2zUa0x4aILYjB3KEJyfzY9QVhxspdDdx o/rkJbxcdmLfw1O6/0AHVAHwfGOC/SFb1mGM10JMnqknUfgiOgJoXk4s0tJwWlsZ G/hpph0xqjXdHWa41pMOT+Uq+yH9Q3WIpwQBK0uKzpms/JUwMpSFGHYVBpWQioQ= =jzI3 -----END PGP SIGNATURE----- --Sig_/yZ8lyTePZXyMf6bwj4DUFjk-- From debbugs-submit-bounces@debbugs.gnu.org Thu Jul 07 05:55:08 2016 Received: (at 20093) by debbugs.gnu.org; 7 Jul 2016 09:55:08 +0000 Received: from localhost ([127.0.0.1]:40212 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bL61U-0004a4-9J for submit@debbugs.gnu.org; Thu, 07 Jul 2016 05:55:08 -0400 Received: from pb-sasl2.pobox.com ([64.147.108.67]:55805 helo=sasl.smtp.pobox.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bL61Q-0004Zs-3K for 20093@debbugs.gnu.org; Thu, 07 Jul 2016 05:55:06 -0400 Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by pb-sasl2.pobox.com (Postfix) with ESMTP id 68E29202F6; Thu, 7 Jul 2016 05:55:02 -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; s=sasl; bh=wC94pssfXi0fFq+4IADGwN9R9Sg=; b=Bpp3CA QJKZ07329Fbqc3ZShtFMknq2KeOEzekBYm/jfW5BdesMEY10w2WUkRKFuYI5RCR/ /ImA+m855J0/3uRhe1m9Z8TxBKeRvz79DgSsKIM4wb109uC/irlkBTqBoM+nPmLe QmOHg33So6X/CIhQB7ygpaXq6y6SzMBSsFo8w= 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; q=dns; s=sasl; b=htXBjqn6j3X6AEjgU9Yaw7U3p9Rd2AfH 3Anfp+gtNqfGQeDejSEr9+zsEox1k70NOIFnQG12SwYyxRptsxLhWOfyS69S4LVj xsCpWrVZkhtaqkeK3hnwgU1XqWBJwO/ecCZlvQMGeWz25wp50HtBAWXp5uujSusL bX0pSW/94cw= Received: from pb-sasl2.nyi.icgroup.com (unknown [127.0.0.1]) by pb-sasl2.pobox.com (Postfix) with ESMTP id 5EB42202F5; Thu, 7 Jul 2016 05:55:02 -0400 (EDT) Received: from clucks (unknown [88.160.190.192]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by pb-sasl2.pobox.com (Postfix) with ESMTPSA id 63745202F2; Thu, 7 Jul 2016 05:55:00 -0400 (EDT) From: Andy Wingo To: David Pirotte Subject: Re: bug#20093: master: setting merge-generics duplicate-binding-handler @ expand time raises an error References: <20150312001718.5d1ae438@capac> <87k2hfopyc.fsf@pobox.com> <20160703191007.0e4d2471@capac> Date: Thu, 07 Jul 2016 11:54:51 +0200 In-Reply-To: <20160703191007.0e4d2471@capac> (David Pirotte's message of "Sun, 3 Jul 2016 19:10:07 -0300") Message-ID: <87d1mp7oyc.fsf@pobox.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Pobox-Relay-ID: DEADC6BC-4428-11E6-9A98-28A6F1301B6D-02397024!pb-sasl2.pobox.com X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: 20093 Cc: 20093@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.3 (-) On Mon 04 Jul 2016 00:10, David Pirotte writes: >> But, you say, I only specified the duplicates handler after loading >> goops! Well indeed, but if a module didn't specify #:duplicates, its >> duplicates handling was implicitly dynamically scoped to whatever the >> current default-duplicates-handlers were. That seems bogus to me: the >> module declares its imports and exports and a lack of a declaration of >> #:duplicates indicates that the module is implicitly specifying the >> duplicate handlers that are described in the manual. > > I disagree with the way you [now' re-] interpret things: if a module has no > #:duplicates declaration, it is implicitly specifying the duplicate handlers > returned by (default-duplicate-binding-handler), _not_ the one from the > manual. To clarify. I believe that the default should be what is in the manual, and have fixed Guile 2.2 in that regard. You think it should be the value of the dynamic parameter. There are two points at which the parameter could be captured: when the module is defined, or lazily, when the first duplicate binding pair is detected. The latter leads to bugs of many kinds, like this bug. So, I assume you are proposing to capture the value of the dynamic parameter when the module is defined. This has two bugs however. * Modules are defined two times in general: once when compiling and once when loading. It is too difficult to get the parameter to work when compiling; you have to do invoke (default-duplicate-binding-handler) at the top of each file you compile, at which point you might as well just specify #:duplicates. * Global dynamic parameters that affect the substance of a module and the shape of its exports are not modular and cannot be set in a modular way. If your module depends on a particular duplicates handler, you need to specify that explicitly -- otherwise a user of your module might want something different in general, and then your code would break. >> In master I have changed the `default-duplicate-binding-handler' to >> simply access the handlers for the current module, as that seems to be >> the correct thing. Let me know how it goes! Closing as done but let's >> follow up :) > > This breaks all my code, with no other option but maintaining my own > boot-9 version: I really wish I can avoid that, could you reconsider? [no, I don't > want to have to use #:duplicates, since I _always_ [like always always always] want > my modules to grab my global setting and default]. I feel your pain but I think that the proper solution is to just go through your modules and add the #:duplicates argument. It is forward and backward compatible. I also feel the need to say that while you are welcome to fork Guile in any way that you like, I will not look at any bugs from a forked Guile. Regards, Andy From debbugs-submit-bounces@debbugs.gnu.org Thu Jul 07 06:22:12 2016 Received: (at 20093) by debbugs.gnu.org; 7 Jul 2016 10:22:12 +0000 Received: from localhost ([127.0.0.1]:40251 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bL6Rg-0006rw-5F for submit@debbugs.gnu.org; Thu, 07 Jul 2016 06:22:12 -0400 Received: from pb-sasl2.pobox.com ([64.147.108.67]:61073 helo=sasl.smtp.pobox.com) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bL6Rf-0006ro-BH for 20093@debbugs.gnu.org; Thu, 07 Jul 2016 06:22:11 -0400 Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by pb-sasl2.pobox.com (Postfix) with ESMTP id 0EFA2205F2; Thu, 7 Jul 2016 06:22:11 -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; s=sasl; bh=IHYlEOsqkby13ZSiBqG58GQeO1s=; b=pnFSm9 uUfT91Ehv3gpb/c0Q0UcOmzm7Xjk2TZOrnQJ6BvmV9YWz6SYzmEq1DHyYAww77e4 mhUo3+epMRtoB169eBxGjlMfInHk6t2jFY6WNNw2zzCTi9LbIKMqpk95C9EogpQW gDmG7HXcEGZwNP3CzgHKCiiV0cGjUZo1a7IxE= 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; q=dns; s=sasl; b=p9IBjtqalwf4HCB2O7Sox4lus7cpZlpT bj10OUsah5fGQ2FpeLKvcSnvt3T2ZPmDCA+Ia/rv4Lm24ya7oqnWharNOs7dg9r/ 2/L/d5+4tlKql3sGBkWwau3RNidv5LveLkj6EFS6vYiBrmjxM+TKaMBGgw4YP2kc 2jfmoszwNtU= Received: from pb-sasl2.nyi.icgroup.com (unknown [127.0.0.1]) by pb-sasl2.pobox.com (Postfix) with ESMTP id E6B88205EF; Thu, 7 Jul 2016 06:22:10 -0400 (EDT) Received: from clucks (unknown [88.160.190.192]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by pb-sasl2.pobox.com (Postfix) with ESMTPSA id 043A6205EE; Thu, 7 Jul 2016 06:22:09 -0400 (EDT) From: Andy Wingo To: David Pirotte Subject: Re: bug#20093: Fw: bug#20093: master: setting merge-generics duplicate-binding-handler @ expand time raises an error References: <20150312001718.5d1ae438@capac> <20160703175506.17cbe958@capac> Date: Thu, 07 Jul 2016 12:22:02 +0200 In-Reply-To: <20160703175506.17cbe958@capac> (David Pirotte's message of "Sun, 3 Jul 2016 17:55:06 -0300") Message-ID: <87oa69694l.fsf@pobox.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Pobox-Relay-ID: A9FF71F0-442C-11E6-BB5E-28A6F1301B6D-02397024!pb-sasl2.pobox.com X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: 20093 Cc: 20093@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.3 (-) On Sun 03 Jul 2016 22:55, David Pirotte writes: > This is a big problem for me, so I partially locally reverted that part of > the patch, plus, I patch guild so it does this before anything else: > > (eval-when (expand load eval) > (use-modules (oop goops)) > (default-duplicate-binding-handler > '(merge-generics replace warn-override-core warn last))) Hi, It takes work for me to understand and fix reports and I regret to say that patching "guild" is too much for me -- I don't have the time to work on bugs in patched Guile versions where the patches are significant (like this patch) and yet not headed towards mainline (also like this patch). Regards, Andy From debbugs-submit-bounces@debbugs.gnu.org Sun Jul 24 22:39:03 2016 Received: (at 20093) by debbugs.gnu.org; 25 Jul 2016 02:39:03 +0000 Received: from localhost ([127.0.0.1]:36192 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bRVnL-0006Ss-7w for submit@debbugs.gnu.org; Sun, 24 Jul 2016 22:39:03 -0400 Received: from maximusconfessor.all2all.org ([79.99.200.102]:55451) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bRVnJ-0006SQ-G9 for 20093@debbugs.gnu.org; Sun, 24 Jul 2016 22:39:02 -0400 Received: from localhost (unknown [192.168.0.2]) by maximusconfessor.all2all.org (Postfix) with ESMTP id B90B5A04C0CC; Mon, 25 Jul 2016 04:38:59 +0200 (CEST) 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 ApTJkXbWVV4m; Mon, 25 Jul 2016 04:38:55 +0200 (CEST) Received: from capac (unknown [179.210.32.222]) by maximusconfessor.all2all.org (Postfix) with ESMTPSA id BD7D8A04C0E1; Mon, 25 Jul 2016 04:38:54 +0200 (CEST) Date: Sun, 24 Jul 2016 23:38:48 -0300 From: David Pirotte To: Andy Wingo Subject: Re: bug#20093: Fw: bug#20093: master: setting merge-generics duplicate-binding-handler @ expand time raises an error Message-ID: <20160724233848.04c33f5e@capac> In-Reply-To: <87oa69694l.fsf@pobox.com> References: <20150312001718.5d1ae438@capac> <20160703175506.17cbe958@capac> <87oa69694l.fsf@pobox.com> X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.30; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; boundary="Sig_/tDcdEEwqQ+h5kl76Sip3uaq"; protocol="application/pgp-signature" X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 20093 Cc: 20093@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --Sig_/tDcdEEwqQ+h5kl76Sip3uaq Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Hi Andy, > > This is a big problem for me, so I partially locally reverted that part= of > > the patch, plus, I patch guild so it does this before anything else: > > (eval-when (expand load eval) > > (use-modules (oop goops)) > > (default-duplicate-binding-handler > > '(merge-generics replace warn-override-core warn last))) =20 > It takes work for me to understand and fix reports and I regret to say > that patching "guild" is too much for me -- I don't have the time to > work on bugs in patched Guile versions where the patches are significant > (like this patch) and yet not headed towards mainline (also like this > patch). Let's not get lost in 2 diff things here: 1-=20 As a consequence of you looking at this bug report, you decided to change t= he module system: > In master I have changed the `default-duplicate-binding-handler' to > simply access the handlers for the current module, as that seems to be > the correct thing. Let me know how it goes! Closing as done but let's > follow up :) =20 I did think very carefully to this and our conversation, and I still think = it as a big mistake: if a module does not declare #:duplicates, the 'old' way is th= e right way, calling (default-duplicate-binding-handler). Yes, it would then be a user error not to properly globally set this at 'all incantations', compile, load ... if they rely on a diff set then the defaul: the fact that users may miss use it does not justify it's been taken away: they are quite a lot of ways a user can write bugs, as you know, so let's get rid of set! then :) IMO, this is an API, the right one, so it should not be changed. Note that users of 'these modules' (the ones where you'd locally declare #:duplicates) still have to set this in their repl and in their scripts, no= t doing so would also be an user error and this 'new' model does not prevent these = errors. I have successfully used it for years now: it saves me to have to do it at = module level, and since I correctly set it globally: forcing me (and other users o= f this API) sounds a bit of a brute forcing a certain programing style: since I kn= ow what I'm doing, I don't see local declarations being 'better', but just another = way to do it. As a mater of fact, I see the global setting better and safer, because = I'll never forget... Please think about this, thanks! 2- Now, a separate thing is I can't set this in guild anymore. Ok, I read you,= but guild is a script, and IMO, there is no reason I can do it in a script of mine an= d not in guild, this works fine: ;; compile-me script starts here #! /bin/sh # -*- mode: scheme; coding: utf-8 -*- exec guile --no-auto-compile -e main -s $0 "$@" !# (eval-when (expand load eval) (use-modules (oop goops)) (default-duplicate-binding-handler '(merge-generics replace warn-override-core warn last))) (use-modules (system base compile) (ice-9 match)) =20 (define (main args) =09 (pk (default-duplicate-binding-handler)) (add-to-load-path (getcwd)) (match args ((cmd file) (compile-file file) (display (string-append "I compiled you: " file "\n"))))) ;; compile-me script ends here [ drop this somewhere, chmod a+x=20 ;; foo.scm starts here (define-module (a) #:use-module (oop goops) #:export ( !width)) (define-class () (width #:accessor !width #:init-keyword #:width #:init-value 0)) ;; foo.scm ends here [ drop this aside compile-me ./compile-me foo.scm 2.1.3.59-516f7 (merge-generics replace warn-override-core warn last) I compiled you: foo.scm A modified version of the guild script to (eval-when ...), then 'guild comp= ile foo.scm fails as reported in earlier. Note that it does not matter whether = the module uses goops, import more then one and effectively merge generics, it = simply fails, as reported in the first email of this thread. So if you keep this API we are talking about here, and I really think we sh= ould, I can write and use my own script to compile my modules. I'd be curious to un= derstand why guild, modified as described above, did work in 2.0.11, 2.0.12, 2.1.2, = but fails with 2.1.3, but I also understand if you are not interested. Cheers, David --Sig_/tDcdEEwqQ+h5kl76Sip3uaq Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBCAAGBQJXlXu4AAoJEPN0/ZOjBXrX4U8IALII5pZFOvlO0xQSODnIVWii OI4fIHrFy05osu3pylBnLxaEkIFEyrIdiaz2LnschsTGKknhQIff9qWBVEf9j8RS nVg/KUV1fmzozZMiWZLyOAGW6av3WPAQWV2z6mfaA4HrZt5hDP9aTUzDDlz9nPXY eKoO9r6M/5aA4HqcMFpjoHbanxI/FgnB3f937nsOiom8tGGc4lJ2RoTESMlHitUh wlvY+mqWSSMIJtLf6CXJNGMOe6n7xYtnqRaMntF43eKb4fMhWf8dq05PoXK7w948 4KG0iUNaZipQgmdEkTfav71mBrCkXkry2tkK/BKnmbIJ0Yxh46sZe7h+WBI4E9s= =Vhm1 -----END PGP SIGNATURE----- --Sig_/tDcdEEwqQ+h5kl76Sip3uaq-- From debbugs-submit-bounces@debbugs.gnu.org Sun Jul 24 22:45:05 2016 Received: (at 20093) by debbugs.gnu.org; 25 Jul 2016 02:45:05 +0000 Received: from localhost ([127.0.0.1]:36210 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bRVtB-0006d5-Af for submit@debbugs.gnu.org; Sun, 24 Jul 2016 22:45:05 -0400 Received: from maximusconfessor.all2all.org ([79.99.200.102]:55518) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bRVtA-0006cy-1d for 20093@debbugs.gnu.org; Sun, 24 Jul 2016 22:45:04 -0400 Received: from localhost (unknown [192.168.0.2]) by maximusconfessor.all2all.org (Postfix) with ESMTP id 84F3FA04C0E1; Mon, 25 Jul 2016 04:45:03 +0200 (CEST) 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 m41uW+O8Qg0F; Mon, 25 Jul 2016 04:44:59 +0200 (CEST) Received: from capac (unknown [179.210.32.222]) by maximusconfessor.all2all.org (Postfix) with ESMTPSA id A0A3CA04C013; Mon, 25 Jul 2016 04:44:58 +0200 (CEST) Date: Sun, 24 Jul 2016 23:44:56 -0300 From: David Pirotte To: Andy Wingo Subject: Re: bug#20093: Fw: bug#20093: master: setting merge-generics duplicate-binding-handler @ expand time raises an error Message-ID: <20160724234456.21d16185@capac> In-Reply-To: <20160724233848.04c33f5e@capac> References: <20150312001718.5d1ae438@capac> <20160703175506.17cbe958@capac> <87oa69694l.fsf@pobox.com> <20160724233848.04c33f5e@capac> X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.30; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; boundary="Sig_/Dw5adStKWYog=3=ji=14HX/"; protocol="application/pgp-signature" X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 20093 Cc: 20093@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --Sig_/Dw5adStKWYog=3=ji=14HX/ Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Hi again :) > ... > this works fine: I realized just after I sent that the compile-me script was not the latest version: no big deal, just this displays exactly what I pasted in the previ= ous mail Here it is: ;; compile-me script starts here #! /bin/sh # -*- mode: scheme; coding: utf-8 -*- exec guile --no-auto-compile -e main -s $0 "$@" !# (eval-when (expand load eval) (use-modules (oop goops)) (default-duplicate-binding-handler '(merge-generics replace warn-override-core warn last))) (use-modules (system base compile) (ice-9 match)) =20 (define (main args) (display (version)) (newline) (display (default-duplicate-binding-handler)) (newline) (add-to-load-path (getcwd)) (match args ((cmd file) (compile-file file) (display (string-append "I compiled you: " file "\n"))))) ;; compile-me script ends here Cheers, David --Sig_/Dw5adStKWYog=3=ji=14HX/ Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAEBCAAGBQJXlX0oAAoJEPN0/ZOjBXrXrdAIAKJiDKAv5DceH50siWxxZfj2 NreiZ0fZhCgJ+0ZG7C4EyD/hviWI8Ih4aLR9R2hLBtaZUv5vKXkg44t/WyZmOeEb EFi0pJ2sy9fYDnCwdgFTbrb7Oni9rPIGSffiG6L911+ws45LBFrifsHBSA1kKG+T YXdycaGB8wwDkTPb/3UN62/QT3anLerVPAZU8Q+cJ4x1gvZd+7QwTRHbs6RidXmv RckLIQ4d+qIyTHGM1qkcYqCNp7eUNjpaNgOF+X45FvyVcQvWbSNgK1ugZNAY3nfs vMllolerUowxKLtlZ4N4oeOVkmGD0qcEZRyEiooBLMkidLGYhTk/hE2a2AFpA4s= =yxs5 -----END PGP SIGNATURE----- --Sig_/Dw5adStKWYog=3=ji=14HX/-- From unknown Tue Jun 17 01:46:33 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Mon, 22 Aug 2016 11:24:03 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator