summaryrefslogtreecommitdiff
path: root/compiler/GHC
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/GHC')
-rw-r--r--compiler/GHC/Builtin/Types/Prim.hs19
-rw-r--r--compiler/GHC/Builtin/primops.txt.pp37
-rw-r--r--compiler/GHC/StgToCmm/Prim.hs3
3 files changed, 1 insertions, 58 deletions
diff --git a/compiler/GHC/Builtin/Types/Prim.hs b/compiler/GHC/Builtin/Types/Prim.hs
index 2eec67613d..c842b97a44 100644
--- a/compiler/GHC/Builtin/Types/Prim.hs
+++ b/compiler/GHC/Builtin/Types/Prim.hs
@@ -71,7 +71,6 @@ module GHC.Builtin.Types.Prim(
mutVarPrimTyCon, mkMutVarPrimTy,
mVarPrimTyCon, mkMVarPrimTy,
- ioPortPrimTyCon, mkIOPortPrimTy,
tVarPrimTyCon, mkTVarPrimTy,
stablePtrPrimTyCon, mkStablePtrPrimTy,
stableNamePrimTyCon, mkStableNamePrimTy,
@@ -182,7 +181,6 @@ exposedPrimTyCons
, mutableByteArrayPrimTyCon
, smallMutableArrayPrimTyCon
, mVarPrimTyCon
- , ioPortPrimTyCon
, tVarPrimTyCon
, mutVarPrimTyCon
, realWorldTyCon
@@ -227,7 +225,7 @@ charPrimTyConName, intPrimTyConName, int8PrimTyConName, int16PrimTyConName, int3
arrayPrimTyConName, smallArrayPrimTyConName, byteArrayPrimTyConName,
mutableArrayPrimTyConName, mutableByteArrayPrimTyConName,
smallMutableArrayPrimTyConName, mutVarPrimTyConName, mVarPrimTyConName,
- ioPortPrimTyConName, tVarPrimTyConName, stablePtrPrimTyConName,
+ tVarPrimTyConName, stablePtrPrimTyConName,
stableNamePrimTyConName, compactPrimTyConName, bcoPrimTyConName,
weakPrimTyConName, threadIdPrimTyConName,
eqPrimTyConName, eqReprPrimTyConName, eqPhantPrimTyConName,
@@ -259,7 +257,6 @@ mutableArrayPrimTyConName = mkPrimTc (fsLit "MutableArray#") mutableArrayPri
mutableByteArrayPrimTyConName = mkPrimTc (fsLit "MutableByteArray#") mutableByteArrayPrimTyConKey mutableByteArrayPrimTyCon
smallMutableArrayPrimTyConName= mkPrimTc (fsLit "SmallMutableArray#") smallMutableArrayPrimTyConKey smallMutableArrayPrimTyCon
mutVarPrimTyConName = mkPrimTc (fsLit "MutVar#") mutVarPrimTyConKey mutVarPrimTyCon
-ioPortPrimTyConName = mkPrimTc (fsLit "IOPort#") ioPortPrimTyConKey ioPortPrimTyCon
mVarPrimTyConName = mkPrimTc (fsLit "MVar#") mVarPrimTyConKey mVarPrimTyCon
tVarPrimTyConName = mkPrimTc (fsLit "TVar#") tVarPrimTyConKey tVarPrimTyCon
stablePtrPrimTyConName = mkPrimTc (fsLit "StablePtr#") stablePtrPrimTyConKey stablePtrPrimTyCon
@@ -1019,20 +1016,6 @@ mkMutVarPrimTy s elt = TyConApp mutVarPrimTyCon [getLevity elt, s, elt]
{-
************************************************************************
* *
-\subsection[TysPrim-io-port-var]{The synchronizing I/O Port type}
-* *
-************************************************************************
--}
-
-ioPortPrimTyCon :: TyCon
-ioPortPrimTyCon = pcPrimTyCon_LevPolyLastArg ioPortPrimTyConName [Nominal, Representational] unliftedRepTy
-
-mkIOPortPrimTy :: Type -> Type -> Type
-mkIOPortPrimTy s elt = TyConApp ioPortPrimTyCon [getLevity elt, s, elt]
-
-{-
-************************************************************************
-* *
The synchronizing variable type
\subsection[TysPrim-synch-var]{The synchronizing variable type}
* *
diff --git a/compiler/GHC/Builtin/primops.txt.pp b/compiler/GHC/Builtin/primops.txt.pp
index ac03c20dbd..ac5f1d5934 100644
--- a/compiler/GHC/Builtin/primops.txt.pp
+++ b/compiler/GHC/Builtin/primops.txt.pp
@@ -2800,43 +2800,6 @@ primop IsEmptyMVarOp "isEmptyMVar#" GenPrimOp
------------------------------------------------------------------------
-section "Synchronized I/O Ports"
- {Operations on 'IOPort#'s. }
-------------------------------------------------------------------------
-
-primtype IOPort# s a
- { A shared I/O port is almost the same as an 'MVar#'.
- The main difference is that IOPort has no deadlock detection or
- deadlock breaking code that forcibly releases the lock. }
-
-primop NewIOPortOp "newIOPort#" GenPrimOp
- State# s -> (# State# s, IOPort# s v #)
- {Create new 'IOPort#'; initially empty.}
- with
- out_of_line = True
- has_side_effects = True
-
-primop ReadIOPortOp "readIOPort#" GenPrimOp
- IOPort# s v -> State# s -> (# State# s, v #)
- {If 'IOPort#' is empty, block until it becomes full.
- Then remove and return its contents, and set it empty.
- Throws an 'IOPortException' if another thread is already
- waiting to read this 'IOPort#'.}
- with
- out_of_line = True
- has_side_effects = True
-
-primop WriteIOPortOp "writeIOPort#" GenPrimOp
- IOPort# s v -> v -> State# s -> (# State# s, Int# #)
- {If 'IOPort#' is full, immediately return with integer 0,
- throwing an 'IOPortException'.
- Otherwise, store value arg as 'IOPort#''s new contents,
- and return with integer 1. }
- with
- out_of_line = True
- has_side_effects = True
-
-------------------------------------------------------------------------
section "Delay/wait operations"
------------------------------------------------------------------------
diff --git a/compiler/GHC/StgToCmm/Prim.hs b/compiler/GHC/StgToCmm/Prim.hs
index 5d459ba7ad..c4e6726411 100644
--- a/compiler/GHC/StgToCmm/Prim.hs
+++ b/compiler/GHC/StgToCmm/Prim.hs
@@ -1584,9 +1584,6 @@ emitPrimOp cfg primop =
ReadMVarOp -> alwaysExternal
TryReadMVarOp -> alwaysExternal
IsEmptyMVarOp -> alwaysExternal
- NewIOPortOp -> alwaysExternal
- ReadIOPortOp -> alwaysExternal
- WriteIOPortOp -> alwaysExternal
DelayOp -> alwaysExternal
WaitReadOp -> alwaysExternal
WaitWriteOp -> alwaysExternal