Make integer-gmp suitable to be used directly, rather than via integer
authorIan Lynagh <igloo@earth.li>
Tue, 21 Jul 2009 18:53:02 +0000 (18:53 +0000)
committerIan Lynagh <igloo@earth.li>
Tue, 21 Jul 2009 18:53:02 +0000 (18:53 +0000)
GHC/Integer.lhs [moved from GHC/Integer/GMP.lhs with 99% similarity]
GHC/Integer/GMP/Internals.hs
GHC/Integer/Type.hs [new file with mode: 0644]
integer-gmp.cabal

similarity index 99%
rename from GHC/Integer/GMP.lhs
rename to GHC/Integer.lhs
index c22b896..c32da60 100644 (file)
@@ -2,7 +2,7 @@
 {-# OPTIONS_GHC -XNoImplicitPrelude #-}
 -----------------------------------------------------------------------------
 -- |
--- Module      :  GHC.Integer.GMP
+-- Module      :  GHC.Integer
 -- Copyright   :  (c) The University of Glasgow 1994-2008
 -- License     :  see libraries/integer-gmp/LICENSE
 --
@@ -25,7 +25,7 @@
 #error Unknown SIZEOF_HSWORD; can't define INT_MINBOUND and NEG_INT_MINBOUND
 #endif
 
-module GHC.Integer.GMP (
+module GHC.Integer (
     Integer,
     smallInteger, wordToInteger, integerToWord, toInt#,
 #if WORD_SIZE_IN_BITS < 64
index 859c8e9..f05a8d6 100644 (file)
@@ -49,6 +49,7 @@ module GHC.Integer.GMP.Internals (
   ) where
 
 import GHC.Prim (Int#, Word#, Double#, ByteArray#)
+import GHC.Integer.Type
 
 #if WORD_SIZE_IN_BITS < 64
 import GHC.Prim (Int64#, Word64#)
@@ -57,18 +58,6 @@ import GHC.Prim (Int64#, Word64#)
 -- Double isn't available yet, and we shouldn't be using defaults anyway:
 default ()
 
--- | Arbitrary-precision integers.
-data Integer
-   = S# Int#                            -- small integers
-#ifndef ILX
-   | J# Int# ByteArray#                 -- large integers
-#else
-   | J# Void BigInteger                 -- .NET big ints
-
-foreign type dotnet "BigInteger" BigInteger
-#endif
-
-
 -- | Returns -1,0,1 according as first argument is less than, equal to, or greater than second argument.
 --
 foreign import prim "integer_cmm_cmpIntegerzh" cmpInteger#
diff --git a/GHC/Integer/Type.hs b/GHC/Integer/Type.hs
new file mode 100644 (file)
index 0000000..3f0360c
--- /dev/null
@@ -0,0 +1,14 @@
+{-# LANGUAGE MagicHash, NoImplicitPrelude #-}
+{-# OPTIONS_HADDOCK hide #-}
+
+module GHC.Integer.Type (Integer(..)) where
+
+import GHC.Prim
+
+default ()
+
+-- | Arbitrary-precision integers.
+data Integer
+   = S# Int#                            -- small integers
+   | J# Int# ByteArray#                 -- large integers
+
index 5c323db..480c734 100644 (file)
@@ -21,9 +21,13 @@ source-repository head
 
 Library {
     build-depends: ghc-prim
-    exposed-modules: GHC.Integer.GMP
+    exposed-modules: GHC.Integer
                      GHC.Integer.GMP.Internals
-    extensions: CPP, MagicHash, UnboxedTuples,
+    other-modules: GHC.Integer.Type
+    extensions: CPP, MagicHash, UnboxedTuples, NoImplicitPrelude,
                 ForeignFunctionInterface, UnliftedFFITypes
     c-sources: cbits/cbits.c
+    -- We need to set the package name to integer-gmp
+    -- (without a version number) as it's magic.
+    ghc-options: -package-name integer-gmp
 }