seqaid 0.3.0.0 → 0.3.0.1
raw patch · 4 files changed
+122/−36 lines, 4 files
Files
- Seqaid/Prepro.hs +6/−0
- changelog.txt +7/−1
- cpphs.sh +37/−0
- seqaid.cabal +72/−35
Seqaid/Prepro.hs view
@@ -569,6 +569,12 @@ let cppopts = intercalate " " cppopts_lst let ghcopts' = intercalate " " ghcopts_lst +-- XXX Alternatively, could use a shell script to delegate, as done+-- in leaky (to cope with this rogue). But hopefully this suffices,+-- and hackage resolves this undesireable situation with build reporting+-- at which time we can simplify, and depend on build tools being+-- installed in places from which they will be visible.+ in_sandbox <- detectSandbox i_am_misconfigured <- doesFileExist
changelog.txt view
@@ -1,5 +1,11 @@ -0.2.1.1 -> 0.3.0.0+0.3.0.0 -> 0.3.0.1+ - still trying to decide on policy regarding cpphs+ - this is all motivated by one pesky rogue anonymous build spammer+ - had a spot of trouble over this, but learned a few tricks+ - hopefully this upload is the ticket; sorry for the extra version uploads++** 0.2.1.1 -> 0.3.0.0 - deepseq-bounded major version bump 0.2.1.0 -> 0.2.1.1
+ cpphs.sh view
@@ -0,0 +1,37 @@+#!/usr/bin/env bash++# (Hopefully that works on mingw32.)++## #!/bin/sh++# This is mostly to get rid of rogue failed build reports.+# Not my fault I have to make things ugly to fix mistakes of+# others (build reporters with misconfigured environemnts; and+# hackage, for allowing this to smear a perfectly good library+# by displaying the report so prominently, and making it+# impossible for the maintainer to get rid of it or even+# add an annotation). I could have been doing something+# constructive with this time.++env PATH=$PATH:$HOME/.cabal/bin:.cabal-sandbox/bin:/home/builder/hackage-server/build-cache/tmp-install/bin cpphs --cpp $*++if [ 0 ]; then++if [ -f .cabal-sandbox/bin/cpphs ]; then+ # Building in a sandbox, you want the sandbox's cpphs:+ .cabal-sandbox/bin/cpphs --cpp $*+elif [ $(which cpphs) ]; then+ # Either cpphs was already on your path, or it was just installed and+ # is seen on your path -- use this one:+ cpphs --cpp $*+elif [ -f $HOME/.cabal/bin/cpphs ]; then+ $HOME/.cabal/bin/cpphs --cpp $*+elif [ $(which cpp) ]; then+ cpp $*+else+ echo 'ERROR: Neither cpphs nor cpp could be found!'+ exit 1+fi++fi+
seqaid.cabal view
@@ -2,7 +2,7 @@ ------------------------------------------------------------------------------- name: seqaid-version: 0.3.0.0+version: 0.3.0.1 synopsis: Dynamic strictness control, including space leak repair license: BSD3 license-file: LICENSE@@ -40,6 +40,7 @@ , release-announcement.txt , deepseq-bounded-seqaid-leaky.html , deepseq-bounded-seqaid-leaky.css+ , cpphs.sh -- source-repository head -- type: git@@ -142,16 +143,29 @@ -- This does indeed work for me (it is auto-toggled when cpphs is unavailable). -- Default to False, since it seems more likely there's a native cpp, than -- that a cpphs installation works smoothly.+-- Later: Defaulting to True, since found some tricks...+-- (Not even going to let this be manual:false anymore.) Flag USE_CPPHS Description: Non-manual flag to allow the build system to try cpphs first, and if that fails, then to try system-wide cpp (typically GNU). I've actually toggled the default, so the build system will try for a system-wide cpp first, and failing that, will try to use cpphs, installing it if necessary. I prefer cpp. I am not getting my most invaluable -Wundef option with cpphs using -optP-Wundef -optP--cpp in my ghc-options. Does cpphs implement it? Not sure...- Default: False---Default: True- Manual: False+--Default: False+ Default: True+--Manual: False+ Manual: True ------------------------------------------------------------------------------- library { +-- I feel like declaring this is only asking for more trouble;+-- cpphs installs because it's mentioned as a dependency, and+-- that does install both the library and the executable.+---------+-- build-tools: cpphs +-- -- (This seems /not/ to work, since, when USE_CPPHS is default:false,+-- -- cpphs is still mentioned in the hackage deps.)+-- --if flag(USE_CPPHS)+-- -- build-tools: cpphs+ exposed-modules: Seqaid.Plugin Seqaid.Config@@ -282,37 +296,22 @@ -- , deepseq == 1.3.0.2 ghc-options: -optP-Wundef -fno-warn-overlapping-patterns- ghc-options: -funbox-strict-fields -fwarn-tabs---ghc-options: -Wall -O2 -funbox-strict-fields -fwarn-tabs+ ghc-options: -funbox-strict-fields -fwarn-tabs+--ghc-options: -Wall --- XXX Later yet: Nevertheless, cpphs is the best way to go,--- since at least we always know we can install it! Does it--- work to add it to the build-depends? Finding out...--- (Only needs to work for Cabal-with-GHC-7.8 anyhow, as--- seqaid is broken for GHC < 7.8 for some time to come anyway.)--- XXX LATER: Dependence on cpphs has resulted in broken builds--- (see hackage build reports for leaky, at least). So going to--- factor out the string gaps...- -- The following extra options are to handle multiline String literals- -- in the presence of CPP- -- http://stackoverflow.com/questions/2549167/cpp-extension-and-multiline-literals-in-haskell- -- I prefer string gaps to unlines [ l1, l2, ... ] b/c then lines- -- can start at the left margin!+ -- -ags+ 20150202+--cpp-options: PATH=$PATH:.cabal-sandbox/bin:$HOME/.cabal/bin:/home/builder/hackage-server/build-cache/tmp-install/bin cpphs+--cpp-options: PATH=$PATH:~/.cabal/bin:.cabal-sandbox/bin:/home/builder/hackage-server/build-cache/tmp-install/bin cpphs+--cpp-options: PATH=$PATH:~/.cabal/bin:.cabal-sandbox/bin:/home/builder/hackage-server/build-cache/tmp-install/bin cpphs --cpp+ if flag(USE_CPPHS)- -- Which is most portable, a space after the P or not???- -- See the comment on the other branch of this Cabal "condition".- ghc-options: -pgmPcpphs -optP--cpp+ ghc-options: -pgmP./cpphs.sh+ -- -ags+ 20150202+-- ghc-options: -pgmPenv -optP--cpp+-- ghc-options: -pgmPenv --else--- -- This is no longer needed, but SINCE WHEN?? i.e. for--- -- which versions of GHC (and perhaps cabal-install)?...--- -- Without a reasonable means to answer this question--- -- (short of tracking down and scouring changelogs--- -- in reverse chronological order), the conscientious--- -- programmer has no recourse but to try to cover--- -- all the bases.--- -- But since recent cabal-install screams loudly about it,--- -- better comment it out. -- ghc-options: -cpp+--ghc-options: -pgmP/usr/bin/cpp if flag(SAI_FORK) cpp-options: -DSAI_FORK=1@@ -383,6 +382,16 @@ executable seqaid { +-- I feel like declaring this is only asking for more trouble;+-- cpphs installs because it's mentioned as a dependency, and+-- that does install both the library and the executable.+---------+-- build-tools: cpphs +-- -- (This seems /not/ to work, since, when USE_CPPHS is default:false,+-- -- cpphs is still mentioned in the hackage deps.)+-- --if flag(USE_CPPHS)+-- -- build-tools: cpphs+ -- It seems you cannot put the seqaid Main module in Seqaid.Main namespace? hs-source-dirs: . main-is: Seqaid/Demo.hs@@ -408,11 +417,20 @@ --ghc-options: -Wall -O2 -funbox-strict-fields -fwarn-tabs -threaded ghc-options: -optP-Wundef -fno-warn-overlapping-patterns- -- [See comments in the library part above.]++ -- -ags+ 20150202+--cpp-options: PATH=$PATH:.cabal-sandbox/bin:$HOME/.cabal/bin:/home/builder/hackage-server/build-cache/tmp-install/bin cpphs+--cpp-options: PATH=$PATH:~/.cabal/bin:.cabal-sandbox/bin:/home/builder/hackage-server/build-cache/tmp-install/bin cpphs+--cpp-options: PATH=$PATH:~/.cabal/bin:.cabal-sandbox/bin:/home/builder/hackage-server/build-cache/tmp-install/bin cpphs --cpp+ if flag(USE_CPPHS)- ghc-options: -pgmPcpphs -optP--cpp+ ghc-options: -pgmP./cpphs.sh+ -- -ags+ 20150202+-- ghc-options: -pgmPenv -optP--cpp+-- ghc-options: -pgmPenv --else -- ghc-options: -cpp+--ghc-options: -pgmP/usr/bin/cpp -- Test #ifdef mingw32_HOST_OS instead! (it's built-in to GHC) ------@@ -435,6 +453,16 @@ executable seqaidpp { +-- I feel like declaring this is only asking for more trouble;+-- cpphs installs because it's mentioned as a dependency, and+-- that does install both the library and the executable.+---------+-- build-tools: cpphs +-- -- (This seems /not/ to work, since, when USE_CPPHS is default:false,+-- -- cpphs is still mentioned in the hackage deps.)+-- --if flag(USE_CPPHS)+-- -- build-tools: cpphs+ hs-source-dirs: . main-is: Seqaid/Prepro.hs build-depends:@@ -459,11 +487,20 @@ cpphs >= 1.14 ghc-options: -optP-Wundef -fno-warn-overlapping-patterns- -- [See comments in the library part above.]++ -- -ags+ 20150202+--cpp-options: PATH=$PATH:.cabal-sandbox/bin:$HOME/.cabal/bin:/home/builder/hackage-server/build-cache/tmp-install/bin cpphs+--cpp-options: PATH=$PATH:~/.cabal/bin:.cabal-sandbox/bin:/home/builder/hackage-server/build-cache/tmp-install/bin cpphs+--cpp-options: PATH=$PATH:~/.cabal/bin:.cabal-sandbox/bin:/home/builder/hackage-server/build-cache/tmp-install/bin cpphs --cpp+ if flag(USE_CPPHS)- ghc-options: -pgmPcpphs -optP--cpp+ ghc-options: -pgmP./cpphs.sh+ -- -ags+ 20150202+-- ghc-options: -pgmPenv -optP--cpp+-- ghc-options: -pgmPenv --else -- ghc-options: -cpp+--ghc-options: -pgmP/usr/bin/cpp if flag(USE_CPPHS) cpp-options: -DUSE_CPPHS=1