darcs

Patch 1631 require GHC 8, QuickCheck 2.8.2, zlib 0.6.1.2, suppress warnings and unused CPP pragmas

Title require GHC 8, QuickCheck 2.8.2, zlib 0.6.1.2, suppress warnings and unused CPP pragmas
Superseder Nosy List gh
Related Issues
Status accepted Assigned To
Milestone

Created on 2017-12-21.14:31:57 by gh, last changed 2018-02-10.16:34:31 by bf.

Files
File name Status Uploaded Type Edit Remove
require-zlib-0_6_1_2.dpatch gh, 2017-12-21.14:31:56 application/octet-stream
See mailing list archives for discussion on individual patches.
Messages
msg19814 (view) Author: gh Date: 2017-12-21.14:31:56
According to the packages currently present in Darcs Stable (Stretch) we
can safely require GHC 8 and the package versions that correpond to
haskell-platform 8.0.1 [1].

I haven't bumped the lower bounds of all possible packages, only the
ones that actually provoked some #ifdef in darcs' source code.

Then I removed more now useless #ifdef's, which saves us a few LOCs, and
cleaned unused CPP languages pragmas in many modules.

The last two patches suppress warnings in cabal/ghc and redundant class
constraints in the tests harness.

[1] https://www.haskell.org/platform/contents.html


7 patches for repository http://darcs.net:

patch 7038a3d0be3ffb81271ecc35e034b33c598969ba
Author: Guillaume Hoffmann <guillaumh@gmail.com>
Date:   Tue Dec 19 16:06:38 -03 2017
  * require zlib 0.6.1.2

patch 91595af390b2d72f68038cf322133eb137bfd5b8
Author: Guillaume Hoffmann <guillaumh@gmail.com>
Date:   Tue Dec 19 16:09:03 -03 2017
  * require QuickCheck 2.8.2

patch d6e2f470a93b66a340877c6ee2d2b551cee99bbd
Author: Guillaume Hoffmann <guillaumh@gmail.com>
Date:   Tue Dec 19 16:11:22 -03 2017
  * require GHC 8

patch 37bedde2e5461901a8403b40a1fd7f24ef29b65f
Author: Guillaume Hoffmann <guillaumh@gmail.com>
Date:   Tue Dec 19 16:11:43 -03 2017
  * remove outdated CPP conditionals on GHC version

patch c3c039844a606061c73da8855770ce3336fddfae
Author: Guillaume Hoffmann <guillaumh@gmail.com>
Date:   Thu Dec 21 10:36:54 -03 2017
  * remove useless or redundant LANGUAGE pragmas

patch f052a5d7829f11e2d8d49630546efcfa87333663
Author: Guillaume Hoffmann <guillaumh@gmail.com>
Date:   Thu Dec 21 10:46:40 -03 2017
  * suppress simplificable class constraints warnings in harness

patch a174072573019c681bdf267afa8069a0776c2fe9
Author: Guillaume Hoffmann <guillaumh@gmail.com>
Date:   Thu Dec 21 11:06:36 -03 2017
  * suppress warning: add other-modules: Version to executable in
darcs.cabal
Attachments
msg19824 (view) Author: bf Date: 2018-01-21.17:23:46
I agree with most of the changes here, except to require ghc-8. I would
like us to postpone this until we have a good reason to do so, such as a
package upgrade that depends on it or a significant number of CPP
conditionals that would be obviated by this move. Currently, of the patch

* remove outdated CPP conditionals on GHC version

only one hunk is concerned with ghc 8 and if I roll this one back
together with 

  * require GHC 8

then I can compile with ghc-7.10.3 just fine; except I get this strange
message from cabal new-build after it has linked everything:

about to hand over
setup: Error: Could not find module: Version with any suffix:
["gc","chs","hsc","x","y","ly","cpphs","hs","lhs"]
msg19844 (view) Author: gh Date: 2018-02-07.22:20:17
Self-accept.
msg19870 (view) Author: bf Date: 2018-02-10.15:59:58
Great. I upgraded to ghc-8.2.2 and now I can no longer compile darcs.
This is what I get:

Since a few patches, darcs requires ghc-8, so I upgraded to 8.2.2 and
now when I try to build it fails with ghc: out of memory. I have ubuntu
16 LTS and use the cabal-head from the ppa. 

ben@yuiitsu[1]:.../darcs/screened>cabal new-build
Build profile: -w ghc-8.2.2 -O1
In order, the following will be built (use -v for more details):
 - Cabal-1.24.2.0 (lib) (requires build)
 - HUnit-1.6.0.0 (lib) (requires build)
 - ansi-terminal-0.8.0.1 (lib:ansi-terminal) (requires build)
 - async-2.1.1.1 (lib) (requires build)
 - exceptions-0.8.3 (lib) (requires build)
 - foundation-0.0.19 (lib) (requires build)
 - hashable-1.2.6.1 (lib) (requires build)
 - old-time-1.1.0.3 (lib:old-time) (requires build)
 - parsec-3.1.13.0 (lib) (requires build)
 - polyparse-1.12 (lib:polyparse) (requires build)
 - regex-base-0.93.2 (lib:regex-base) (requires build)
 - tf-random-0.5 (lib) (requires build)
 - transformers-base-0.4.4 (lib:transformers-base) (requires build)
 - vector-0.12.0.1 (lib) (requires build)
 - wl-pprint-text-1.1.1.0 (lib:wl-pprint-text) (requires build)
 - xml-1.3.14 (lib:xml) (requires build)
 - ansi-wl-pprint-0.6.8.2 (lib) (requires build)
 - temporary-1.2.1.1 (lib) (requires build)
 - resourcet-1.2.0 (lib) (requires build)
 - memory-0.14.14 (lib) (requires build)
 - unordered-containers-0.2.9.0 (lib) (requires build)
 - scientific-0.3.5.2 (lib) (requires build)
 - constraints-0.10 (lib) (requires build)
 - zip-archive-0.3.2.2 (lib) (requires build)
 - system-filepath-0.4.14 (lib:system-filepath) (requires build)
 - network-uri-2.6.1.0 (lib) (requires build)
 - regex-tdfa-1.2.2 (lib:regex-tdfa) (requires build)
 - regex-posix-0.95.2 (lib:regex-posix) (requires build)
 - QuickCheck-2.10.1 (lib) (requires build)
 - monad-control-1.0.2.2 (lib:monad-control) (requires build)
 - vector-algorithms-0.7.0.1 (lib) (requires build)
 - graphviz-2999.19.0.0 (lib) (requires build)
 - cryptonite-0.25 (lib) (requires build)
 - attoparsec-0.13.2.2 (lib) (requires build)
 - system-fileio-0.3.16.3 (lib) (requires build)
 - HTTP-4000.3.9 (lib) (requires build)
 - regex-compat-tdfa-0.95.1.4 (lib:regex-compat-tdfa) (requires build)
 - test-framework-0.8.2.0 (lib) (requires build)
 - lifted-base-0.2.3.11 (lib) (requires build)
 - mono-traversable-1.0.8.1 (lib) (requires build)
 - cryptohash-0.11.9 (lib) (requires build)
 - test-framework-quickcheck2-0.3.0.4 (lib) (requires build)
 - test-framework-hunit-0.3.0.2 (lib:test-framework-hunit) (requires build)
 - lifted-async-0.9.3.3 (lib) (requires build)
 - enclosed-exceptions-1.0.2 (lib) (requires build)
 - conduit-1.3.0 (lib) (requires build)
 - shelly-1.6.9 (lib) (requires build)
 - sandi-0.4.1 (lib) (requires build)
 - darcs-2.13.0 (lib:darcs, exe:darcs, test:darcs-test) (first run)
Configuring library for Cabal-1.24.2.0..
Preprocessing library for Cabal-1.24.2.0..
Building library for Cabal-1.24.2.0..
[ 1 of 86] Compiling Distribution.Compat.Binary (
Distribution/Compat/Binary.hs, dist/build/Distribution/Compat/Binary.o )
[ 2 of 86] Compiling Distribution.Compat.CreatePipe (
Distribution/Compat/CreatePipe.hs,
dist/build/Distribution/Compat/CreatePipe.o )
[ 3 of 86] Compiling Distribution.Compat.Environment (
Distribution/Compat/Environment.hs,
dist/build/Distribution/Compat/Environment.o )
[ 4 of 86] Compiling Distribution.Compat.Exception (
Distribution/Compat/Exception.hs,
dist/build/Distribution/Compat/Exception.o )
[ 5 of 86] Compiling Distribution.Compat.GetShortPathName (
Distribution/Compat/GetShortPathName.hs,
dist/build/Distribution/Compat/GetShortPathName.o )
[ 6 of 86] Compiling Distribution.Compat.Internal.TempFile (
Distribution/Compat/Internal/TempFile.hs,
dist/build/Distribution/Compat/Internal/TempFile.o )
[ 7 of 86] Compiling Distribution.Compat.CopyFile (
Distribution/Compat/CopyFile.hs, dist/build/Distribution/Compat/CopyFile.o )
[ 8 of 86] Compiling Distribution.Compat.MonadFail (
Distribution/Compat/MonadFail.hs,
dist/build/Distribution/Compat/MonadFail.o )
[ 9 of 86] Compiling Distribution.Compat.ReadP (
Distribution/Compat/ReadP.hs, dist/build/Distribution/Compat/ReadP.o )
[10 of 86] Compiling Distribution.Compat.Semigroup (
Distribution/Compat/Semigroup.hs,
dist/build/Distribution/Compat/Semigroup.o )
[11 of 86] Compiling Distribution.GetOpt ( Distribution/GetOpt.hs,
dist/build/Distribution/GetOpt.o )
[12 of 86] Compiling Distribution.Lex ( Distribution/Lex.hs,
dist/build/Distribution/Lex.o )
[13 of 86] Compiling Distribution.PackageDescription.Utils (
Distribution/PackageDescription/Utils.hs,
dist/build/Distribution/PackageDescription/Utils.o )
[14 of 86] Compiling Distribution.ReadE ( Distribution/ReadE.hs,
dist/build/Distribution/ReadE.o )
[15 of 86] Compiling Distribution.Simple.CCompiler (
Distribution/Simple/CCompiler.hs,
dist/build/Distribution/Simple/CCompiler.o )
[16 of 86] Compiling Distribution.Simple.PreProcess.Unlit (
Distribution/Simple/PreProcess/Unlit.hs,
dist/build/Distribution/Simple/PreProcess/Unlit.o )
[17 of 86] Compiling Distribution.Simple.Program.Internal (
Distribution/Simple/Program/Internal.hs,
dist/build/Distribution/Simple/Program/Internal.o )
[18 of 86] Compiling Distribution.TestSuite ( Distribution/TestSuite.hs,
dist/build/Distribution/TestSuite.o )
[19 of 86] Compiling Distribution.Text ( Distribution/Text.hs,
dist/build/Distribution/Text.o )
[20 of 86] Compiling Distribution.System ( Distribution/System.hs,
dist/build/Distribution/System.o )
[21 of 86] Compiling Distribution.ModuleName (
Distribution/ModuleName.hs, dist/build/Distribution/ModuleName.o )
[22 of 86] Compiling Distribution.Verbosity ( Distribution/Verbosity.hs,
dist/build/Distribution/Verbosity.o )
[23 of 86] Compiling Distribution.Version ( Distribution/Version.hs,
dist/build/Distribution/Version.o )
[24 of 86] Compiling Distribution.Package ( Distribution/Package.hs,
dist/build/Distribution/Package.o )
[25 of 86] Compiling Distribution.License ( Distribution/License.hs,
dist/build/Distribution/License.o )
[26 of 86] Compiling Distribution.Simple.GHC.IPIConvert (
Distribution/Simple/GHC/IPIConvert.hs,
dist/build/Distribution/Simple/GHC/IPIConvert.o )
[27 of 86] Compiling Language.Haskell.Extension (
Language/Haskell/Extension.hs, dist/build/Language/Haskell/Extension.o )
[28 of 86] Compiling Distribution.Compiler ( Distribution/Compiler.hs,
dist/build/Distribution/Compiler.o )
[29 of 86] Compiling Distribution.Simple.InstallDirs (
Distribution/Simple/InstallDirs.hs,
dist/build/Distribution/Simple/InstallDirs.o )
[30 of 86] Compiling Distribution.PackageDescription (
Distribution/PackageDescription.hs,
dist/build/Distribution/PackageDescription.o )
ghc: out of memory
cabal: Failed to build Cabal-1.24.2.0 (which is required by
darcs-2.13.0). The
build process terminated with exit code 251
msg19871 (view) Author: bf Date: 2018-02-10.16:02:59
Never mind the second paragraph. It works with neither cabal-head nor
cabal-2.0.
msg19872 (view) Author: bf Date: 2018-02-10.16:34:30
Turns out I had set a ulimit -v to 2.2GB. Setting it to unlimited lets
me proceed, for now. Is still very slow. ghc-7.10.3 had no problem with
the limit.
History
Date User Action Args
2017-12-21 14:31:57ghcreate
2018-01-21 17:23:47bfsetmessages: + msg19824
2018-02-07 22:20:17ghsetstatus: needs-review -> accepted
messages: + msg19844
2018-02-10 15:59:58bfsetmessages: + msg19870
2018-02-10 16:02:59bfsetmessages: + msg19871
2018-02-10 16:34:31bfsetmessages: + msg19872