From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maxim Cournoyer Subject: bug#27284: Memory leak in 'guix pull' or 'make' in guix source Date: Wed, 20 Sep 2017 14:29:15 -0400 Message-ID: <87shfhcjgk.fsf@gmail.com> References: <20170608083935.izw747zaetkaxv4o@abyayala> <87poamv2i7.fsf@gnu.org> <87y3paccu5.fsf@gmail.com> <878th9tx3k.fsf@gnu.org> 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]:52733) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dujlA-0006Gx-QU for bug-guix@gnu.org; Wed, 20 Sep 2017 14:30:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dujl5-0007ZQ-5w for bug-guix@gnu.org; Wed, 20 Sep 2017 14:30:08 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:41801) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dujl5-0007Yd-1s for bug-guix@gnu.org; Wed, 20 Sep 2017 14:30:03 -0400 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: <878th9tx3k.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Wed, 20 Sep 2017 13:42:39 +0200") List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: "bug-Guix" To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 27284@debbugs.gnu.org ludo@gnu.org (Ludovic Court=C3=A8s) writes: > Maxim Cournoyer skribis: > >> ludo@gnu.org (Ludovic Court=C3=A8s) writes: > > [...] > >> 2. Remove the --no-auto-compile arg from (guix scripts guix). >> >> I'm not sure why this is desirable. Is it because otherwise the cached >> compiled copies would be susceptible to ABI breakages? > > Yes, that=E2=80=99s one thing. > > Another thing is that on the first run of =E2=80=98guix package=E2=80=99 = following =E2=80=98guix > pull=E2=80=99, you=E2=80=99d end up compiling everything, which is not mu= ch better than > compiling them upfront. To be clear, my suggestion of removing --no-auto-compile was not as a replacement to compilation, but in addition to. Thinking more about what I wrote yesterday, it seems what I had on mind was a custom, optimized way to build Guix that would minimize the amount of files to recompile, ala 'git pull && make' without running make clean-go or even ./configure (under the condition that the closure of guix hasn't changed -- when it does, a full rebuild would be necessary to ensure determinism). As an unrelated note, I find --no-auto-compile annoying in a development context when working directly from the guix tree. It forces you to constantly run 'make', otherwise it recompiles modules changed since the last 'make' every time Guile needs them, even when they haven't changed on disk. > There=E2=80=99s also the option of not compiling (gnu packages *) and ins= tead > evaluating them, but currently this is too costly in terms of memory and > CPU. How do we instruct Guile to evaluate rather than compile? I don't think I've ever experimented with this yet! Maxim