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: Wed, 11 Nov 2015 14:26:46 +0100 Message-ID: <87pozgfyzt.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> 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]:47300) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZwVQR-0001MW-5y for guix-devel@gnu.org; Wed, 11 Nov 2015 08:27:02 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZwVQM-00019c-09 for guix-devel@gnu.org; Wed, 11 Nov 2015 08:26:59 -0500 In-Reply-To: <87mvuku444.fsf@T420.taylan> ("Taylan Ulrich \=\?utf-8\?Q\?\=5C\=22Bay\=C4\=B1rl\=C4\=B1\=2FKammer\=5C\=22\=22's\?\= message of "Wed, 11 Nov 2015 13:12:27 +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: [...] >> (gnu scripts environment) imports (gnu packages bash), so we end up >> loading a big bunch of (gnu packages =E2=80=A6) modules. >> >> The problem is that (gnu packages commencement) refers to (gnu packages >> bash) from its top-level. But here, we are loading (gnu packages bash) >> first, which somehow entails loading (gnu packages cross-base), which >> loads (gnu packages commencement), which sees a (gnu packages bash) >> module containing zero bindings. >> >> What=E2=80=99s unclear to me though is why (gnu packages cross-base) get= s loaded >> in the first place. >> >> Could you investigate in that direction? > > It seems to be > > (guix scripts environment) -> (gnu system linux-container) -> > (gnu system) -> (gnu packages firmware) -> (gnu packages cross-base) Good catch. I=E2=80=99m not sure how to address that. We could introduce lazy referenc= es with =E2=80=98module-ref=E2=80=99 at any of these stages. That would work = but sounds like a hack. Hmm. Ideas? :-) > It would be amazing if we could easily create graphs of Guile modules... We can do it with =E2=80=98guild use2dot=E2=80=99 (with the caveat that we = need to explicitly load (guix gexp) before because otherwise it borks when it sees #~ and the likes.) However the resulting graph is pretty much intractable. That said, it may be nice to have a similar tool that we could also use to build Makefile rules or to make a topological sort so =E2=80=98guix pull= =E2=80=99 builds files in topological order. But that=E2=80=99s more of an optimizat= ion, I think. Ludo=E2=80=99.