[start moving integral c types to Jhc.Type.C and turning them into newtypes of values
John Meacham <john@repetae.net>**20120124032656
 Ignore-this: 38ff90eea5c3dd373b224693e1d976ce
] hunk ./lib/base/System/IO.hs 42
-
hunk ./lib/base/System/IO.hs 44
-import Jhc.IO
-import Jhc.Handle
-import Foreign.Ptr
-import System.C.Stdio
-import Foreign.Storable
-import Foreign.C.Types
hunk ./lib/base/System/IO.hs 46
+--import Foreign.C.Types
+import Jhc.Type.C
+import Foreign.Ptr
+import Foreign.Storable
+import Jhc.Handle
+import Jhc.IO
+import System.C.Stdio
hunk ./lib/ext/html.cabal 8
-build-depends:  base>=2.0
hunk ./lib/jhc/Foreign/C/Types.hs 1
-{-# OPTIONS_JHC -fno-prelude #-}
-{-# LANGUAGE NoImplicitPrelude #-}
-module Foreign.C.Types where
+-- Haskell 2010 compliant
+module Foreign.C.Types (
+    CChar,  CSChar,  CUChar,  CShort,  CUShort,  CInt,  CUInt,  CLong,  CULong,
+    CPtrdiff,  CSize,  CWchar,  CSigAtomic,  CLLong,  CULLong,  CIntPtr,
+    CUIntPtr,  CIntMax,  CUIntMax,  CClock,  CTime,  CFloat,  CDouble,  CFile,
+    CFpos,  CJmpBuf
+  ) where
+
+import Data.Word
+import Jhc.Type.C
hunk ./lib/jhc/Foreign/C/Types.hs 15
-data CShort
-data CUShort
+
hunk ./lib/jhc/Foreign/C/Types.hs 18
-data CLong
-data CULong
+
hunk ./lib/jhc/Foreign/C/Types.hs 21
-data CWchar
hunk ./lib/jhc/Foreign/C/Types.hs 22
-data CLLong
-data CULLong
hunk ./lib/jhc/Foreign/C/Types.hs 27
-data CJmpBuf
-data CFpos
-data CWint
hunk ./lib/jhc/Foreign/Storable.m4 27
-    peek (Ptr addr) = IO $ \w -> case peek$2 addr w of
+    peek (Ptr addr) = IO $ \w -> case peek$1 addr w of
hunk ./lib/jhc/Foreign/Storable.m4 29
-    poke (Ptr addr) v = IO $ \w -> case poke$2 addr (unbox$1 v) w of
+    poke (Ptr addr) v = IO $ \w -> case poke$1 addr (unbox$1 v) w of
hunk ./lib/jhc/Foreign/Storable.m4 31
-    sizeOf _ = boxInt (sizeOf$2 0#)
-    alignment _ = boxInt (alignmentOf$2 0#)
+    sizeOf _ = boxInt (sizeOf$1 0#)
+    alignment _ = boxInt (alignmentOf$1 0#)
hunk ./lib/jhc/Foreign/Storable.m4 35
-foreign import primitive "peek.$3" peek$2 :: Addr__ -> UIO $2
-foreign import primitive "poke.$3" poke$2 :: Addr__ -> $2 -> UIO_
-foreign import primitive "sizeOf.$3" sizeOf$2 :: $2 -> Int__
-foreign import primitive "alignmentOf.$3" alignmentOf$2 :: $2 -> Int__
+foreign import primitive "peek.$3" peek$1 :: Addr__ -> UIO $2
+foreign import primitive "poke.$3" poke$1 :: Addr__ -> $2 -> UIO_
+foreign import primitive "sizeOf.$3" sizeOf$1 :: $2 -> Int__
+foreign import primitive "alignmentOf.$3" alignmentOf$1 :: $2 -> Int__
hunk ./lib/jhc/Jhc/Float.hs 23
+import Jhc.Type.Float
hunk ./lib/jhc/Jhc/Float.hs 27
-data Float = Float Float32_
-data Double = Double Float64_
-
hunk ./lib/jhc/Jhc/Handle.hs 51
-make_builtin mode name std = Handle { handleName = "(" ++ name ++ ")", handleFile = std, handleIOMode = mode, handleBinary = False, handleIsPipe = False }
+{-# INLINE make_builtin #-}
+make_builtin mode name std = Handle { handleName = name, handleFile = std, handleIOMode = mode, handleBinary = False, handleIsPipe = False }
hunk ./lib/jhc/Jhc/Inst/Storable.hs 49
-INST_STORABLE_XXX(CWchar,BitsWchar_,bits<wchar_t>)
+--XINST_STORABLE_XXX(CWchar,BitsWchar_,bits<wchar_t>)
+INST_STORABLE_XXX(CWchar,Bits32_,bits<wchar_t>)
hunk ./lib/jhc/Jhc/Num.hs 2
-module Jhc.Num where
+module Jhc.Num(module Jhc.Num, Ratio(..)) where
hunk ./lib/jhc/Jhc/Num.hs 10
+import Jhc.Type.Float
hunk ./lib/jhc/Jhc/Num.hs 12
-infixl 7 :%
hunk ./lib/jhc/Jhc/Num.hs 15
-data  Ratio a  = !a :% !a
addfile ./lib/jhc/Jhc/Type/C.hs
hunk ./lib/jhc/Jhc/Type/C.hs 1
+module Jhc.Type.C where
+
+import Data.Word
+import Data.Int
+
+newtype CLLong = CLLong IntMax
+newtype CULLong = CULLong WordMax
+newtype CLong = CLong IntPtr
+newtype CULong = CULong WordPtr
+newtype CShort = CShort Int16
+newtype CUShort = CUShort Word16
+newtype CWchar = CWchar Word32
+newtype CWint = CWint Int32
+newtype CIntMax = CIntMax IntMax
+newtype CUIntMax = CUIntMax WordMax
+newtype CIntPtr = CIntPtr IntPtr
+newtype CUIntPtr = CUIntPtr WordPtr
+
+data CFile
+data CJmpBuf
+data CFpos
addfile ./lib/jhc/Jhc/Type/Float.hs
hunk ./lib/jhc/Jhc/Type/Float.hs 1
+module Jhc.Type.Float where
+
+import Jhc.Prim.Bits
+
+data Float = Float Float32_
+data Double = Double Float64_
+
+infixl 7 :%
+data Ratio a  = !a :% !a
hunk ./lib/jhc/Jhc/Type/Handle.hs 7
-
-data CFile
+import Jhc.Type.C
hunk ./lib/jhc/Prelude.hs 63
-
+import Data.Int(Int())
hunk ./lib/jhc/Prelude.hs 66
-import Data.Int(Int())
hunk ./lib/jhc/Prelude.hs 77
+import Jhc.Maybe
hunk ./lib/jhc/Prelude.hs 82
-import Jhc.Maybe
hunk ./lib/jhc/Prelude.hs 88
-
-
hunk ./lib/jhc/Prelude.hs 101
-
-
hunk ./lib/jhc/Prelude.hs 103
-
-
-
hunk ./lib/jhc/Prelude.hs 111
-
hunk ./lib/jhc/Prelude.hs 118
-
hunk ./lib/jhc/Prelude.hs 131
-
hunk ./lib/jhc/Prelude.hs 134
-
-
-
-
-
-
-
-
hunk ./lib/jhc/Prelude.hs 141
-
-
hunk ./lib/jhc/Prelude.hs 146
-
-
-
-
-
-
hunk ./lib/jhc/Prelude.hs 158
-
-
-
-
-
-
-
hunk ./lib/jhc/Prelude.hs 169
-
hunk ./lib/jhc/Prelude.hs 178
-
hunk ./lib/jhc/Prelude.hs 184
-
hunk ./lib/jhc/Prelude.hs 190
-
-
hunk ./lib/jhc/Prelude.hs 207
-
hunk ./lib/jhc/Prelude.hs 214
-
hunk ./lib/jhc/Prelude.hs 220
-
hunk ./lib/jhc/Prelude.hs 225
-
hunk ./lib/jhc/Prelude.hs 230
-
hunk ./lib/jhc/Prelude.hs 275
-
hunk ./lib/jhc/Prelude.hs 278
-
-
hunk ./lib/jhc/Prelude.hs 283
-
hunk ./lib/jhc/Prelude.hs 285
-
hunk ./lib/jhc/Prelude.hs 288
-
hunk ./lib/jhc/Prelude.hs 292
-
hunk ./lib/jhc/Prelude.hs 337
-
hunk ./lib/jhc/Prelude/IO.hs 23
-import System.C.Stdio
+--import Foreign.C.Types
hunk ./lib/jhc/Prelude/IO.hs 25
-import Foreign.C.Types
hunk ./lib/jhc/Prelude/IO.hs 32
+import Jhc.Type.C
+import System.C.Stdio
hunk ./lib/jhc/System/C/Stdio.hs 8
-import Jhc.Type.Handle
hunk ./lib/jhc/jhc.yaml 57
+        - Jhc.Type.C
+        - Jhc.Type.Float
hunk ./src/E/Values.hs 78
-    toE rat = ELit (litCons { litName = dc_Rational, litArgs = [toE (numerator rat), toE (denominator rat)], litType = tRational })
+    toE rat = ELit (litCons { litName = dc_Ratio, litArgs = [toE (numerator rat), toE (denominator rat)], litType = tRational })
hunk ./src/data/names.txt 18
-Ptr        Jhc.Addr.Ptr
-FunPtr     Jhc.Addr.FunPtr
-Ratio      Jhc.Num.Ratio
hunk ./src/data/names.txt 19
-Float      Jhc.Float.Float
-Double     Jhc.Float.Double
-CLong      Foreign.C.Types.CLong
+
+# Jhc.Type
+Ratio      Jhc.Type.Float.Ratio
+Float      Jhc.Type.Float.Float
+Double     Jhc.Type.Float.Double
+Ptr        Jhc.Type.Ptr.Ptr
+FunPtr     Jhc.Type.Ptr.FunPtr
+
+# Jhc.Type.C
+CLong      Jhc.Type.C.CLong
+CULong     Jhc.Type.C.CULong
+CLLong     Jhc.Type.C.CLLong
+CULLong    Jhc.Type.C.CULLong
+CShort     Jhc.Type.C.CShort
+CUShort    Jhc.Type.C.CUShort
+CWchar     Jhc.Type.C.CWchar
+CWint      Jhc.Type.C.CWint
+
hunk ./src/data/names.txt 39
-CUShort    Foreign.C.Types.CUShort
-CULong     Foreign.C.Types.CULong
+
+
hunk ./src/data/names.txt 86
-Rational   Jhc.Num.:%
+Ratio      Jhc.Type.Float.:%
hunk ./src/data/primitives.txt 24
-Foreign.C.Types.CShort, bits<short>
+#Foreign.C.Types.CShort, bits<short>
hunk ./src/data/primitives.txt 27
-Foreign.C.Types.CULong, bits<ptr>
+#Foreign.C.Types.CULong, bits<ptr>
hunk ./src/data/primitives.txt 29
-Foreign.C.Types.CWchar, bits<wchar_t>
-Foreign.C.Types.CWint, bits<wchar_t>
+#Foreign.C.Types.CWchar, bits<wchar_t>
+#Foreign.C.Types.CWint, bits<wchar_t>