From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: [PATCH] build: pull: Compile .scm files in one process. Date: Thu, 03 Dec 2015 12:44:22 +0200 Message-ID: <877fkvvmk9.fsf@gnu.org> References: <87si4kxtge.fsf@T420.taylan> <87611gdul8.fsf@gnu.org> <87h9kzy09b.fsf@T420.taylan> <87bnb6c0nh.fsf@gnu.org> <874mgyxhgy.fsf@T420.taylan> <877flpohu6.fsf@gnu.org> <87mvuku444.fsf@T420.taylan> <87pozgfyzt.fsf@gnu.org> <87io57tt2s.fsf@T420.taylan> <876117mnef.fsf@igalia.com> <87egfvtnbw.fsf@T420.taylan> <87y4e3l7hm.fsf@igalia.com> <87a8qjtje8.fsf@T420.taylan> <876117t0ax.fsf@gnu.org> <877flmrn2m.fsf@T420.taylan> <87a8q0ies5.fsf@gnu.org> <87fuzrlt6f.fsf@T420.taylan> <87bnafbvrs.fsf@gnu.org> <87bnaflbg2.fsf@T420.taylan> <87h9k3ab9k.fsf@gnu.org> <87zixt9sr6.fsf@T420.taylan> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:34789) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a4RNK-0004zI-Uc for guix-devel@gnu.org; Thu, 03 Dec 2015 05:44:38 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1a4RNG-0003mt-H1 for guix-devel@gnu.org; Thu, 03 Dec 2015 05:44:34 -0500 In-Reply-To: <87zixt9sr6.fsf@T420.taylan> ("Taylan Ulrich \=\?utf-8\?Q\?\=5C\=22Bay\=C4\=B1rl\=C4\=B1\=2FKammer\=5C\=22\=22's\?\= message of "Wed, 02 Dec 2015 09:09:17 +0100") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Taylan Ulrich =?utf-8?Q?=22Bay=C4=B1rl=C4=B1?= =?utf-8?Q?=2FKammer=22?= Cc: guix-devel@gnu.org taylanbayirli@gmail.com (Taylan Ulrich "Bay=C4=B1rl=C4=B1/Kammer") skribis: > ludo@gnu.org (Ludovic Court=C3=A8s) writes: > >> taylanbayirli@gmail.com (Taylan Ulrich "Bay=C4=B1rl=C4=B1/Kammer") skrib= is: >> >>> After some tinkering around I realized that the problem is that our >>> workaround of loading files explicitly causes the package record type to >>> be redefined after some packages have already been defined. More >>> generally, we force the top-level of many files to be re-executed after >>> they've already been executed as a result of a module import... >>> >>> It would be great if the whole circular import problem could somehow be >>> solved by Guile (no idea how feasible it is). On the meanwhile, we'll >>> have to work around problems introduced by workarounds. :-) >> >> I think we=E2=80=99ve gone way too far in kludgeland. ;-) >> >> The other idea I had, and which is known to work, it to rely exclusively >> on auto-compilation. By definition, Guile=E2=80=99s auto-compilation mo= de will >> compile things in the right order, thereby allowing us to compile >> everything in one process. Probably not parallelizable though, since >> this is under Guile=E2=80=99s control, not ours. >> >> Would you like to play with that? Otherwise I can give it a try later. > > I looked around in guix/scripts/pull.scm and build-aux/build-self.scm, > but couldn't figure out how to enable auto-compilation here. I expected > there would be a place where guile is called with --no-auto-compile. > What am I missing? We could do (set! %fresh-auto-compile #t), and also set XDG_CACHE_HOME so we control where .go files go. Ludo=E2=80=99.