From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: [PATCH 4/7] gnu: Add idris-lightyear. Date: Tue, 03 Jan 2017 16:05:32 +0100 Message-ID: <8737h0420z.fsf@gnu.org> References: <20170102171958.32131-1-david@craven.ch> <20170102171958.32131-4-david@craven.ch> <87shp08h2k.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]:52223) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cOQeh-0000zL-2w for guix-devel@gnu.org; Tue, 03 Jan 2017 10:05:40 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cOQed-0007bF-PS for guix-devel@gnu.org; Tue, 03 Jan 2017 10:05:39 -0500 In-Reply-To: (David Craven's message of "Tue, 3 Jan 2017 14:13:18 +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" To: David Craven Cc: guix-devel David Craven skribis: >> IMO you can push this patch as is and provide an =E2=80=98idris-build-sy= stem=E2=80=99 >> later on, or do the latter first. Either way is fine with me as long as >> we don=E2=80=99t wait until there are ten users of =E2=80=98idris-defaul= t-arguments=E2=80=99. >> WDYT? > > Regarding that, I think it's harder than it should be to add new build > systems at the moment. I think that adding a new build system requires > a substantial amount of boiler plate. > > Would it make sense to have a phase-build-system that could be easily > extended with custom phases and cherry pick from a collection of > generic phases or something like that? Then we could simplify the > gnu-build-system to include only gnu-build-system specific stuff? Yeah, it=E2=80=99s too much boilerplate, though in this case I think it wou= ld be quite reasonable (define (set-build-arguments b) (bag (inherit b) (arguments '(#:modules =E2=80=A6 #:phases =E2=80=A6)))) (define idris-build-system (build-system (lower (compose set-build-arguments (build-system-lower gnu-build-system))))) and then you could have: (define-module (guix build idris-build-system) #:use-module ((guix build gnu-build-system) #:prefix gnu:)) #:export (%standard-phases)) (define %standard-phases (modify-phases gnu:%standard-phases =E2=80=A6)) > This could also be a good time to reinvestigate using gexp's in the > build systems. Would the problem that Danny had with imported modules > compiled not finding libgcrypt be solved by using gexp's? The =E2=80=98wip-build-systems-gexp=E2=80=99 branch is still around and I p= lan to look into it again=E2=80=A6 > I'm aware that this would be a substantial effort and maybe it's not > currently that important. But there seems to be interest in also > adding an ocaml-build-system, and the rust-build-system is a work in > progress. Maybe we could ease the transition by having the new build > systems use a phase-build-system as a base, without having to change > existing build-systems and giving some more lead way in experimenting, > since it wouldn't break any existing packages. I=E2=80=99m not sure what a =E2=80=98phase-build-system=E2=80=99 would look= like, if not like =E2=80=98gnu-build-system=E2=80=99, but it=E2=80=99s an interesting idea to= explore. Dave Thompson recently suggested that maybe phases could be first-class, i.e., directly exposed on the =E2=80=9Chost side=E2=80=9D, which is indeed = a valid design question. Another thing worth exploring! Ludo=E2=80=99.