From mboxrd@z Thu Jan 1 00:00:00 1970 From: Timothy Sample Subject: Re: Haskel LTS 12.8. Date: Thu, 30 Aug 2018 15:46:41 -0400 Message-ID: <877ek763j2.fsf@ngyro.com> References: <87in3t5dpk.fsf@ngyro.com> <87wos99fbw.fsf@elephly.net> <87efeg6dqy.fsf@ngyro.com> 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]:49814) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fvSu1-00028E-8b for guix-devel@gnu.org; Thu, 30 Aug 2018 15:46:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fvStx-00059x-VD for guix-devel@gnu.org; Thu, 30 Aug 2018 15:46:49 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:46165) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fvStx-00059K-PF for guix-devel@gnu.org; Thu, 30 Aug 2018 15:46:45 -0400 In-Reply-To: <87efeg6dqy.fsf@ngyro.com> (Timothy Sample's message of "Wed, 29 Aug 2018 17:53:41 -0400") 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: Ricardo Wurmus Cc: guix-devel@gnu.org Hi Again, Timothy Sample writes: > Hello, > > Ricardo Wurmus writes: > >> Hi Tim, >> >>> To avoid duplicating work, I wanted to let you know that I am working on >>> updating the Haskell packages to their LTS 12.8 versions. This will go >>> nicely with the new GHC 8.4.3. >> >> Excellent! I have a couple of new package definitions and a few minor >> updates that I wanted to push to the master branch tomorrow. (These >> updates work fine with with GHC 8.0.x AFAICT, but I haven=E2=80=99t subj= ected >> them to much testing.) > > There=E2=80=99s an issue with the new GHC. The =E2=80=9C--allow-newer=3D= =E2=80=A6=E2=80=9D flags no > longer work. I can=E2=80=99t find any info on the Web or in any changelo= g. It > seems that nobody uses =E2=80=9Crunhaskell Setup.hs =E2=80=A6=E2=80=9D ex= cept for us. Right > now, I am working around this clumsily to avoid stalling (I am just > patching the Cabal files). It ought to be fixed before everything gets > merged, though. The best idea I=E2=80=99ve had so far is to update the b= uild > system to use the =E2=80=9Ccabal=E2=80=9D command. Hopefully I can find = something > simpler, though. The change is here: , and it is mentioned nicely in the Cabal changelog: * Removed unused `--allow-newer`/`--allow-older` support from `Setup configure` (#4527). If we use the =E2=80=9Ccabal=E2=80=9D command like I proposed above, we nee= d the =E2=80=9Ccabal-install=E2=80=9D package which is built with (wait for it) C= abal. We could add an argument like =E2=80=9C#:cabal-install?=E2=80=9D which when fa= lse would cause the build system to use =E2=80=9Crunhaskell Setup.hs=E2=80=9D. This = would let us bootstrap =E2=80=9Ccabal-install=E2=80=9D, but we would need to use it for = every package that =E2=80=9Ccabal-install=E2=80=9D depends on, which is a pretty substant= ial set. (This also means that all of those packages could not use =E2=80=9C--allow-newer=E2=80=9D.) I find this pretty clunky. I=E2=80=99m starting to think that patching the Cabal files is not so bad a= fter all. The main reason we change dependency constraints so often with Hackage packages is because we do not use the latest constraints from upstream. Hackage has a Cabal file revision system separate from the release tarballs, and it is used liberally by the Haskell community. (In fact, it seems to cause developers to be very conservative with their constraints, because they know they can be revised easily if needed.) Because we only ever see the unrevised constraints, we use =E2=80=9C--allow-newer=E2=80=9D often to keep up. If we could modify the build system or add a new downloader to use these revisions, we would only rarely need to change the Cabal file dependency constraints, and it would make doing it via patches much less burdensome. Another idea is to add an =E2=80=9C#:allow-newer=E2=80=9D argument to the b= uild system, and either use a clever regex or the Cabal parser to patch the files automatically. Thoughts? >>> I am keeping the work on a WIP branch that I have here: >>> . All the updates >>> have commits, but there is still a lot of testing to do and build issues >>> to resolve. I will keep you posted. >> >> Shall we push that to a wip-haskell branch in the Guix repository on >> Savannah instead? Then we could more easily let ci.guix.info build out >> the branch. > > Yes! This is a great idea. However, maybe it=E2=80=99s best for a littl= e later > (tomorrow or the next day). Right now, I am fixing more than my > computer is building. :) > >> -- >> Ricardo > > > -- Tim