From mboxrd@z Thu Jan 1 00:00:00 1970 From: Timothy Sample Subject: Re: heads-up: Haskell updates Date: Thu, 15 Feb 2018 09:02:43 -0500 Message-ID: <877eretkos.fsf@ngyro.com> References: <87r2ppjbst.fsf@elephly.net> <873723pfya.fsf@netris.org> <871shn8jm5.fsf@elephly.net> <87zi4b744f.fsf@elephly.net> <20180214234721.4e9fe198@scratchpost.org> <87a7waodaa.fsf@netris.org> <87o9kq7gt9.fsf@elephly.net> 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]:54769) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1emK7h-00059w-6M for guix-devel@gnu.org; Thu, 15 Feb 2018 09:02:54 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1emK7b-0008O1-8W for guix-devel@gnu.org; Thu, 15 Feb 2018 09:02:53 -0500 Received: from out5-smtp.messagingengine.com ([66.111.4.29]:55099) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1emK7b-0008N2-3X for guix-devel@gnu.org; Thu, 15 Feb 2018 09:02:47 -0500 In-Reply-To: <87o9kq7gt9.fsf@elephly.net> (Ricardo Wurmus's message of "Thu, 15 Feb 2018 10:17:22 +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: Ricardo Wurmus Cc: guix-devel Ricardo Wurmus writes: > I think that=E2=80=99s a misunderstanding. The cause for the error is ea= rlier > when it complains that some packages depend on different versions of the > =E2=80=9Ctransformers=E2=80=9D package. =E2=80=9CStateT=E2=80=9D is a mo= nad transformer. For what it=E2=80=99s worth, I fixed this error on my machine by adding =E2=80=9Cghc-transformers=E2=80=9D as an input to =E2=80=9Cghc-transformers= -compat=E2=80=9D. (This also fixed =E2=80=9Cghc-adjunctions=E2=80=9D.) This suggests to me that what yo= u wrote earlier accounts for the problem: > * many problems are caused by the fact that GHC includes a bunch of > packages that really shouldn=E2=80=99t be overridden by packages. Exam= ples > are ghc-directory, ghc-binary, ghc-bytestring, etc. Since we still > have packages where these inputs are used, there can be conflicts down > the line, which are hard to fix. The =E2=80=9Cghc-transformers-compat=E2=80=9D package was using =E2=80=9Ctr= ansformers=E2=80=9D from GHC, while =E2=80=9Cresourcet=E2=80=9D and =E2=80=9Cadjunctions=E2=80=9D used ou= r =E2=80=9Cghc-transformers=E2=80=9D package from Hackage. Forcing =E2=80=9Cghc-transformers-compat=E2=80=9D to also use =E2=80=9Ctransformers=E2=80=9D from Hackage fixes the problems. I was trying to see if I could get Idris to build, and after fixing these two packages, ran into similar problems with =E2=80=9Cghc-binary=E2= =80=9D. It looks like we might need some kind of policy here. Either we don=E2=80= =99t tinker with (override) the built-in GHC packages or we somehow hide them during builds. If we decided not to override them, we should consider deleting all the packages that do so. Then all the dependent packages would pick up their dependencies from GHC (somewhat implicitly). If we hid the built-in packages, it would require that every Haskell package be explicit about which built-in GHC packages it uses (which is not currently the case as demonstrated above). Both of these approaches would probably cause a lot of errors right off the start. The first approach would cause compile-time errors (references to undefined variables in Guile), and the second, build errors. Unfortunately, I don=E2=80=99t know enough about Haskell to comment on whet= her or not these packages =E2=80=9Creally shouldn=E2=80=99t be overridden=E2=80= =9D or not. (It makes sense to me, but OTOH, why are they all split up and on Hackage if not for tinkering?) If they really shouldn=E2=80=99t be overridden, then we should stop doing so! I=E2=80=99m happy to work on this if there is a path forward. Thoughts? -- Tim