on master help sign in
Use integer-simple if the integer-simple flag is set.
commit513b65222ed3f3cf515bfc472f331caff7383d87 authorThomas M. DuBuisson <Thomas.DuBuisson@gmail.com> dateWed 16 May 2012, 10:51 (14 years ago) parentc13c87a
2 files changed+22−4
Data/Text/Lazy/Builder/Int.hs+11−2 text.cabal+11−2
Data/Text/Lazy/Builder/Int.hs+11−2
@@ -27,12 +27,16 @@ import GHC.Types (Int(..))
2727#ifdef __GLASGOW_HASKELL__
2828# if __GLASGOW_HASKELL__ < 611
2929import GHC.Integer.Internals
30−# else
30+# elif defined(INTEGER_GMP)
3131import GHC.Integer.GMP.Internals
32+# elif defined(INTEGER_SIMPLE)
33+import GHC.Integer
34+# else
35+# error "You need to use either GMP or integer-simple."
3236# endif
3337#endif
3438
35−#ifdef INTEGER_GMP
39+#if defined(INTEGER_GMP) || defined(INTEGER_SIMPLE)
3640# define PAIR(a,b) (# a,b #)
3741#else
3842# define PAIR(a,b) (a,b)
@@ -93,8 +97,13 @@ int = decimal
9397data T = T !Integer !Int
9498
9599integer :: Int -> Integer -> Builder
100+#ifdef INTEGER_GMP
96101integer 10 (S# i#) = decimal (I# i#)
97102integer 16 (S# i#) = hexadecimal (I# i#)
103+#else
104+integer 10 i = decimal i
105+integer 16 i = hexadecimal i
106+#endif
98107integer base i
99108 | i < 0 = singleton '-' <> go (-i)
100109 | otherwise = go i
text.cabal+11−2
@@ -72,6 +72,10 @@ flag developer
7272 description: operate in developer mode
7373 default: False
7474
75+flag integer-simple
76+ description: Use the simple integer library instead of GMP
77+ default: False
78+
7579library
7680 c-sources: cbits/cbits.c
7781
@@ -138,8 +142,13 @@ library
138142 cpp-options: -DASSERTS
139143
140144 if impl(ghc >= 6.11)
141− cpp-options: -DINTEGER_GMP
142− build-depends: integer-gmp >= 0.2 && < 0.5
145+ if flag(integer-simple)
146+ cpp-options: -DINTEGER_SIMPLE
147+ build-depends: integer-simple >= 0.1 && < 0.5
148+ else
149+ cpp-options: -DINTEGER_GMP
150+ build-depends: integer-gmp >= 0.2 && < 0.5
151+
143152
144153 if impl(ghc >= 6.9) && impl(ghc < 6.11)
145154 cpp-options: -DINTEGER_GMP