[change Peek,Poke, and PrimTypeInfo primitives to use Op.Ty type representations
John Meacham <john@repetae.net>**20070530043656] hunk ./C/FromGrin2.hs 164
-convertVal (ValPrim (APrim p _) [] _) = case p of
-    CConst s _ -> return $ expressionRaw s
-    AddrOf t -> return $ expressionRaw ('&':unpackPS t)
-    PrimTypeInfo { primArgType = arg, primTypeInfo = PrimSizeOf } -> return $ expressionRaw ("sizeof(" ++ arg ++ ")")
-    PrimString s -> return $ expressionRaw (show s)
-    x -> return $ err ("convertVal: " ++ show x)
hunk ./C/FromGrin2.hs 525
+    PrimTypeInfo { primArgTy = arg, primTypeInfo = PrimSizeOf } -> return $ expressionRaw ("sizeof(" ++ tyToC Op.HintUnsigned arg ++ ")")
+    PrimString s -> return $ expressionRaw (show s)
hunk ./C/FromGrin2.hs 559
-        return $ expressionRaw ("*((" <> (opTyToC' $ stringNameToTy t) <+> "*)" <> (parens $ renderG v') <> char ')')
+        return $ expressionRaw ("*((" <> (opTyToC' t) <+> "*)" <> (parens $ renderG v') <> char ')')
hunk ./C/FromGrin2.hs 563
-        return $ expressionRaw ("*((" <> (opTyToC' $ stringNameToTy t) <+> "*)" <> (parens $ renderG v') <> text ") = " <> renderG x')
+        return $ expressionRaw ("*((" <> (opTyToC' t) <+> "*)" <> (parens $ renderG v') <> text ") = " <> renderG x')
hunk ./C/Prims.hs 45
-    | Peek { primArgType :: ExtType }  -- read value from memory
-    | Poke { primArgType :: ExtType }  -- write value to memory
+    | Peek { primArgTy :: Op.Ty }  -- read value from memory
+    | Poke { primArgTy :: Op.Ty }  -- write value to memory
hunk ./C/Prims.hs 52
-        primArgType :: ExtType,
-        primRetType :: ExtType,
+        primArgTy :: Op.Ty,
+        primRetTy :: Op.Ty,
hunk ./C/Prims.hs 151
-    pprint (Peek t) = char '*' <> text t
-    pprint (Poke t) = char '=' <> text t
+    pprint (Peek t) = char '*' <> tshow t
+    pprint (Poke t) = char '=' <> tshow t
hunk ./C/Prims.hs 158
-    pprint PrimTypeInfo { primArgType = at, primTypeInfo = PrimSizeOf } = text "sizeof" <> parens (text at)
-    pprint PrimTypeInfo { primArgType = at, primTypeInfo = PrimAlignmentOf } = text "alignmentof" <> parens (text at)
-    pprint PrimTypeInfo { primArgType = at, primTypeInfo = PrimTypeIsSigned } = text "is_signed" <> parens (text at)
-    pprint PrimTypeInfo { primArgType = at, primTypeInfo = PrimMaxBound } = text "max" <> parens (text at)
-    pprint PrimTypeInfo { primArgType = at, primTypeInfo = PrimUMaxBound } = text "umax" <> parens (text at)
-    pprint PrimTypeInfo { primArgType = at, primTypeInfo = PrimMinBound } = text "min" <> parens (text at)
+    pprint PrimTypeInfo { primArgTy = at, primTypeInfo = PrimSizeOf } = text "sizeof" <> parens (tshow at)
+    pprint PrimTypeInfo { primArgTy = at, primTypeInfo = PrimAlignmentOf } = text "alignmentof" <> parens (tshow at)
+    pprint PrimTypeInfo { primArgTy = at, primTypeInfo = PrimTypeIsSigned } = text "is_signed" <> parens (tshow at)
+    pprint PrimTypeInfo { primArgTy = at, primTypeInfo = PrimMaxBound } = text "max" <> parens (tshow at)
+    pprint PrimTypeInfo { primArgTy = at, primTypeInfo = PrimUMaxBound } = text "umax" <> parens (tshow at)
+    pprint PrimTypeInfo { primArgTy = at, primTypeInfo = PrimMinBound } = text "min" <> parens (tshow at)
hunk ./E/PrimOpt.hs 168
-    primopt "constPeekByte" [a] t = return (EPrim (APrim (Peek "bits8") mempty) [a] t)
+    primopt "constPeekByte" [a] t = return (EPrim (APrim (Peek Op.bits8) mempty) [a] t)
hunk ./Grin/FromE.hs 442
+        f p xs = fail $ "Grin.FromE - Unknown primitive: " ++ show (p,xs)
hunk ./Grin/FromE.hs 461
-                    pt = toType (stringNameToTy pt') ty
+                    pt = toType (TyPrim pt') ty
hunk ./Grin/FromE.hs 466
-                    pt = stringNameToTy pt'
+                    pt = TyPrim pt'
hunk ./Grin/FromE.hs 471
-                    pt = stringNameToTy pt'
+                    pt = TyPrim pt'
hunk ./Grin/FromE.hs 745
-fromRawType (ELit LitCons { litName = tname, litArgs = [] }) = rawNameToTy tname
---    | RawType <- nameType tname = return (Ty $ toAtom (show tname))
---fromRawType _ = fail "not a raw type"
+fromRawType (ELit LitCons { litName = tname, litArgs = [] }) | Just r <- rawNameToTy tname = return r
+fromRawType _ = fail "not a raw type"
hunk ./Grin/Show.hs 96
-prettyExp vl (Prim Primitive { primAPrim = APrim (Peek t) _ } [v])  = vl <> prim t <> char '[' <> prettyVal v <> char ']'
+prettyExp vl (Prim Primitive { primAPrim = APrim (Peek t) _ } [v])  = vl <> prim (show t) <> char '[' <> prettyVal v <> char ']'
hunk ./Main.hs 36
-import E.ToHs
+--import E.ToHs
hunk ./Main.hs 601
-        compileToHs prog
+        fail "Compiling to GHC currently disabled"
+        --compileToHs prog
hunk ./data/PrimitiveOperators-in.hs 160
-    rest = eCaseTup' (EPrim (APrim (Peek p) mempty) [EVar tvrWorld, EVar tvr'] (ltTuple' [tWorld__,rawType p])) [tvrWorld2,rtVar] (eLet rtVar' (ELit $ litCons { litName = cn, litArgs = [EVar rtVar], litType = t }) $ eJustIO (EVar tvrWorld2) (EVar rtVar') )
+    rest = eCaseTup' (EPrim (APrim (Peek (stringToOpTy p)) mempty) [EVar tvrWorld, EVar tvr'] (ltTuple' [tWorld__,rawType p])) [tvrWorld2,rtVar] (eLet rtVar' (ELit $ litCons { litName = cn, litArgs = [EVar rtVar], litType = t }) $ eJustIO (EVar tvrWorld2) (EVar rtVar') )
hunk ./data/PrimitiveOperators-in.hs 163
-buildPoke cn t p = ELam ptr_tvr $ ELam v_tvr $ createIO_ $ (\tw -> unbox' (EVar ptr_tvr) dc_Addr ptr_tvr' $ unbox' (EVar v_tvr) cn v_tvr' $ EPrim (APrim (Poke p) mempty) [EVar tw, EVar ptr_tvr', EVar v_tvr'] tWorld__) where
+buildPoke cn t p = ELam ptr_tvr $ ELam v_tvr $ createIO_ $ (\tw -> unbox' (EVar ptr_tvr) dc_Addr ptr_tvr' $ unbox' (EVar v_tvr) cn v_tvr' $ EPrim (APrim (Poke (stringToOpTy p)) mempty) [EVar tw, EVar ptr_tvr', EVar v_tvr'] tWorld__) where
hunk ./data/PrimitiveOperators-in.hs 207
-    rp = EPrim (APrim (PrimTypeInfo { primArgType = s, primRetType = "int", primTypeInfo = PrimSizeOf }) mempty) [] tIntzh
+    rp = EPrim (APrim (PrimTypeInfo { primArgTy = stringToOpTy s, primRetTy = ot_int, primTypeInfo = PrimSizeOf }) mempty) [] tIntzh
hunk ./lib/base/Prelude/Float.hs 140
-foreign import primitive "divide" divideFloat ::  Float -> Float -> Float
+foreign import primitive "FDiv" divideFloat ::  Float -> Float -> Float
hunk ./lib/base/Prelude/Float.hs 194
-foreign import primitive "divide" divideDouble ::  Double -> Double -> Double
+foreign import primitive "FDiv" divideDouble ::  Double -> Double -> Double