diff options
author | Thomas Miedema <thomasmiedema@gmail.com> | 2015-08-21 10:44:54 +0200 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2015-08-21 15:44:21 +0200 |
commit | 2f29ebbb6f8c914f2bba624f3edcc259274df8af (patch) | |
tree | c523018ed23dd32e45697fe177d6df5ad4b59b50 /compiler/utils/Outputable.hs | |
parent | 3452473b4bb180ba327520067b8c6f2a8d6c4f4b (diff) | |
download | haskell-2f29ebbb6f8c914f2bba624f3edcc259274df8af.tar.gz |
Refactor: delete most of the module FastTypes
This reverses some of the work done in #1405, and goes back to the
assumption that the bootstrap compiler understands GHC-haskell.
In particular:
* use MagicHash instead of _ILIT and _CLIT
* pattern matching on I# if possible, instead of using iUnbox
unnecessarily
* use Int#/Char#/Addr# instead of the following type synonyms:
- type FastInt = Int#
- type FastChar = Char#
- type FastPtr a = Addr#
* inline the following functions:
- iBox = I#
- cBox = C#
- fastChr = chr#
- fastOrd = ord#
- eqFastChar = eqChar#
- shiftLFastInt = uncheckedIShiftL#
- shiftR_FastInt = uncheckedIShiftRL#
- shiftRLFastInt = uncheckedIShiftRL#
* delete the following unused functions:
- minFastInt
- maxFastInt
- uncheckedIShiftRA#
- castFastPtr
- panicDocFastInt and pprPanicFastInt
* rename panicFastInt back to panic#
These functions remain, since they actually do something:
* iUnbox
* bitAndFastInt
* bitOrFastInt
Test Plan: validate
Reviewers: austin, bgamari
Subscribers: rwbarton
Differential Revision: https://phabricator.haskell.org/D1141
GHC Trac Issues: #1405
Diffstat (limited to 'compiler/utils/Outputable.hs')
-rw-r--r-- | compiler/utils/Outputable.hs | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/compiler/utils/Outputable.hs b/compiler/utils/Outputable.hs index 948ae7d5df..93645d38fe 100644 --- a/compiler/utils/Outputable.hs +++ b/compiler/utils/Outputable.hs @@ -72,9 +72,9 @@ module Outputable ( mkUserStyle, cmdlineParserStyle, Depth(..), -- * Error handling and debugging utilities - pprPanic, pprSorry, assertPprPanic, pprPanicFastInt, pprPgmError, + pprPanic, pprSorry, assertPprPanic, pprPgmError, pprTrace, warnPprTrace, - trace, pgmError, panic, sorry, panicFastInt, assertPanic, + trace, pgmError, panic, sorry, assertPanic, pprDebugAndThen, ) where @@ -87,7 +87,6 @@ import {-# SOURCE #-} OccName( OccName ) import {-# SOURCE #-} StaticFlags( opt_PprStyle_Debug, opt_NoDebugOutput ) import FastString -import FastTypes import qualified Pretty import Util import Platform @@ -1032,10 +1031,6 @@ pprTrace str doc x | opt_NoDebugOutput = x | otherwise = pprDebugAndThen unsafeGlobalDynFlags trace (text str) doc x -pprPanicFastInt :: String -> SDoc -> FastInt --- ^ Specialization of pprPanic that can be safely used with 'FastInt' -pprPanicFastInt heading pretty_msg = panicDocFastInt heading pretty_msg - warnPprTrace :: Bool -> String -> Int -> SDoc -> a -> a -- ^ Just warn about an assertion failure, recording the given file and line number. -- Should typically be accessed with the WARN macros |