summaryrefslogtreecommitdiff
path: root/compiler/main/BreakArray.hs
diff options
context:
space:
mode:
authorIsaac Dupree <id@isaac.cedarswampstudios.org>2008-01-17 01:13:12 +0000
committerIsaac Dupree <id@isaac.cedarswampstudios.org>2008-01-17 01:13:12 +0000
commit206b4dec78250efef3cd927d64dc6cbc54a16c3d (patch)
tree5c922e32a60500a0935e4bf378bb0bdd7819fef0 /compiler/main/BreakArray.hs
parent1286da96dc65faa5992a8a34c5b3bf29dfe2be04 (diff)
downloadhaskell-206b4dec78250efef3cd927d64dc6cbc54a16c3d.tar.gz
lots of portability changes (#1405)
re-recording to avoid new conflicts was too hard, so I just put it all in one big patch :-( (besides, some of the changes depended on each other.) Here are what the component patches were: Fri Dec 28 11:02:55 EST 2007 Isaac Dupree <id@isaac.cedarswampstudios.org> * document BreakArray better Fri Dec 28 11:39:22 EST 2007 Isaac Dupree <id@isaac.cedarswampstudios.org> * properly ifdef BreakArray for GHCI Fri Jan 4 13:50:41 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> * change ifs on __GLASGOW_HASKELL__ to account for... (#1405) for it not being defined. I assume it being undefined implies a compiler with relatively modern libraries but without most unportable glasgow extensions. Fri Jan 4 14:21:21 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> * MyEither-->EitherString to allow Haskell98 instance Fri Jan 4 16:13:29 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> * re-portabilize Pretty, and corresponding changes Fri Jan 4 17:19:55 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> * Augment FastTypes to be much more complete Fri Jan 4 20:14:19 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> * use FastFunctions, cleanup FastString slightly Fri Jan 4 21:00:22 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> * Massive de-"#", mostly Int# --> FastInt (#1405) Fri Jan 4 21:02:49 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> * miscellaneous unnecessary-extension-removal Sat Jan 5 19:30:13 EST 2008 Isaac Dupree <id@isaac.cedarswampstudios.org> * add FastFunctions
Diffstat (limited to 'compiler/main/BreakArray.hs')
-rw-r--r--compiler/main/BreakArray.hs25
1 files changed, 22 insertions, 3 deletions
diff --git a/compiler/main/BreakArray.hs b/compiler/main/BreakArray.hs
index 8d86582efe..60d1410cd0 100644
--- a/compiler/main/BreakArray.hs
+++ b/compiler/main/BreakArray.hs
@@ -3,6 +3,10 @@
-- Break Arrays in the IO monad
-- Entries in the array are Word sized
--
+-- Conceptually, a zero-indexed IOArray of Bools, initially False.
+-- They're represented as Words with 0==False, 1==True.
+-- They're used to determine whether GHCI breakpoints are on or off.
+--
-- (c) The University of Glasgow 2007
--
-----------------------------------------------------------------------------
@@ -15,15 +19,19 @@
-- for details
module BreakArray
- ( BreakArray (BA)
- -- constructor is exported only for ByteCodeGen
+ ( BreakArray
+#ifdef GHCI
+ (BA) -- constructor is exported only for ByteCodeGen
+#endif
, newBreakArray
+#ifdef GHCI
, getBreak
, setBreakOn
, setBreakOff
, showBreakArray
+#endif
) where
-
+#ifdef GHCI
import GHC.Exts
import GHC.IOBase
import GHC.Word
@@ -105,3 +113,14 @@ readBA# array i = IO $ \s ->
readBreakArray :: BreakArray -> Int -> IO Word
readBreakArray (BA array) (I# i) = readBA# array i
+
+#else /* GHCI */
+--stub implementation to make main/, etc., code happier.
+--IOArray and IOUArray are increasingly non-portable,
+--still don't have quite the same interface, and (for GHCI)
+--presumably have a different representation.
+data BreakArray = Unspecified
+newBreakArray :: Int -> IO BreakArray
+newBreakArray _ = return Unspecified
+#endif /* GHCI */
+