X-Loop: help-debbugs@HIDDEN Subject: bug#16314: Macro dependency tracking issue in guile auto compiler Resent-From: Panicz Maciej Godek <godek.maciek@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-guile@HIDDEN Resent-Date: Wed, 01 Jan 2014 13:21:01 +0000 Resent-Message-ID: <handler.16314.B.138858240214380 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: report 16314 X-GNU-PR-Package: guile X-GNU-PR-Keywords: To: 16314 <at> debbugs.gnu.org X-Debbugs-Original-To: bug-guile@HIDDEN Received: via spool by submit <at> debbugs.gnu.org id=B.138858240214380 (code B ref -1); Wed, 01 Jan 2014 13:21:01 +0000 Received: (at submit) by debbugs.gnu.org; 1 Jan 2014 13:20:02 +0000 Received: from localhost ([127.0.0.1]:55847 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1VyLiL-0003jW-17 for submit <at> debbugs.gnu.org; Wed, 01 Jan 2014 08:20:02 -0500 Received: from eggs.gnu.org ([208.118.235.92]:32769) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from <godek.maciek@HIDDEN>) id 1VyLiH-0003jM-K9 for submit <at> debbugs.gnu.org; Wed, 01 Jan 2014 08:19:58 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <godek.maciek@HIDDEN>) id 1VyLiG-0005dn-G4 for submit <at> debbugs.gnu.org; Wed, 01 Jan 2014 08:19:57 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:37555) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <godek.maciek@HIDDEN>) id 1VyLiG-0005de-D6 for submit <at> debbugs.gnu.org; Wed, 01 Jan 2014 08:19:56 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34486) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from <godek.maciek@HIDDEN>) id 1VyLiF-0007O6-9U for bug-guile@HIDDEN; Wed, 01 Jan 2014 08:19:56 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <godek.maciek@HIDDEN>) id 1VyLiE-0005dL-6C for bug-guile@HIDDEN; Wed, 01 Jan 2014 08:19:55 -0500 Received: from mail-we0-x235.google.com ([2a00:1450:400c:c03::235]:56901) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <godek.maciek@HIDDEN>) id 1VyLiD-0005dG-VD for bug-guile@HIDDEN; Wed, 01 Jan 2014 08:19:54 -0500 Received: by mail-we0-f181.google.com with SMTP id x55so11834092wes.12 for <bug-guile@HIDDEN>; Wed, 01 Jan 2014 05:19:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=r7I6NN15vCeqdGG1qvwpCwvfqONu0EdlAKV8x2+7HeM=; b=smZHBWBooFNUVbQD0wi8HhzzhKfOUtXdmCzvDWWYsVjeSGXapClrGW0KIpfwoVWxvb WxVUkFrFIL5POQ+ROU34tBrUXDhHNzpZp1RUQgmDqTJZVGCqGcii7soSJ+PGJjCd8+13 dH0G2FaAbLEuYoZmx6m1N4fVFVzxxrL7oKooTLUGRF4Q6GAN+pZ+FRz2vILlGoOZr+aL +G3ypoVekrXhdo6U6WDmcMTem28l0wlCcfgMqWKTPt5zWngZJq/HOUSMI0cu2dqtobH9 fZhEdU29bXZnexofTuo5vjCRkSbhZ7IiSnNIm6hURZ8ZX/hVbZq8uebwUDW/LB6/MztW UOVQ== MIME-Version: 1.0 X-Received: by 10.194.2.108 with SMTP id 12mr1355297wjt.64.1388582393159; Wed, 01 Jan 2014 05:19:53 -0800 (PST) Received: by 10.194.178.134 with HTTP; Wed, 1 Jan 2014 05:19:53 -0800 (PST) Date: Wed, 1 Jan 2014 14:19:53 +0100 Message-ID: <CAMFYt2af172w+ORdO-2Piccy_fzhqreanrVdpqVYP2UhmPLw2g@HIDDEN> From: Panicz Maciej Godek <godek.maciek@HIDDEN> Content-Type: text/plain; charset=ISO-8859-1 X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). 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: -4.0 (----) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -4.0 (----) Hi, I've noticed that if macros are ever used in the process of auto-compilation, the dependency is forgotten, so even if a module that contains the definition of a macro gets recompiled, the module that uses the macro remains unchanged. For example, consider the following situation. I have two modules and a program that uses one of them. The directory tree looks like this: . |-- module | |-- master.scm | `-- slave.scm `-- program.scm The module/master.scm contains the following code: --8<---------------cut here---------------start------------->8--- (define-module (module master) #:export (macro function)) (define-syntax-rule (macro) (display "macro expanded")) (define (function) (display "function called")) --8<---------------cut here---------------end--------------->8--- The module/slave.scm uses the master module: --8<---------------cut here---------------start------------->8--- (define-module (module slave) #:use-module (module master) #:export (f)) (define (f) (macro)) --8<---------------cut here---------------end--------------->8--- But the program.scm uses only the slave module: --8<---------------cut here---------------start------------->8--- (use-modules (module slave)) (f) --8<---------------cut here---------------end--------------->8--- If I run the program, I get the following result: user cwd $ GUILE_LOAD_PATH=. guile -s program.scm ;;; <auto-compilation of program.scm> ;;; <auto-compilation of module/slave.scm> ;;; <auto-compilation of module/master.scm> macro expandeduser cwd $ Oops, I forgot to add a trailing newline. But that's no problem! I edit the body of module/master.scm: - (display "macro expanded")) + (display "macro expanded!\n")) and then run the program once again: user cwd $ GUILE_LOAD_PATH=. guile -s program.scm ;;; <auto-compilation of module/master.scm> macro expandeduser cwd $ Damn! That didn't work. See the problem? If I modify a module that exports any syntax definition, it should force all the modules that use it be recompiled -- otherwise the auto-compilation feature is only a potential source of confusion, and forcing recompilation of all user modules if at least one of them has been modified seems to be a less confusing default strategy, if a more fine-grained dependency tracking is too difficult to implement. I've tested that behaviour under guile 2.0.5, guile-2.0.9, guile-2.0.9.98-36c40 from hydra and guile-2.1.0.545-61989 from git, and everywhere it worked the same. Regards, M.
Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.503 (Entity 5.503) Content-Type: text/plain; charset=utf-8 X-Loop: help-debbugs@HIDDEN From: help-debbugs@HIDDEN (GNU bug Tracking System) To: Panicz Maciej Godek <godek.maciek@HIDDEN> Subject: bug#16314: Acknowledgement (Macro dependency tracking issue in guile auto compiler) Message-ID: <handler.16314.B.138858240214380.ack <at> debbugs.gnu.org> References: <CAMFYt2af172w+ORdO-2Piccy_fzhqreanrVdpqVYP2UhmPLw2g@HIDDEN> X-Gnu-PR-Message: ack 16314 X-Gnu-PR-Package: guile Reply-To: 16314 <at> debbugs.gnu.org Date: Wed, 01 Jan 2014 13:21:02 +0000 Thank you for filing a new bug report with debbugs.gnu.org. This is an automatically generated reply to let you know your message has been received. Your message is being forwarded to the package maintainers and other interested parties for their attention; they will reply in due course. Your message has been sent to the package maintainer(s): bug-guile@HIDDEN If you wish to submit further information on this problem, please send it to 16314 <at> debbugs.gnu.org. Please do not send mail to help-debbugs@HIDDEN unless you wish to report a problem with the Bug-tracking system. --=20 16314: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D16314 GNU Bug Tracking System Contact help-debbugs@HIDDEN with problems
X-Loop: help-debbugs@HIDDEN Subject: bug#16314: Macro dependency tracking issue in guile auto compiler Resent-From: Mark H Weaver <mhw@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-guile@HIDDEN Resent-Date: Wed, 15 Jan 2014 20:22:01 +0000 Resent-Message-ID: <handler.16314.B16314.138981726425296 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 16314 X-GNU-PR-Package: guile X-GNU-PR-Keywords: To: Panicz Maciej Godek <godek.maciek@HIDDEN> Cc: 16314 <at> debbugs.gnu.org, request <at> debbugs.gnu.org Received: via spool by 16314-submit <at> debbugs.gnu.org id=B16314.138981726425296 (code B ref 16314); Wed, 15 Jan 2014 20:22:01 +0000 Received: (at 16314) by debbugs.gnu.org; 15 Jan 2014 20:21:04 +0000 Received: from localhost ([127.0.0.1]:52405 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1W3WxU-0006Zr-As for submit <at> debbugs.gnu.org; Wed, 15 Jan 2014 15:21:04 -0500 Received: from world.peace.net ([96.39.62.75]:50095) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from <mhw@HIDDEN>) id 1W3WxS-0006Ze-6w; Wed, 15 Jan 2014 15:21:02 -0500 Received: from 209-6-91-212.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com ([209.6.91.212] helo=yeeloong) by world.peace.net with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from <mhw@HIDDEN>) id 1W3WxM-0004LZ-ER; Wed, 15 Jan 2014 15:20:56 -0500 From: Mark H Weaver <mhw@HIDDEN> References: <CAMFYt2af172w+ORdO-2Piccy_fzhqreanrVdpqVYP2UhmPLw2g@HIDDEN> Date: Wed, 15 Jan 2014 15:18:34 -0500 In-Reply-To: <CAMFYt2af172w+ORdO-2Piccy_fzhqreanrVdpqVYP2UhmPLw2g@HIDDEN> (Panicz Maciej Godek's message of "Wed, 1 Jan 2014 14:19:53 +0100") Message-ID: <87ha95t2w5.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: 0.0 (/) severity 16314 wishlist thanks Panicz Maciej Godek <godek.maciek@HIDDEN> writes: > I've noticed that if macros are ever used in the process > of auto-compilation, the dependency is forgotten, so > even if a module that contains the definition of a macro > gets recompiled, the module that uses the macro remains > unchanged. Yes, this is a known issue. I agree that it would be nice to improve this -- perhaps in 2.2 -- but I'm also worried that it might lead to absurd amounts of needless recompiling, because one often makes minor changes to modules that export macros, without the macros being changed at all. I'm marking this as a "wishlist" item. Thanks, Mark
Received: (at request) by debbugs.gnu.org; 15 Jan 2014 20:21:04 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jan 15 15:21:04 2014 Received: from localhost ([127.0.0.1]:52403 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1W3WxU-0006Zo-10 for submit <at> debbugs.gnu.org; Wed, 15 Jan 2014 15:21:04 -0500 Received: from world.peace.net ([96.39.62.75]:50095) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from <mhw@HIDDEN>) id 1W3WxS-0006Ze-6w; Wed, 15 Jan 2014 15:21:02 -0500 Received: from 209-6-91-212.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com ([209.6.91.212] helo=yeeloong) by world.peace.net with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from <mhw@HIDDEN>) id 1W3WxM-0004LZ-ER; Wed, 15 Jan 2014 15:20:56 -0500 From: Mark H Weaver <mhw@HIDDEN> To: Panicz Maciej Godek <godek.maciek@HIDDEN> Subject: Re: bug#16314: Macro dependency tracking issue in guile auto compiler References: <CAMFYt2af172w+ORdO-2Piccy_fzhqreanrVdpqVYP2UhmPLw2g@HIDDEN> Date: Wed, 15 Jan 2014 15:18:34 -0500 In-Reply-To: <CAMFYt2af172w+ORdO-2Piccy_fzhqreanrVdpqVYP2UhmPLw2g@HIDDEN> (Panicz Maciej Godek's message of "Wed, 1 Jan 2014 14:19:53 +0100") Message-ID: <87ha95t2w5.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: request Cc: 16314 <at> debbugs.gnu.org, request <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: 0.0 (/) severity 16314 wishlist thanks Panicz Maciej Godek <godek.maciek@HIDDEN> writes: > I've noticed that if macros are ever used in the process > of auto-compilation, the dependency is forgotten, so > even if a module that contains the definition of a macro > gets recompiled, the module that uses the macro remains > unchanged. Yes, this is a known issue. I agree that it would be nice to improve this -- perhaps in 2.2 -- but I'm also worried that it might lead to absurd amounts of needless recompiling, because one often makes minor changes to modules that export macros, without the macros being changed at all. I'm marking this as a "wishlist" item. Thanks, Mark
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.