From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: David Kastrup Newsgroups: gmane.lisp.guile.devel Subject: Re: Autocompilation/LilyPond Date: Thu, 08 Mar 2012 00:51:16 +0100 Organization: Organization?!? Message-ID: <87wr6wotqj.fsf@fencepost.gnu.org> References: <87vcmj1gwn.fsf@fencepost.gnu.org> <87vcmjxiu5.fsf@netris.org> <87sjhnyuwl.fsf@fencepost.gnu.org> <87ipijx75w.fsf@netris.org> <87mx7uy1z6.fsf@fencepost.gnu.org> <87399mxxou.fsf@netris.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: dough.gmane.org 1331164297 11663 80.91.229.3 (7 Mar 2012 23:51:37 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Wed, 7 Mar 2012 23:51:37 +0000 (UTC) To: guile-devel@gnu.org Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Thu Mar 08 00:51:36 2012 Return-path: Envelope-to: guile-devel@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 1S5Qds-0004me-JD for guile-devel@m.gmane.org; Thu, 08 Mar 2012 00:51:36 +0100 Original-Received: from localhost ([::1]:35918 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S5Qdr-00079u-Tc for guile-devel@m.gmane.org; Wed, 07 Mar 2012 18:51:35 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:42416) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S5Qdo-00079g-99 for guile-devel@gnu.org; Wed, 07 Mar 2012 18:51:33 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1S5Qdm-0000aI-Ar for guile-devel@gnu.org; Wed, 07 Mar 2012 18:51:31 -0500 Original-Received: from plane.gmane.org ([80.91.229.3]:53021) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S5Qdm-0000a8-47 for guile-devel@gnu.org; Wed, 07 Mar 2012 18:51:30 -0500 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1S5Qdj-0004du-Vg for guile-devel@gnu.org; Thu, 08 Mar 2012 00:51:27 +0100 Original-Received: from p57b9e679.dip.t-dialin.net ([87.185.230.121]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 08 Mar 2012 00:51:27 +0100 Original-Received: from dak by p57b9e679.dip.t-dialin.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 08 Mar 2012 00:51:27 +0100 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 50 Original-X-Complaints-To: usenet@dough.gmane.org X-Gmane-NNTP-Posting-Host: p57b9e679.dip.t-dialin.net X-Face: 2FEFf>]>q>2iw=B6, xrUubRI>pR&Ml9=ao@P@i)L:\urd*t9M~y1^:+Y]'C0~{mAl`oQuAl \!3KEIp?*w`|bL5qr,H)LFO6Q=qx~iH4DN; i"; /yuIsqbLLCh/!U#X[S~(5eZ41to5f%E@'ELIi$t^ Vc\LWP@J5p^rst0+('>Er0=^1{]M9!p?&:\z]|;&=NP3AhB!B_bi^]Pfkw User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.92 (gnu/linux) Cancel-Lock: sha1:SBM8rUQlHvn3+fXMZaAFydRs6WE= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 80.91.229.3 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:14051 Archived-At: Mark H Weaver writes: > David Kastrup writes: > >> Mark H Weaver writes: >> >>> Excellent! As long as you load everything in the right order, such that >>> macros are defined before they are used, I don't see why there should be >>> any other problems related to macros and compilation. >> >> Because the individual files are not independent from one another? >> That's why I wrote: >> >> Personally, I think it would make sense if we could get the >> autocompiler to treat the whole blob of files as _one_ unit, and >> recompile the unit if it gets out of date. > > There's no problem with them being dependent on one another. When you > load a file, even with auto-compilation, the macro expander will make > use of whatever macros are already bound in the current module. The > rest of the compiler sees only the output of the macro expander. > > Try the following experiment: put "(define-macro (bar x) `(quote ,x))" > into "foo1.scm", and "(define (foo x) (bar x))" into "foo2.scm", and > then within a REPL type: (load "foo1.scm") (load "foo2.scm") and observe > that everything works as it should. > > If you really want everything to be compiled as one unit, you can use > 'include' (which acts essentially the same as #include in C), though > beware that Guile is not yet smart enough to auto-recompile when one of > the included files gets updated. > > I don't see any compelling benefit to compiling everything as one unit, > but do as you wish :) How is this supposed to work for compiling and installing a package? Basically, make all sudo make install The usual case will be that the user calling lilypond will not have write permission in the installed directories (and even if he did, like when calling lilypond as root, lilypond should not stomp over the installed files). So what would make all do to generate one or more .go files? -- David Kastrup