From e4535f121199aa3bc4735d5d069cd2a6306e2970 Mon Sep 17 00:00:00 2001 From: sof Date: Mon, 19 May 1997 00:22:46 +0000 Subject: [PATCH] [project @ 1997-05-19 00:22:46 by sof] Update for 2.02 --- ghc/compiler/HsVersions.h | 77 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 72 insertions(+), 5 deletions(-) diff --git a/ghc/compiler/HsVersions.h b/ghc/compiler/HsVersions.h index 2a2b376..955c5f9 100644 --- a/ghc/compiler/HsVersions.h +++ b/ghc/compiler/HsVersions.h @@ -24,23 +24,69 @@ you will screw up the layout where they are used in case expressions! #define CAT2(a,b)a/**/b #endif -#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 200 +#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ == 201 # define REALLY_HASKELL_1_3 # define SYN_IE(a) a # define EXP_MODULE(a) module a -# define IMPORT_DELOOPER(mod) import CAT2(mod,_1_3) +# define IMPORT_DELOOPER(mod) import mod # define IMPORT_1_3(mod) import mod # define _tagCmp compare # define _LT LT # define _EQ EQ # define _GT GT # define _Addr GHCbase.Addr +# define _ByteArray GHCbase.ByteArray +# define _MutableByteArray GHCbase.MutableByteArray +# define _MutableArray GHCbase.MutableArray +# define _RealWorld GHCbase.RealWorld +# define _ST GHCbase.ST +# define _ForeignObj GHCbase.ForeignObj +# define _runST STbase.runST +# define failWith fail +# define MkST ST +# define MkIOError(h,errt,msg) (errt msg) # define Text Show # define IMP_FASTSTRING() # define IMP_Ubiq() IMPORT_DELOOPER(Ubiq); import qualified GHCbase # define CHK_Ubiq() IMPORT_DELOOPER(Ubiq); import qualified GHCbase # define minInt (minBound::Int) # define maxInt (maxBound::Int) +#elif defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 202 +# define REALLY_HASKELL_1_3 +# define SYN_IE(a) a +# define EXP_MODULE(a) module a +# define IMPORT_DELOOPER(mod) import mod +# define IMPORT_1_3(mod) import mod +# define _CMP_TAG Ordering +# define _tagCmp compare +# define _LT LT +# define _EQ EQ +# define _GT GT +# define _Addr GlaExts.Addr +# define _ByteArray GlaExts.ByteArray +# define _MutableByteArray GlaExts.MutableByteArray +# define _MutableArray GlaExts.MutableArray +# define _RealWorld GlaExts.RealWorld +# define _ST GlaExts.ST +# define _ForeignObj Foreign.ForeignObj +# define _runST ST.runST +# define seqStrictlyST seqST +# define thenStrictlyST thenST +# define returnStrictlyST return +# define _readHandle IOHandle.readHandle +# define _writeHandle IOHandle.writeHandle +# define _newHandle IOHandle.newdHandle +# define MkST ST +# define failWith fail +# define MkIOError(h,errt,msg) (IOError (Just h) errt msg) +# define CCALL_THEN thenIO_Prim +# define _filePtr IOHandle.filePtr +# define Text Show +# define IMP_FASTSTRING() import FastString +# define IMP_Ubiq() import GlaExts ; import FastString +# define CHK_Ubiq() import GlaExts ; import FastString +# define minInt (minBound::Int) +# define maxInt (maxBound::Int) #else # define SYN_IE(a) a(..) # define EXP_MODULE(a) a.. @@ -49,6 +95,9 @@ you will screw up the layout where they are used in case expressions! # define IMP_FASTSTRING() import FastString # define IMP_Ubiq() IMPORT_DELOOPER(Ubiq) ; import FastString # define CHK_Ubiq() IMPORT_DELOOPER(Ubiq) ; import FastString +# define MkST +# define CCALL_THEN thenPrimIO +# define MkIOError(h,errt,msg) (errt msg) #endif #if __GLASGOW_HASKELL__ >= 26 && __GLASGOW_HASKELL__ < 200 @@ -65,6 +114,7 @@ you will screw up the layout where they are used in case expressions! #define FAST_INT Int# #define ILIT(x) (x#) #define IBOX(x) (I# (x)) +#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ <= 201 #define _ADD_ `plusInt#` #define _SUB_ `minusInt#` #define _MUL_ `timesInt#` @@ -76,11 +126,24 @@ you will screw up the layout where they are used in case expressions! #define _LE_ `leInt#` #define _GE_ `geInt#` #define _GT_ `gtInt#` +#else +#define _ADD_ +# +#define _SUB_ -# +#define _MUL_ *# +#define _DIV_ /# +#define _QUOT_ `quotInt#` +#define _NEG_ negateInt# +#define _EQ_ ==# +#define _LT_ <# +#define _LE_ <=# +#define _GE_ >=# +#define _GT_ ># +#endif #define FAST_BOOL Int# #define _TRUE_ 1# #define _FALSE_ 0# -#define _IS_TRUE_(x) ((x) `eqInt#` 1#) +#define _IS_TRUE_(x) ((x) _EQ_ 1#) #else {- ! __GLASGOW_HASKELL__ -} @@ -108,9 +171,13 @@ you will screw up the layout where they are used in case expressions! #if __GLASGOW_HASKELL__ >= 23 # define USE_FAST_STRINGS 1 -# if __GLASGOW_HASKELL__ < 200 +# if __GLASGOW_HASKELL__ < 200 || __GLASGOW_HASKELL__ >= 202 # define FAST_STRING FastString {-_PackedString -} -# define SLIT(x) (mkFastCharString (A# (x#))) {- (_packCString (A# x#)) -} +# if __GLASGOW_HASKELL__ < 200 +# define SLIT(x) (mkFastCharString (A# (x#))) +# else +# define SLIT(x) (mkFastCharString (GlaExts.A# (x#))) +# endif # define _CMP_STRING_ cmpPString /* cmpPString defined in utils/Util.lhs */ # define _NULL_ nullFastString {-_nullPS-} -- 1.7.10.4