From mboxrd@z Thu Jan 1 00:00:00 1970 From: Katherine Cox-Buday Subject: Re: ASDF Builder (Common Lisp) & "package-inferred-system" Packages Date: Sat, 03 Aug 2019 09:14:17 -0500 Message-ID: <87r26272va.fsf@gmail.com> References: <8736q082h8.fsf@gmail.com> <87fttzd0uo.fsf@ambrevar.xyz> <87wonb6wdn.fsf@gmail.com> <87lg3p7hfd.fsf@gmail.com> <20190113141426.00360523@mailservices.uwaterloo.ca> <87h8ec6qek.fsf@gmail.com> <874l2zv8el.fsf@ambrevar.xyz> <87ef238g8t.fsf@gmail.com> <87sgqiu11w.fsf@ambrevar.xyz> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:46157) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1htune-0005EI-Rp for guix-devel@gnu.org; Sat, 03 Aug 2019 10:14:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1htund-0002Ar-Oq for guix-devel@gnu.org; Sat, 03 Aug 2019 10:14:22 -0400 Received: from mail-yb1-xb33.google.com ([2607:f8b0:4864:20::b33]:43712) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1htund-0002Aa-Gf for guix-devel@gnu.org; Sat, 03 Aug 2019 10:14:21 -0400 Received: by mail-yb1-xb33.google.com with SMTP id y123so24788021yby.10 for ; Sat, 03 Aug 2019 07:14:21 -0700 (PDT) In-Reply-To: <87sgqiu11w.fsf@ambrevar.xyz> (Pierre Neidhardt's message of "Sat, 03 Aug 2019 10:04:59 +0200") 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" To: Pierre Neidhardt Cc: guix-devel@gnu.org Pierre Neidhardt writes: > Hi Katherine! > > One of the issue that we have with the current build system is that it > does not find the dependencies properly for the inferred packages. > > Robert from the ASDF team suggested a solution: > > https://gitlab.common-lisp.net/asdf/asdf/issues/10 > > I think if we use his more general function, we can properly populate > the *source-registry*. So that would be a solution to the first of our > problems, that of the missing inputs. Perfect! > The main other issue is the one you mention: we need to compile the > .fasl files right. > >> - Stop rolling all code into system-fasls >> - Output each file's equivalent fasl to a common directory for the >> system >> - Set a search path in the profile to recursively search the SBCL fasl >> output tree for systems. > > This sounds reasonable. Also you mentioned above that concatenating the > generated fasl files into a single one manually worked for you. If it > works, then why not! I never got this to work[1]. I think Ningle's systems are being bundled into a single fasl, but for whatever reason, its subsystems cannot be found despite that bundled fasl being on the path. Last I looked at this, I remember being left with the distinct impression that we would have to stop producing system fasls, and rather than having one directory of system fasls, we'd have a tree of system directories, each populated with all the fasls for a system e.g.: - ~/.guix-profile/lib/sbcl/ - dbus/ - dbus-all.fasl - dbus-utils.fasl - ... And then find a way to search ~/.guix-profile/lib/sbcl/ recursively. The ASDF manual says[2] $XDG_CONFIG_DIRS/common-lisp/source-registry.conf can hold configurations, as well as `CL_SOURCE_REGISTRY`. Maybe Guix could set one of these in the profile to something like `(:tree (:home ".guix-profile/lib/sbcl/"))`. Or we could stick to the `*source-registry*` variable and use a smarter Common Lisp function to populate it. > I believe your above solution could work. Wanna give it a shot? Currently I have 1 day a week to work on open source things, and I have been busy with other projects. Those may be wrapping up "soon", and then I could give it a go, but I don't think you want to wait for me :) I also don't speak Guile very well, and these larger changes to the build system would probably take me awhile. It would probably be faster and help to educate me if I were a reviewer on patches you produce. I also want to mention that I remember going around in circles on this a bit, so take everything I say here with a grain of salt. I think experimentation is needed to find the cleanest implementation! > Andy, what do you think? [1]- https://lists.gnu.org/archive/html/guix-devel/2019-01/msg00204.html [2] - https://www.common-lisp.net/project/asdf/asdf.html#Configurations -- Katherine