summaryrefslogtreecommitdiff
path: root/testsuite/tests/lib/integer
Commit message (Collapse)AuthorAgeFilesLines
* testsuite: Fix omit_ways usageBen Gamari2019-06-121-2/+2
| | | | omit_ways expects a list but this was broken in several cases.
* Update Trac ticket URLs to point to GitLabRyan Scott2019-03-151-1/+1
| | | | | This moves all URL references to Trac tickets to their corresponding GitLab counterparts.
* testsuite: Use makefile_testBen Gamari2019-01-301-6/+3
| | | | | This eliminates most uses of run_command in the testsuite in favor of the more structured makefile_test.
* Revert "Batch merge"Ben Gamari2019-01-301-3/+6
| | | | This reverts commit 76c8fd674435a652c75a96c85abbf26f1f221876.
* Batch mergeBen Gamari2019-01-301-6/+3
|
* Fix tests for `integer-simple`Alec Theriault2019-01-161-1/+1
| | | | | | | | | | | | A bunch of tests for `integer-simple` were now broken for a foolish reason: unlike the `integer-gmp` case, there is no CorePrep optimization for turning small integers directly into applications of `S#`. Rather than port this optimization to `integer-simple` (which would involve moving a bunch of `integer-simple` names into `PrelNames`), I switched as many tests as possible to use `Int`. The printing of `Integer` is already tested in `print037`.
* testsuite: Fix a number of GHCi-related failures due to integer-simpleBen Gamari2018-12-121-2/+2
| | | | Towards fixing #16043.
* Correct limb length and assertion for gcdExtIntegerDavidEichamnn2018-08-212-0/+33
| | | | | | | | | | | | Reviewers: hvr, bgamari, monoidal Reviewed By: monoidal Subscribers: monoidal, rwbarton, thomie, carter GHC Trac Issues: #15350 Differential Revision: https://phabricator.haskell.org/D5042
* Restore function powModSecIntegerOlivier Chéron2017-09-191-3/+1
| | | | | | | | | | | | | | | The function existed in integer-gmp-0.5.1.0 but was removed as part of integer-gmp2 rewrite in #9281. This is to bring it back. Test Plan: Case integerGmpInternals, with GMP 4.3.2 and GMP 6.1.2 Reviewers: austin, hvr, goldfire, bgamari Reviewed By: bgamari Subscribers: rwbarton, thomie Differential Revision: https://phabricator.haskell.org/D3947
* Make function intToSBigNat# preserve sign (fixes #14085)Olivier Chéron2017-08-172-2/+8
| | | | | | | | | | | | | | | | | | | Impacts only functions gcdExtInteger, powModInteger and recipModInteger which gave invalid results on negative S# inputs. Also fixes gcdExtInteger assertion when first argument is negative. Test Plan: Updated test case integerGmpInternals Reviewers: austin, hvr, goldfire, bgamari Reviewed By: bgamari Subscribers: rwbarton, thomie GHC Trac Issues: #14085 Differential Revision: https://phabricator.haskell.org/D3826
* integerConstantFolding: no longer broken with -DDEBUG (#1106)Joachim Breitner2017-03-091-2/+1
|
* Remove clean_cmd and extra_clean usage from .T filesThomas Miedema2017-01-221-9/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | The `clean_cmd` and `extra_clean` setup functions don't do anything. Remove them from .T files. Created using https://github.com/thomie/refactor-ghc-testsuite. This diff is a test for the .T-file parser/processor/pretty-printer in that repository. find . -name '*.T' -exec ~/refactor-ghc-testsuite/Main "{}" \; Tests containing inline comments or multiline strings are not modified. Preparation for #12223. Test Plan: Harbormaster Reviewers: austin, hvr, simonmar, mpickering, bgamari Reviewed By: mpickering Subscribers: mpickering Differential Revision: https://phabricator.haskell.org/D3000 GHC Trac Issues: #12223
* integer-gmp: Make minusInteger more efficientAlan Mock2016-06-043-1/+38
| | | | | | | | | | | | | | | | Give `minusInteger` its own implementation. Previously `minusInteger` used `plusInteger` and `negateInteger`, which meant it always allocated. Now it works more like `plusInteger`. Reviewers: goldfire, hvr, bgamari, austin Reviewed By: hvr, bgamari, austin Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2278 GHC Trac Issues: #12129
* integerConstantFolding: when(compiler_debugged(), expect_broken(#11006))Thomas Miedema2015-10-301-1/+2
|
* Improve TidyPgm.hasCafRefs to account for Integer literals (Trac #8525)Simon Peyton Jones2014-12-171-2/+1
| | | | | | | | | | | | | | See Note [Disgusting computation of CafRefs] in TidyPgm. Also affects CoreUtils.rhsIsStatic. The real solution here is to compute CAF and arity information from the STG-program, and feed it back to tidied program for the interface file and later GHCi clients. A battle for another day. But at least this commit reduces the number of gratuitous CAFs, and hence SRT entries. And kills off a batch of ASSERT failures.
* Reimplement `gcdExtInteger` (#9281)Herbert Valerio Riedel2014-11-291-11/+1
| | | | | `gcdExtInteger` has been available since `integer-gmp-0.5.1` (added via 71e29584603cff38e7b83d3eb28b248362569d61)
* Re-implement `recipModInteger` (#9281)Herbert Valerio Riedel2014-11-291-10/+1
| | | | | | | | | | | | This also exposes the following two type-specialised modular exponentiation variants of `recipModInteger` useful for implementing a `recipModNatural` operation. recipModBigNat :: BigNat -> BigNat -> BigNat recipModWord :: Word# -> Word# -> Word# `recipModInteger` has been available since `integer-gmp-0.5.1` (added via 4d516855241b70eb687d95e3c121428de885e83e)
* Re-implement `powModInteger` (#9281)Herbert Valerio Riedel2014-11-291-12/+1
| | | | | | | | | | | | | This also exposes the following type-specialised modular exponentiation variants of `powModInteger` useful for implementing a `powModNatural` operation. powModBigNat :: BigNat -> BigNat -> BigNat -> BigNat powModBigNatWord :: BigNat -> BigNat -> Word# -> Word# powModWord :: Word# -> Word# -> Word# -> Word# `powModInteger` has been available since `integer-gmp-0.5.1` (added via 4d516855241b70eb687d95e3c121428de885e83e)
* Re-activate `integerGmpInternals` test (#9281)Herbert Valerio Riedel2014-11-282-26/+55
| | | | | | | | | | | | | | | | | | The `integerGmpInternals` test was disabled in c774b28f76ee4c220f7c1c9fd81585e0e3af0e8a as many of the primitives tested in that test weren't available yet w/ `integer-gmp2`. However, most operations have been reimplemented by now, with the exception of recipModInteger :: Integer -> Integer -> Integer gcdExtInteger :: Integer -> Integer -> (Integer, Integer) powModSecInteger :: Integer -> Integer -> Integer -> Integer powModInteger :: Integer -> Integer -> Integer -> Integer powInteger :: Integer -> Word -> Integer which are still missing, and will (time permitting) be reimplemented over time.
* Reimplement im/export primitives for integer-gmp2Herbert Valerio Riedel2014-11-191-19/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The import/export operations were available in `integer-gmp-0.5.1` already, but need to be reimplemented from scratch for the `integer-gmp-1.0.0` rewrite. This also adds a few more operations than were previously available for use w/ the `BigNat` type (which will be useful for implementing serialisation for the upcoming `Natural` type) Specifically, the following operations are (re)added (albeit with slightly different type-signatures): - `sizeInBaseBigNat` - `sizeInBaseInteger` - `sizeInBaseWord#` - `exportBigNatToAddr` - `exportIntegerToAddr` - `exportWordToAddr` - `exportBigNatToMutableByteArray` - `exportIntegerToMutableByteArray` - `exportWordToMutableByteArray` - `importBigNatFromAddr` - `importIntegerFromAddr` - `importBigNatFromByteArray` - `importIntegerFromByteArray` NOTE: The `integerGmpInternals` test-case is updated but not yet re-enabled as it contains tests for other primitives which aren't yet reimplemented. This addresses #9281 Reviewed By: austin, duncan Differential Revision: https://phabricator.haskell.org/D480
* Implement new integer-gmp2 from scratch (re #9281)Herbert Valerio Riedel2014-11-121-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is done as a separate `integer-gmp2` backend library because it turned out to become a complete rewrite from scratch. Due to the different (over)allocation scheme and potentially different accounting (via the new `{shrink,resize}MutableByteArray#` primitives), some of the nofib benchmarks actually results in increased allocation numbers (but not necessarily an increase in runtime!). I believe the allocation numbers could improve if `{resize,shrink}MutableByteArray#` could be optimised to reallocate in-place more efficiently. Here are the more apparent changes in the latest nofib comparision between `integer-gmp` and `integer-gmp2`: ------------------------------------------------------------------ Program Size Allocs Runtime Elapsed TotalMem ------------------------------------------------------------------ ... bernouilli +1.6% +15.3% 0.132 0.132 0.0% ... cryptarithm1 -2.2% 0.0% -9.7% -9.7% 0.0% ... fasta -0.7% -0.0% +10.9% +10.9% 0.0% ... kahan +0.6% +38.9% 0.169 0.169 0.0% ... lcss -0.7% -0.0% -6.4% -6.4% 0.0% ... mandel +1.6% +33.6% 0.049 0.049 0.0% ... pidigits +0.8% +8.5% +3.9% +3.9% 0.0% power +1.4% -23.8% -18.6% -18.6% -16.7% ... primetest +1.3% +50.1% 0.085 0.085 0.0% ... rsa +1.6% +53.4% 0.026 0.026 0.0% ... scs +1.2% +6.6% +6.5% +6.6% +14.3% ... symalg +1.0% +9.5% 0.010 0.010 0.0% ... transform -0.6% -0.0% -5.9% -5.9% 0.0% ... ------------------------------------------------------------------ Min -2.3% -23.8% -18.6% -18.6% -16.7% Max +1.6% +53.4% +10.9% +10.9% +14.3% Geometric Mean -0.3% +1.9% -0.8% -0.8% +0.0% (see P35 / https://phabricator.haskell.org/P35 for full report) By default, `INTEGER_LIBRARY=integer-gmp2` is active now, which results in the package `integer-gmp-1.0.0.0` being registered in the package db. The previous `integer-gmp-0.5.1.0` can be restored by setting `INTEGER_LIBRARY=integer-gmp` (but will probably be removed altogether for GHC 7.12). In-tree GMP support has been stolen from the old `integer-gmp` (while unpatching the custom memory-allocators, as well as forcing `-fPIC`) A minor hack to `ghc-cabal` was necessary in order to support two different `integer-gmp` packages (in different folders) with the same package key. There will be a couple of follow-up commits re-implementing some features that were dropped to keep D82 minimal, as well as further clean-ups/improvements. More information can be found via #9281 and https://ghc.haskell.org/trac/ghc/wiki/Design/IntegerGmp2 Reviewed By: austin, rwbarton, simonmar Differential Revision: https://phabricator.haskell.org/D82
* Set up framework for generalising Data.List to FoldablesHerbert Valerio Riedel2014-09-201-1/+1
| | | | | | | | | | | | | | | | | | | | | This renames the Data.List module to Data.OldList, and puts a new Data.List module into its place re-exporting all list functions. The plan is to leave the monomorphic versions of the list functions in Data.OldList to help smooth the transition. The new Data.List module then will simply re-export entities from Data.OldList and Data.Foldable. This refactoring has been placed in a separate commit to be able to better isolate any regressions caused by the actual list function generalisations when implementing #9586 This also updates the haskell2010, haskell98, and array submodules Reviewed By: austin, ekmett Differential Revision: https://phabricator.haskell.org/D228
* Re-export Word from Prelude (re #9531)Herbert Valerio Riedel2014-08-311-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The original proposal text can be found at http://www.haskell.org/pipermail/libraries/2014-August/023491.html The proposal passed with a clear majority, and was additionally confirmed by the core libraries committee. *Compatibility Note* Only code that imports `Data.Word` for the sole purpose of using `Word` *and* requires to be `-Werror`-clean (due to `-fwarn-unused-imports`) is affected by this change. In order to write warning-free forward/backward compatible against `base`, a variant of the following CPP-based snippet can be used: -- Starting with base>4.7.0 or GHC>7.8 Prelude re-exports 'Word' -- The following is needed, if 'Word' is the *only* entity needed from Data.Word #ifdef MIN_VERSION_base # if !MIN_VERSION_base(4,7,1) import Data.Word (Word) # endif -- no cabal_macros.h -- fallback to __GLASGOW_HASKELL__ #elif __GLASGOW_HASKELL__ < 709 import Data.Word (Word) #endif This also updates the haddock submodule in order to avoid a compile warning
* Mark tests as expect_broken when borken with -DDEBUGJoachim Breitner2013-11-221-1/+2
| | | | The related bugs are #8553 and #8525.
* Add tests for new import/export GMP primitivesHerbert Valerio Riedel2013-11-072-22/+147
| | | | Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
* Add tests for new internal GMP primitivesHerbert Valerio Riedel2013-10-282-0/+18
| | | | | | | This adds some simple tests for the primitives introduced in [4d7cd68b/integer-gmp] and [d466dfc8/integer-gmp]. Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
* Skip integerGmpInternals in ghci (no unboxed tuples)Reid Barton2013-10-011-1/+2
| | | | | | Issue #8393 Signed-off-by: Austin Seipp <austin@well-typed.com>
* Add tests for new internal GMP primitivesHerbert Valerio Riedel2013-10-013-0/+60
| | | | See [ce8ec963/integer-gmp] and [97c101b7/integer-gmp] for more details
* Comparison primops return Int# (Fixes #6135)Jan Stolarek2013-08-143-0/+12
| | | | | | This patch adds tests for new primops and fixes the existing ones. For a deatiled discussion of this changes please visit the wiki page: http://hackage.haskell.org/trac/ghc/wiki/PrimBool
* Remove T7041; it doesn't make sense now that we handle gcd differentlyIan Lynagh2012-07-203-16/+0
|
* Add 32-bit output for gcdIntegerIan Lynagh2012-07-181-0/+1
|
* Add a couple of tests for gcdIntegerIan Lynagh2012-07-135-0/+35
|
* Add IntegerConversionRulesIan Lynagh2012-06-273-0/+35
| | | | Includes a test for the problem in #6111.
* Add more cases to the integer constant folding testIan Lynagh2012-06-082-0/+16
|
* Add more tests to integerConstantFoldingIan Lynagh2012-06-062-0/+21
|
* Generalise the integerToInt_smallInteger test (now fromToInteger)Ian Lynagh2012-01-263-9/+14
|
* Add a test for the integerToInt/smallInteger ruleIan Lynagh2012-01-263-0/+22
|
* Add encodeInteger{Double,Float} to the integerConstantFolding testIan Lynagh2012-01-133-0/+12
|
* Add {double,float}FromInteger to the integerConstantFolding testIan Lynagh2012-01-133-0/+16
|
* Add quot and rem to the integerConstantFolding testIan Lynagh2012-01-103-0/+12
|
* Test some more Integer constant foldingsIan Lynagh2011-09-243-0/+26
|
* Fix integerConstantFolding on 32bit platformsIan Lynagh2011-07-293-3/+3
| | | | | Daniel Fischer pointed out that the timesInteger test result doesn't fir into Int on 32bit platforms.
* Add a test for Integer constant foldingIan Lynagh2011-07-234-0/+200
|
* Move tests from tests/ghc-regress/* to just tests/*David Terei2011-07-207-0/+820