Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

V1.2 proposal #61

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
242 commits
Select commit Hold shift + click to select a range
1bc9fb1
Allow RNGs to provide efficient implementations for variety of prim t…
lehins Feb 12, 2020
a0b17bd
Add some examples and an instance for mwc-random
lehins Feb 22, 2020
6790ade
Couple extra constraints
lehins Feb 22, 2020
bb10f39
A few inline pragmas. Check performance
lehins Feb 22, 2020
d3f61e8
Rename `GenState` to `PureGen`
lehins Feb 23, 2020
4bb37cf
Remove support for non-ghc compilers
lehins Feb 23, 2020
7804b7e
Removed `mkGen`, `saveGen` and `GenSeed`
lehins Feb 23, 2020
04f271c
Add functionality for generating a ByteArray
lehins Feb 23, 2020
cbcca00
Random for word ranges
lehins Feb 23, 2020
1a51071
Attempt to use Word64 only
lehins Feb 23, 2020
046f1e5
A working solution for genrating a ByteArray, so it is efficient and …
lehins Feb 24, 2020
44b33ea
Helper functions for generating ByteString
lehins Feb 25, 2020
200143c
Merge pull request #10 from idontgetoutmuch/bytearray
lehins Feb 25, 2020
0b45a29
Cleanup cabal file a bit. Bump up the version to 1.2
lehins Feb 25, 2020
83262cc
General cleanup, remove dead code. Remove usagae of tabs and trailing…
lehins Feb 25, 2020
b01074f
Implement Uniform and UniformRange
lehins Feb 29, 2020
656ef17
Merge pull request #14 from idontgetoutmuch/interface-to-performance-…
lehins Mar 1, 2020
028de7a
StdGen = SMGen (#22)
lehins Mar 5, 2020
cd94322
Export Uniform and UniformRange
curiousleo Mar 6, 2020
542c55d
Merge pull request #25 from idontgetoutmuch/export-uniform
lehins Mar 6, 2020
9564db4
Implement PrimGen
lehins Mar 1, 2020
b918908
Add ability to split PrimGen
lehins Mar 1, 2020
4024650
Merge pull request #16 from idontgetoutmuch/primgen
curiousleo Mar 13, 2020
5849512
Implement MutGen. Remove default implmenetation for `randomM` to avoi…
lehins Mar 2, 2020
2395472
Remove unnecessary imports
curiousleo Mar 13, 2020
e8588fb
Merge pull request #33 from idontgetoutmuch/mutgen-leo-rebased
lehins Mar 13, 2020
834aa54
doctests to explain the new features in random and forward direction
idontgetoutmuch Mar 11, 2020
a680200
Deprecate next
curiousleo Mar 6, 2020
18239f9
Fix overflow
curiousleo Mar 9, 2020
c0a0204
Revert "Fix overflow"
curiousleo Mar 9, 2020
f4087fa
Formatting
curiousleo Mar 9, 2020
6f67dd0
Fix comments in https://github.com/idontgetoutmuch/random/pull/27
idontgetoutmuch Mar 12, 2020
8478726
Merge pull request #34 from idontgetoutmuch/doctest-experiment-rebased
curiousleo Mar 13, 2020
f809609
Add property tests
curiousleo Mar 12, 2020
f7e89cf
runStateGen_ -> runGenState_
curiousleo Mar 13, 2020
84509b1
Merge pull request #35 from idontgetoutmuch/testing-rebased
curiousleo Mar 14, 2020
4a31631
Add haddocks for Uniform and UniformRange type classes
Shimuuar Mar 3, 2020
23f58a8
Explain the existence of e.g. runPrimIO
idontgetoutmuch Mar 14, 2020
1ba8fd7
Add haddocks for Uniform and UniformRange type classes
Shimuuar Mar 3, 2020
dfd4e2d
Rewrite explanation for Uniform/UniformRange split
Shimuuar Mar 14, 2020
15c11e3
To test CI works
idontgetoutmuch Mar 16, 2020
fdb46b9
Revert "To test CI works"
idontgetoutmuch Mar 16, 2020
385b1f5
To test CI
idontgetoutmuch Mar 16, 2020
616cc47
Do we build under 8.6?
idontgetoutmuch Mar 16, 2020
f10d6b3
Fix typo
idontgetoutmuch Mar 16, 2020
a162206
Test with lts-14 and lts-15 on Travis
curiousleo Mar 16, 2020
593948f
Merge pull request #40 from idontgetoutmuch/travis
curiousleo Mar 16, 2020
6eb11cb
Refactor MonadRandom.Seed:
lehins Mar 14, 2020
0b4d331
Pin splitmix 0.0.4
curiousleo Mar 16, 2020
8dd2c06
Enable CI on lts-{7,9,11,12}
curiousleo Mar 16, 2020
18949c2
Pin cabal-doctest
curiousleo Mar 16, 2020
2db676a
Disable support for ghc < 8.2 and set bounds for primitive to 0.6.4.0
lehins Mar 16, 2020
dbf1d0f
Merge pull request #42 from idontgetoutmuch/primitive-compat
idontgetoutmuch Mar 17, 2020
f72aa20
Merge pull request #39 from idontgetoutmuch/frozen
lehins Mar 19, 2020
ebc1b9e
Merge branch 'idontgetoutmuch/interface-to-performance' into shimuuar…
idontgetoutmuch Mar 20, 2020
0f1b1a2
Merge branch 'shimuuar-haddocks-atop-interface-to-performance' into r…
idontgetoutmuch Mar 20, 2020
dc54617
Merge remote-tracking branch 'shimuuar/uniform-haddocks' into resolve…
idontgetoutmuch Mar 20, 2020
dbce450
Add imports
idontgetoutmuch Mar 20, 2020
723cc80
Merge pull request #45 from idontgetoutmuch/resolve-merge-conflict
idontgetoutmuch Mar 20, 2020
71d3e87
Add MINIMAL annotation to RandomGen
curiousleo Mar 24, 2020
5825624
Hide PureGenI constructor
lehins Mar 24, 2020
e7c598e
Merge pull request #48 from idontgetoutmuch/hide-pure-gen
idontgetoutmuch Mar 24, 2020
6fab0d0
Addition of coveralls to travis. Extra CI related changes:
lehins Mar 24, 2020
38d38ab
Update badges in README to point to interface-to-performance branch […
lehins Mar 24, 2020
9b9083e
UniformRange for Float and Double
idontgetoutmuch Mar 23, 2020
39140e6
Test conditional compilation
idontgetoutmuch Mar 25, 2020
f81725c
Support earlier versions of ghc for Double
idontgetoutmuch Mar 25, 2020
973d3d2
Fix(!) conditional compilation and address comments
idontgetoutmuch Mar 26, 2020
0134d0f
Factor version-specific code into own functions
curiousleo Mar 26, 2020
513a179
Merge pull request #52 from idontgetoutmuch/improve-coverage-refactor
idontgetoutmuch Mar 26, 2020
afccab0
Use uniform instead of randomM in example
curiousleo Mar 27, 2020
45d2341
Hand roll the technique used in GHC.Float for older GHC
idontgetoutmuch Mar 27, 2020
937d958
Merge pull request #53 from idontgetoutmuch/uniform-instead-of-randomM
idontgetoutmuch Mar 27, 2020
1d5b004
Fix doctests
curiousleo Mar 27, 2020
7e33718
Consistent floating point for all versions of ghc
idontgetoutmuch Mar 27, 2020
5150cc7
Merge branch 'interface-to-performance' into bar
idontgetoutmuch Mar 27, 2020
3cfc4e2
Merge pull request #47 from idontgetoutmuch/randomgen-annotate
idontgetoutmuch Mar 27, 2020
b6b480e
Minor housekeeping
idontgetoutmuch Mar 27, 2020
0988e02
Compare result of pure and prim runs
curiousleo Mar 27, 2020
151fcb6
Respond to feedback
idontgetoutmuch Mar 27, 2020
f8f41be
Remove unneeded code and link to source
idontgetoutmuch Mar 27, 2020
6d914b9
A better link
idontgetoutmuch Mar 27, 2020
88186fc
Merge pull request #49 from idontgetoutmuch/improve-coverage
idontgetoutmuch Mar 28, 2020
21b01d7
Merge branch 'interface-to-performance' into runs-equal
idontgetoutmuch Mar 28, 2020
9519fff
Merge pull request #54 from idontgetoutmuch/runs-equal
idontgetoutmuch Mar 28, 2020
64048d2
Add .ghci file in order to make it possible to use random with ghci
lehins Mar 29, 2020
4b43ede
Export Frozen state constructors
lehins Mar 29, 2020
ea945b0
Swap PrimGen and MutGen naming
lehins Mar 29, 2020
f40c51a
Merge pull request #57 from idontgetoutmuch/swap-prim-and-mut
lehins Mar 30, 2020
3676a17
Simplify default implementation of both RangomGen and MonadRandom. Im…
lehins Mar 29, 2020
dc6257b
Adopt previous Integer range generator for UniformRange instance. Imp…
lehins Mar 30, 2020
c5c96c6
Instances and tests for CFloat and CDouble
lehins Mar 30, 2020
30ede52
Fix doctests and stop an example writing a file in current dir
lehins Mar 30, 2020
b342e25
Also test Char and Bool
curiousleo Mar 30, 2020
64c0667
Make bitmaskWithRejectionM inclusive
curiousleo Mar 30, 2020
621c93e
Mark all bitmask functions with signed/unsigned
curiousleo Mar 31, 2020
c24c443
Explain why range is computed correctly
curiousleo Mar 31, 2020
e1af331
Merge pull request #63 from idontgetoutmuch/signed-unsigned-bitmask
lehins Mar 31, 2020
4bb71f0
Merge pull request #64 from idontgetoutmuch/explain-modulo
lehins Mar 31, 2020
bbcee73
Add instance for CBool and ensure correct instances for foreign types…
lehins Apr 3, 2020
52784a5
Remove dead code
lehins Apr 3, 2020
8669a69
Uncomment now-working tests
curiousleo Apr 3, 2020
a81d241
Test more interesting Integer range
curiousleo Apr 3, 2020
ce73692
Resurrect legacy benchmarks
curiousleo Apr 3, 2020
d34570b
Fix Coveralls CI build
curiousleo Apr 3, 2020
b7be4da
Merge pull request #68 from idontgetoutmuch/uncomment-tests
lehins Apr 3, 2020
9574756
Merge pull request #69 from idontgetoutmuch/legacy-benchmark
curiousleo Apr 3, 2020
7173a80
Merge pull request #58 from idontgetoutmuch/instances-and-warnings
lehins Apr 4, 2020
f2d52ef
More efficient ranges for Word32
idontgetoutmuch Apr 2, 2020
6d3c5c7
Fix coverage and tests
idontgetoutmuch Apr 2, 2020
b52ae9c
Fix off by 1
idontgetoutmuch Apr 3, 2020
9610530
References and stylistic changes
idontgetoutmuch Apr 5, 2020
126d534
Mirror code more exactly to the references
idontgetoutmuch Apr 6, 2020
3003c60
Port module-level documentation to Haddock
curiousleo Mar 30, 2020
eeda9fb
Talk about split
curiousleo Apr 3, 2020
99f47a2
Clarify our stance towards non-power-of-2 PRNGs
curiousleo Apr 6, 2020
b820dba
Merge pull request #65 from idontgetoutmuch/faster-range-for-Word32
idontgetoutmuch Apr 6, 2020
9c6dc92
Improve performance of `Char` generation
lehins Apr 6, 2020
98b1b3d
Faster 'uniform' and 'uniformR' for Bool
curiousleo Apr 6, 2020
b361bf6
Merge pull request #75 from idontgetoutmuch/char-performace
curiousleo Apr 7, 2020
4bcb723
Merge pull request #73 from idontgetoutmuch/fast-bool
curiousleo Apr 7, 2020
49947c3
Unbiased uniformR for Integers
curiousleo Apr 2, 2020
274d516
Random Integer instance: use Int functions
curiousleo Apr 6, 2020
8a1ceb2
Start of changelog entry
idontgetoutmuch Apr 7, 2020
6cd137f
Revert "Start of changelog entry"
idontgetoutmuch Apr 7, 2020
3c8f709
Merge pull request #66 from idontgetoutmuch/uniform-integer
idontgetoutmuch Apr 8, 2020
f2430ce
Merge pull request #61 from idontgetoutmuch/module-level-docs
idontgetoutmuch Apr 8, 2020
b83bebd
Addition of state token to MonadRandom (rebased)
lehins Apr 8, 2020
4777281
Merge branch 'interface-to-performance' of github.com:idontgetoutmuch…
idontgetoutmuch Apr 8, 2020
f53dee2
Addition of IOGen, STGen and AtomicGen
lehins Apr 8, 2020
5256135
General monadic apply to Pure gens
lehins Apr 8, 2020
10233ea
Remove dead code and add few STGen related functions
lehins Apr 8, 2020
920ab63
Past participle
idontgetoutmuch Apr 8, 2020
8b81cca
Spell fix
lehins Apr 8, 2020
9421736
Fix haddock
lehins Apr 8, 2020
0d6ec6c
Fix doctest an ShortByteString Generation in ST
lehins Apr 8, 2020
dd94497
Drop kind annotations
lehins Apr 8, 2020
7a144b0
Drop kind annotations
lehins Apr 8, 2020
a45f298
Merge pull request #79 from idontgetoutmuch/monad-random-state-token
lehins Apr 9, 2020
4e31854
Merge pull request #80 from idontgetoutmuch/no-primitive
lehins Apr 9, 2020
b5899f7
Merge pull request #82 from idontgetoutmuch/monad-random-state-token
curiousleo Apr 9, 2020
3a8e77f
Edit Haddocks
curiousleo Apr 9, 2020
dc300ce
effectful -> monadic
curiousleo Apr 9, 2020
073b192
Remove double spaces
curiousleo Apr 9, 2020
5f9e7d2
Export Frozen(..) after all
curiousleo Apr 10, 2020
8215fd9
Merge pull request #81 from idontgetoutmuch/haddocks
curiousleo Apr 10, 2020
0c28373
Merge branch 'interface-to-performance' of github.com:idontgetoutmuch…
idontgetoutmuch Apr 10, 2020
1b73ee2
Fix functional dependency conflict
Shimuuar Apr 10, 2020
12db946
1.1 vs 1.2 performance and better formatting
idontgetoutmuch Apr 8, 2020
6bbf26b
Respond to feedback
idontgetoutmuch Apr 14, 2020
a5c70bd
Merge pull request #84 from Shimuuar/fundep-conflict-fix
curiousleo Apr 14, 2020
3f3a001
Merge pull request #85 from idontgetoutmuch/release-notes-md-only
idontgetoutmuch Apr 14, 2020
5a7caf2
Define bounds for library dependencies
curiousleo Apr 14, 2020
a9a9f55
Set spec default-language
curiousleo Apr 14, 2020
2c3e0e5
Bound all dependencies
curiousleo Apr 14, 2020
d47bb85
Merge pull request #88 from idontgetoutmuch/bounds
idontgetoutmuch Apr 14, 2020
451ca39
Handle compilation warnings in the legacy test suite
lehins Apr 14, 2020
5ef660b
Rename `genShortByteStringWith` to `genShortByteStringIO` for consist…
lehins Apr 14, 2020
d22f64b
Merge pull request #89 from idontgetoutmuch/compilation-warnings
idontgetoutmuch Apr 15, 2020
bc18b4a
Merge pull request #91 from idontgetoutmuch/rename-gen-shortbytestring
idontgetoutmuch Apr 15, 2020
96acf32
Remove references to PrimGen, MutGen
curiousleo Apr 10, 2020
533ded7
Make StdGen opaque
curiousleo Apr 10, 2020
9cb752d
No need to use the splitmix fork anymore
curiousleo Apr 10, 2020
59bce2b
Overhaul Haddocks for UniformRange and Uniform
curiousleo Apr 10, 2020
636df07
Provide Uniform instances for tuples up to n=6
curiousleo Apr 10, 2020
f57f1bb
random -> pseudo-random
curiousleo Apr 10, 2020
8ea4b90
Use default implementation randomM = uniform
curiousleo Apr 10, 2020
97c26af
Undo randomM default implementation
curiousleo Apr 14, 2020
ffc4865
IOGen and STGen are safe in presence of exceptions
curiousleo Apr 14, 2020
8bf21d0
Use applicative syntax for Uniform tuple instances
curiousleo Apr 14, 2020
baa5673
Remove "When to use which?" section
curiousleo Apr 15, 2020
50ba9f1
Revert "Make StdGen opaque"
curiousleo Apr 15, 2020
899dbfc
Re-introduce radian angles example
curiousleo Apr 15, 2020
71c8e6f
Structure Haddocks
curiousleo Apr 15, 2020
d7c314c
Fix doctest
curiousleo Apr 15, 2020
2a9829d
Merge pull request #83 from idontgetoutmuch/haddocks-2
lehins Apr 15, 2020
986cd5e
Add RandomGen instance for 32bit version of splitmix
lehins Apr 14, 2020
9fa79ed
Merge pull request #94 from idontgetoutmuch/haddocks-3
curiousleo Apr 16, 2020
b70d50d
Addition of pure version for Uniform and UniformRange:
lehins Apr 14, 2020
ec38175
Merge pull request #92 from idontgetoutmuch/splitmix32-instance
curiousleo Apr 16, 2020
9c0cb62
Merge pull request #95 from idontgetoutmuch/rename-uniform-rebased
curiousleo Apr 16, 2020
2a6b405
Major restructure of the module:
lehins Apr 17, 2020
1b18982
Remove duplication of rolls and fixup haddock
lehins Apr 17, 2020
0d4c8cd
Merge pull request #101 from idontgetoutmuch/restructure
idontgetoutmuch Apr 21, 2020
19c08fd
Move tests
curiousleo Apr 22, 2020
9468d72
Consistent *Gen Haddocks
curiousleo Apr 22, 2020
3581a12
Clarify docs for Random, Uniform, UniformRange
curiousleo Apr 22, 2020
9cb76bc
Add basic pure benchmarks
curiousleo Apr 22, 2020
09f6f15
Optimise Uniform Char instance
curiousleo Apr 22, 2020
8ae8dc8
Add toplevel docs
curiousleo Apr 21, 2020
915f361
Change #iterations to 1000000
curiousleo Apr 23, 2020
37d0d4a
Merge pull request #110 from idontgetoutmuch/steal-benchmarks
curiousleo Apr 23, 2020
22eb0c7
Reduce number of iterations to 100000
curiousleo Apr 23, 2020
e1f224b
Add uniformR benchmarks
curiousleo Apr 23, 2020
990d3fc
Optimise uniformR for Word8, Word16, Word32, Char
curiousleo Apr 23, 2020
45d61bc
Fix doctests
curiousleo Apr 23, 2020
cfae7f5
Merge pull request #109 from idontgetoutmuch/toplevel-docs
curiousleo Apr 23, 2020
df6e46f
Merge pull request #107 from idontgetoutmuch/clarify-gen-rebased
curiousleo Apr 23, 2020
625fadd
Add uniformR benchmark for Float, Double, Integer
curiousleo Apr 23, 2020
d03e325
Merge pull request #112 from idontgetoutmuch/range-benchmarks
idontgetoutmuch Apr 23, 2020
b68c22d
Merge pull request #106 from idontgetoutmuch/move-legacy-tests
curiousleo Apr 23, 2020
0d51fa4
Merge pull request #108 from idontgetoutmuch/random-clarify-rebase
curiousleo Apr 23, 2020
bb2d26a
Fix order of arguments in uniformR
lehins Apr 21, 2020
99990d1
Add script to compare benchmarks (#114)
curiousleo Apr 29, 2020
f913dcd
Check issue remains fixed
idontgetoutmuch Apr 29, 2020
b72f1a5
Update test/Spec.hs
idontgetoutmuch Apr 29, 2020
8ca0d1e
Respond to comments
idontgetoutmuch Apr 29, 2020
22a374e
Merge pull request #117 from idontgetoutmuch/unit-tests
idontgetoutmuch Apr 29, 2020
7f91c2f
Fix all regressions relative to v1.1 (#116)
curiousleo Apr 29, 2020
adc3965
Move `randomIO` and `randomRIO` outside of `Random` class. Switch to …
lehins May 4, 2020
f05c2a7
Generate Float and Double via division (#118)
curiousleo May 5, 2020
41863a2
Merge pull request #119 from idontgetoutmuch/monad-io-global-stdgen
idontgetoutmuch May 5, 2020
0058d77
Minor cleanups:
lehins May 5, 2020
f1cbbb7
Lagacy benchmarks code formatting and cleanup. Get rid of compilation…
lehins May 5, 2020
424ccdf
Remove unnecessary CPP uses
curiousleo May 6, 2020
85e6b5c
Fix "default-language" warning, run cabal format
curiousleo May 6, 2020
a091bfc
Merge pull request #120 from idontgetoutmuch/cleanup
lehins May 6, 2020
609ebc3
Add stack artifacts to .gitignore
curiousleo May 7, 2020
2013e25
Document uniform and uniformR
curiousleo May 7, 2020
4ad8a86
More self-contained docs for uniform and uniformR
curiousleo May 7, 2020
07016de
Fix section include
curiousleo May 7, 2020
5e78a97
Merge pull request #121 from idontgetoutmuch/uniform-uniformr-docs
lehins May 7, 2020
cd5421f
Refactor naming of mutable generators and switch to `TypeFamilyDepend…
lehins May 7, 2020
f2319cc
Merge pull request #122 from idontgetoutmuch/refactor-mutable-gens
idontgetoutmuch May 8, 2020
9ee79a7
StdGen: constructor accessible via Internal only (#123)
curiousleo May 8, 2020
eab4f5a
Ready for review
idontgetoutmuch May 7, 2020
d27ed91
Incorporate feedback
idontgetoutmuch May 10, 2020
6969cbb
Replace dialect and order traditionally
idontgetoutmuch May 11, 2020
31f9df2
Merge pull request #124 from idontgetoutmuch/release-notes-new
idontgetoutmuch May 11, 2020
1b07f29
Add 'instance UniformRange Natural' (#126)
curiousleo May 11, 2020
f534193
Slight improvement in performance. (#125)
idontgetoutmuch May 13, 2020
f2ef6f5
Remove unused toplevel files (#127)
curiousleo May 13, 2020
2a78023
Point badges to v1.2-proposal (#128)
curiousleo May 13, 2020
fd0dfc5
Warnings and lints (#130)
curiousleo May 14, 2020
b2614b1
Reduce diff to haskell/master (#131)
curiousleo May 15, 2020
fe45dbf
Move sources to src/ (#132)
curiousleo May 15, 2020
d3a1376
List issues fixed (#129)
idontgetoutmuch May 16, 2020
cf916ca
Repo lives at https://github.com/haskell/random.git
curiousleo May 18, 2020
a78bc51
Remove benchmarking scripts, for now
curiousleo May 18, 2020
ed11339
CHANGELOG.md: fix nested list (#136)
curiousleo May 19, 2020
463b8a1
Document floating point number caveats (#138)
curiousleo May 20, 2020
73977e9
Changelog: Add "Breaking Changes" and "Deprecations" sections (#139)
curiousleo May 20, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions .darcs-boring

This file was deleted.

15 changes: 3 additions & 12 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,12 +1,3 @@
*~

Thumbs.db
.DS_Store

GNUmakefile
dist-install/
ghc.mk

dist
.cabal-sandbox
cabal.sandbox.config
*.lock
.stack-work/
cabal.project.local
173 changes: 168 additions & 5 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,168 @@
language: haskell
ghc:
- 7.4
- 7.6
- 7.8
###############################################################################
# To see the local changes made to this file, run:
#
# $ curl -sS https://raw.githubusercontent.com/commercialhaskell/stack/0cbcce0b1b89e5431121b745afdd1dfbd3ba8a43/doc/travis-complex.yml | diff -u - .travis.yml
###############################################################################

# This is the complex Travis configuration, which is intended for use
# on open source libraries which need compatibility across multiple GHC
# versions, must work with cabal-install, and should be
# cross-platform. For more information and other options, see:
#
# https://docs.haskellstack.org/en/stable/travis_ci/
#
# Copy these contents into the root directory of your Github project in a file
# named .travis.yml

# Run jobs on Linux unless "os" is specified explicitly.
os: linux

# Do not choose a language; we provide our own build tools.
language: generic

# Caching so the next build will be fast too.
cache:
directories:
- $HOME/.ghc
- $HOME/.cabal
- $HOME/.stack
- $TRAVIS_BUILD_DIR/.stack-work

# The different configurations we want to test. We have BUILD=cabal which uses
# cabal-install, and BUILD=stack which uses Stack. More documentation on each
# of those below.
#
# We set the compiler values here to tell Travis to use a different
# cache file per set of arguments.
#
# If you need to have different apt packages for each combination in the
# job matrix, you can use a line such as:
# addons: {apt: {packages: [libfcgi-dev,libgmp-dev]}}
jobs:
include:
# We grab the appropriate GHC and cabal-install versions from hvr's PPA. See:
# https://github.com/hvr/multi-ghc-travis
- env: BUILD=stack ARGS="--resolver lts-11.22 --stack-yaml stack-old.yaml"
compiler: ": #stack 8.2.2"
addons: {apt: {packages: [libgmp-dev]}}

- env: BUILD=stack ARGS="--resolver lts-12.26 --stack-yaml stack-old.yaml"
compiler: ": #stack 8.4.4"
addons: {apt: {packages: [libgmp-dev]}}

- env: BUILD=stack ARGS="--resolver lts-14.27" COVERALLS_STACK_YAML="stack-coveralls.yaml"
compiler: ": #stack 8.6.5"
addons: {apt: {packages: [libgmp-dev]}}

- env: BUILD=stack ARGS="--resolver lts-15"
compiler: ": #stack 8.8.3"
addons: {apt: {packages: [libgmp-dev]}}

- env: BUILD=stack ARGS="--resolver nightly"
compiler: ": #stack"
addons: {apt: {packages: [libgmp-dev]}}

allow_failures:
- env: BUILD=cabal GHCVER=head CABALVER=head HAPPYVER=1.19.5 ALEXVER=3.1.7
- env: BUILD=stack ARGS="--resolver nightly"

before_install:
# Using compiler above sets CC to an invalid value, so unset it
- unset CC

# We want to always allow newer versions of packages when building on GHC HEAD
- CABALARGS=""
- if [ "x$GHCVER" = "xhead" ]; then CABALARGS=--allow-newer; fi

# Download and unpack the stack executable
- export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$HOME/.local/bin:/opt/alex/$ALEXVER/bin:/opt/happy/$HAPPYVER/bin:$HOME/.cabal/bin:$PATH
- mkdir -p ~/.local/bin
- |
if [ `uname` = "Darwin" ]
then
travis_retry curl --insecure -L https://get.haskellstack.org/stable/osx-x86_64.tar.gz | tar xz --strip-components=1 --include '*/stack' -C ~/.local/bin
else
travis_retry curl -L https://get.haskellstack.org/stable/linux-x86_64.tar.gz | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack'
fi

# Use the more reliable S3 mirror of Hackage
mkdir -p $HOME/.cabal
echo 'remote-repo: hackage.haskell.org:http://hackage.fpcomplete.com/' > $HOME/.cabal/config
echo 'remote-repo-cache: $HOME/.cabal/packages' >> $HOME/.cabal/config


install:
- echo "$(ghc --version) [$(ghc --print-project-git-commit-id 2> /dev/null || echo '?')]"
- if [ -f configure.ac ]; then autoreconf -i; fi
- |
set -ex
case "$BUILD" in
stack)
# Add in extra-deps for older snapshots, as necessary
#
# This is disabled by default, as relying on the solver like this can
# make builds unreliable. Instead, if you have this situation, it's
# recommended that you maintain multiple stack-lts-X.yaml files.

#stack --no-terminal --install-ghc $ARGS test --bench --dry-run || ( \
# stack --no-terminal $ARGS build cabal-install && \
# stack --no-terminal $ARGS solver --update-config)

# Build the dependencies
# stack --no-terminal --install-ghc $ARGS test --bench --only-dependencies
;;
cabal)
cabal --version
travis_retry cabal update

# Get the list of packages from the stack.yaml file. Note that
# this will also implicitly run hpack as necessary to generate
# the .cabal files needed by cabal-install.
PACKAGES=$(stack --install-ghc query locals | grep '^ *path' | sed 's@^ *path:@@')

cabal install --only-dependencies --enable-tests --enable-benchmarks --force-reinstalls --ghc-options=-O0 --reorder-goals --max-backjumps=-1 $CABALARGS $PACKAGES
;;
esac
set +ex

script:
- |
set -ex
case "$BUILD" in
stack)
BUILD_ARGS="--bench --no-run-benchmarks --haddock --no-haddock-deps"
if [ -n "${COVERALLS_STACK_YAML}" ] && [ -n "${COVERALLS_REPO_TOKEN}" ]; then
stack $ARGS --stack-yaml="$COVERALLS_STACK_YAML" test --coverage $BUILD_ARGS
stack $ARGS --stack-yaml="$COVERALLS_STACK_YAML" hpc report --all
travis_retry curl -L https://github.com/lehins/stack-hpc-coveralls/releases/download/0.0.5.0/shc.tar.gz | tar xz shc
STACK_YAML="$COVERALLS_STACK_YAML" ./shc --repo-token=$COVERALLS_REPO_TOKEN combined custom
else
stack --no-terminal $ARGS test $BUILD_ARGS
fi
;;
cabal)
cabal install --enable-tests --enable-benchmarks --force-reinstalls --ghc-options=-O0 --reorder-goals --max-backjumps=-1 $CABALARGS $PACKAGES

ORIGDIR=$(pwd)
for dir in $PACKAGES
do
cd $dir
cabal check || [ "$CABALVER" == "1.16" ]
cabal sdist
PKGVER=$(cabal info . | awk '{print $2;exit}')
SRC_TGZ=$PKGVER.tar.gz
cd dist
tar zxfv "$SRC_TGZ"
cd "$PKGVER"
cabal configure --enable-tests --ghc-options -O0
cabal build
if [ "$CABALVER" = "1.16" ] || [ "$CABALVER" = "1.18" ]; then
cabal test
else
cabal test --show-details=streaming --log=/dev/stdout
fi
cd $ORIGDIR
done
;;
esac
set +ex
142 changes: 0 additions & 142 deletions Benchmark/BinSearch.hs

This file was deleted.

24 changes: 0 additions & 24 deletions Benchmark/Makefile

This file was deleted.

Loading