X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2FcoreSyn%2FExternalCore.lhs;h=44f4e8c76662620e4d215bfd79f510b8a2dc6ccb;hb=6a05ec5ef5373f61b7f9f5bdc344483417fa801b;hp=948f5959efc6685f1aac6c2df41196f4b2c2bcf4;hpb=ee2dd59cf1c96437696b9ec39b35dd1beea259a1;p=ghc-hetmet.git diff --git a/compiler/coreSyn/ExternalCore.lhs b/compiler/coreSyn/ExternalCore.lhs index 948f595..44f4e8c 100644 --- a/compiler/coreSyn/ExternalCore.lhs +++ b/compiler/coreSyn/ExternalCore.lhs @@ -1,7 +1,13 @@ % -% (c) The University of Glasgow 2001 +% (c) The University of Glasgow 2001-2006 % \begin{code} +{-# OPTIONS -w #-} +-- The above warning supression flag is a temporary kludge. +-- While working on this module you are encouraged to remove it and fix +-- any warnings in the module. See +-- http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#Warnings +-- for details module ExternalCore where @@ -21,7 +27,7 @@ data Vdefg = Rec [Vdef] | Nonrec Vdef -type Vdef = (Var,Ty,Exp) -- Top level bindings are unqualified now +type Vdef = (Bool,Var,Ty,Exp) -- Top level bindings are unqualified now data Exp = Var (Qual Var) @@ -32,9 +38,11 @@ data Exp | Lam Bind Exp | Let Vdefg Exp | Case Exp Vbind Ty [Alt] {- non-empty list -} - | Coerce Ty Exp + | Cast Exp Ty | Note String Exp - | External String Ty + | External String String Ty {- target name, convention, and type -} + | DynExternal String Ty {- convention and type (incl. Addr# of target as first arg) -} + | Label String data Bind = Vb Vbind @@ -60,6 +68,7 @@ data Kind | Kunboxed | Kopen | Karrow Kind Kind + | Keq Ty Ty data Lit = Lint Integer Ty @@ -78,10 +87,10 @@ type Qual t = (Mname,t) type Id = String -primMname = "GHCziPrim" +primMname = "base:GHC.Prim" tcArrow :: Qual Tcon -tcArrow = (primMname, "ZLzmzgZR") +tcArrow = (primMname, "(->)") \end{code}