seqaid 0.2.0.0 → 0.2.1.0
raw patch · 5 files changed
+70/−36 lines, 5 files
Files
- HTML/extra2.html +2/−0
- Seqaid/Core.hs +2/−2
- changelog.txt +4/−0
- hackage-tags.txt +14/−0
- seqaid.cabal +48/−34
HTML/extra2.html view
@@ -84,6 +84,8 @@ </pre> And certainly, you don't produce ()'s! <p>+(Later: Even the above is wrong; discussed in <a href="http://www.fremissant.net/deepseq-bounded/deepseq-bounded.html#afterthoughts">afterthoughts</a> in the <tt>deepseq-bounded</tt> homepage.)+<p> After fixing that: <pre> P . 227756 1769792 TA
Seqaid/Core.hs view
@@ -1631,8 +1631,8 @@ -- of elem. nubsort :: Ord a => [a] -> [a]- nubsort lst = ( map head . group . sort ) lst -- O(nlogn)---nubsort lst = nub $ sort lst -- O(n^2)!+ nubsort = map head . group . sort -- O(nlogn)+--nubsort = nub . sort -- O(n^2)! -------------------------------------------------------------------------------
changelog.txt view
@@ -1,4 +1,8 @@ +0.2.0.0 -> 0.2.1.0+ - realised I should be using Manual: True in all my .cabal flags,+ or else the constraint solver is free to toggle them!!+ 0.1.7.0 -> 0.2.0.0 - deepseq-bounded had a major version bump - fixed cpphs missing dependency (Seqaid lib, and seqaid and seqaidpp exe's)
+ hackage-tags.txt view
@@ -0,0 +1,14 @@+parallel+leak+space+strictness+forcing+diagnostic+remedial+auto-instrumentation+instrumentation+tools+bsd3+ghc-plugin+program+library
seqaid.cabal view
@@ -2,7 +2,7 @@ ------------------------------------------------------------------------------- name: seqaid-version: 0.2.0.0+version: 0.2.1.0 synopsis: Dynamic strictness control, including space leak repair license: BSD3 license-file: LICENSE@@ -14,7 +14,7 @@ category: Compiler Plugin build-type: Simple stability: provisional, nascent-cabal-version: >= 1.10+cabal-version: >= 1.16 -- NOTE: Version of GHC /must/ be >= 7.8, due to need to use TH >= 2.9. -- Could possibly relax to TH >= 2.8 (which would include GHC 7.6.*),@@ -33,6 +33,7 @@ extra-source-files: README , changelog.txt+ , hackage-tags.txt , HTML/*.html , HTML/*.css , release-announcement.txt@@ -52,73 +53,86 @@ Flag HELLO_HACKAGE_VISITOR Description: [Note to those reading on Hackage:] Please ignore these flags, which would be better presented in a collapsed state. The flags are mostly for development purposes.- Default: False+ Default: False+ Manual: True Flag GHC_710 Description: (Still broken for GHC 7.10.) Until I learn how to test GHC version in the .cabal file, we need a flag, since some build-depends must be excluded completely. (CPP testing __GLASGOW_HASKELL__ is then used the rest of the way, in the source files.)---Default: True- Default: False+--Default: True+ Default: False+ Manual: True Flag TRY_INJECT_NOINLINE_ON_REQUESTED_BINDS- Description: If we can prevent inling of injected binds (without requiring user edits), that would probably be a good trade-off in terms of lost optimiser oppportunities in exchange for assurance that the bind won't be inlined. This didn't work, and is a poor solution anyway.---Default: True- Default: False+ Description: If we can prevent inlining of injected binds (without requiring user edits), that would probably be a good trade-off in terms of lost optimiser opportunities in exchange for assurance that the bind won't be inlined. This didn't work, and is a poor solution anyway.+--Default: True+ Default: False+ Manual: True Flag SEQABLE_ONLY Description: Like NFDATAN_ONLY, but for newer Seqable module.---Default: True- Default: False+--Default: True+ Default: False+ Manual: True Flag TH_TYPE_IN_TYPES_ANN Description: Actually this is just preparatory, haven't gone down this road far yet. (We would like a TH.Type to Type.Type conversion function in the GHC API. Then we'd just send the list of Type.Type for direct use by the Core-plugin downstream).---Default: True- Default: False+--Default: True+ Default: False+ Manual: True Flag SEQAIDPP_TYPES Description: Rather than choose types to seqinj for based on the types of the top-level binds, use seqaidpp to parse the types from seqaid.config. This stays on perpetually, finally, and could be removed soon.- Default: True---Default: False+ Default: True+--Default: False+ Manual: True -- Flag ONLY_TOP_LEVEL_INJECTIONS -- Description: Like it says; as opposed to descending to (potentially) wrap subexpressions ... the latter which has just become possible due to seqaidpp.--- --Default: True--- Default: False+-- --Default: True+-- Default: False+-- Manual: True Flag INFER_TOP_LEVEL_TYPES Description: If True, then TH will be used as it has been, to blanket-inject all top-level functions (at least, those not explicitly or implicitly excluded). Now, if False, only RHS's with result types in the "types" list for the module (in seqaid.config) will be wrapped (again, at least those not explicitly or implicitly excluded).---Default: True- Default: False+--Default: True+ Default: False+ Manual: True Flag DEMO_MODE- Description: This is the only working mode in the first release. (And it only works when tested on the "leaky" package.) The switch exists to exclude hashable/hashtables deps (and subdeps) from the first release, while I can continue to work on this aspect in the development head.- Default: True---Default: False+ Description: This is the only working mode so far. (And it only works when tested on the "leaky" package.) The switch exists to exclude hashable/hashtables deps (and subdeps) from the first release, while I can continue to work on this aspect in the development head.+ Default: True+--Default: False+ Manual: True Flag DBG_SEQAID- Description: When set, every call to seqaidDispatch emits a line of info.- Default: True---Default: False+ Description: When set, seqaidDispatch emits status lines periodically.+ Default: True+--Default: False+ Manual: True Flag NO_TOP_LEVEL_SEQINJ_DUMMIES- Description: If have to inject a class and instance anyway to evade DCE, no need for the old top-level seqinj_ declarations (we hope...).---Default: True- Default: False+ Description: If have to inject a class and instance anyway to evade DCE, no need for the old top-level seqinj_ declarations (we hope...). (But it turned out they were all still needed.)+--Default: True+ Default: False+ Manual: True Flag NFDATAN_ONLY Description: To simplify debugging.---Default: True- Default: False---------------------------------------------------------------------------------+--Default: True+ Default: False+ Manual: True -- This only applies to NFDATAN_ONLY, since NFDataP has Typeable as -- a superclass already. (The point is, you can set this False, and -- get rid of as much class/instance cruft as possible in the Core,--- for help debugging.)+-- to help debugging.) Flag SHOW_TYPE Description: Include Typeable instance for (show . typeOf) in seqaidDispatch- Default: True---Default: False+ Default: True+--Default: False+ Manual: True++------------------------------------------------------------------------------- library {