X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fincludes%2Foptions.h;h=7775e56cae2a2cdd99e792e19aab94651cf712a2;hb=42ec94ce2a3aa6686cccb12c8a78c91e2734d847;hp=ee546499b1da574bb17d98d3d18fbdaf78c1a9f6;hpb=c305dae8e856425ff775036c0c2410f83a55ed64;p=ghc-hetmet.git diff --git a/ghc/includes/options.h b/ghc/includes/options.h index ee54649..7775e56 100644 --- a/ghc/includes/options.h +++ b/ghc/includes/options.h @@ -13,8 +13,8 @@ * Hugs version 1.4, December 1997 * * $RCSfile: options.h,v $ - * $Revision: 1.3 $ - * $Date: 1999/01/13 16:26:37 $ + * $Revision: 1.16 $ + * $Date: 2000/01/06 11:57:11 $ * ------------------------------------------------------------------------*/ @@ -34,7 +34,7 @@ * for HUGSFLAGS in the registry (Win32 only). In all cases, use a * string of the form -P"...". */ -#define HUGSPATH "" +#define HUGSPATH "." /* The directory name which is substituted for the string "{Hugs}" * in a path variable. This normally points to where the Hugs libraries @@ -73,12 +73,6 @@ */ #define PATH_CANONICALIZATION 0 -/* Define if a command line editor is available and should be used. - * There are two choices of command line editor that can be used with Hugs: - * GNU readline and editline (from comp.sources.misc, vol 31, issue 71) - */ -#define USE_READLINE 0 - /* Define if you want the small startup banner. */ #define SMALL_BANNER 0 @@ -104,7 +98,7 @@ #define LARGE_HUGS 1 #define NUM_SYNTAX 100 -#define NUM_TUPLES 100 +#define NUM_TUPLES 37 #define NUM_OFFSETS 1024 #define NUM_CHARS 256 #if TREX @@ -124,7 +118,7 @@ #define MINIMUMHEAP Pick(7500, 19000, 19000) #define MAXIMUMHEAP Pick(32765, 0, 0) -#define DEFAULTHEAP Pick(28000, 50000, 300000) +#define DEFAULTHEAP Pick(28000, 50000, 350000) #define NUM_SCRIPTS Pick(64, 100, 100) #define NUM_MODULE NUM_SCRIPTS @@ -132,7 +126,7 @@ #define NUM_NAME Pick(1000, 2000, 16000) #define NUM_CLASSES Pick(30, 40, 80) #define NUM_INSTS Pick(200, 300, 600) -#define NUM_TEXT Pick(12000, 20000, 80000) +#define NUM_TEXT Pick(12000, 20000, 100000) #define NUM_TEXTH Pick(1, 10, 10) #define NUM_TYVARS Pick(800, 2000, 4000) #define NUM_STACK Pick(1800, 12000, 16000) @@ -173,68 +167,40 @@ /* Should quantifiers be displayed in error messages. * Warning: not consistently used. */ -#define DISPLAY_QUANTIFIERS 1 +#define DISPLAY_QUANTIFIERS 0 /* Flags to determine which raw representations and operations are available * Notes: - * o the INTEGER implementation is quite different from GHC's - * implementation so you usually don't PROVIDE_INTEGER if - * using GHC compiled code. * o if you turn everything on, you might end up with more then 256 * bytecodes: check the value of i_ccall (the lst bytecode) to check - * o Addrs are used to represent literal Strings in Hugs - so you can't - * really turn them off. - * o Either Int64 or Integer has to be provided so that we can - * define BIGNUMTYPE (below) + * (JRS), 22apr99: I don't think any of the #undef'd ones will work + * without attention. However, standard Haskell 98 is supported + * is supported without needing them. */ +#undef PROVIDE_STABLE +#undef PROVIDE_FOREIGN +#undef PROVIDE_WEAK +#undef PROVIDE_CONCURRENT +#undef PROVIDE_PTREQUALITY +#undef PROVIDE_COERCE -#define PROVIDE_INTEGER -#define PROVIDE_INT64 -#define PROVIDE_WORD -#define PROVIDE_ADDR -#define PROVIDE_STABLE -#define PROVIDE_FOREIGN -#define PROVIDE_WEAK -#define PROVIDE_ARRAY -#define PROVIDE_CONCURRENT -#define PROVIDE_PTREQUALITY -#define PROVIDE_COERCE - -/* The following aren't options at the moment - but could be - * #define PROVIDE_FLOAT - * #define PROVIDE_DOUBLE - */ -/* Flags to determine how Haskell types are mapped onto internal types. - * Note that this has to be an injection: you can't have two names - * for the same internal type. - * Also, the settings have to be consistent with GHC if GHC is being used. - */ +/* Set to 1 to use a non-GMP implementation of integer, in the + standalone Hugs. Set to 0 in the combined GHC-Hugs system, + in which case GNU MP will be used. +*/ +#define STANDALONE_INTEGER 1 -#define BIGNUM_IS_INTEGER 1 -#define BIGNUM_IS_INT64 0 +/* Enable a crude profiler which counts BCO entries, bytes allocated + and bytecode insns executed on a per-fn basis. Used for assessing + the effect of the simplifier/optimiser. +*/ +#undef CRUDE_PROFILING -#if BIGNUM_IS_INT64 -#define BIGNUMTYPE Int64 -#elif BIGNUM_IS_INTEGER -#define BIGNUMTYPE Integer -#else -#warning BIGNUMTYPE undefined -#endif /* Is the default default (Int,Double) or (Integer,Double)? */ -#define DEFAULT_BIGNUM 0 - -/* Should lambda lifter lift constant expressions out to top level? - * Experimental optimisation. - */ -#define LIFT_CONSTANTS 1 - -/* Should we run optimizer on Hugs code? - * Experimental optimisation. - */ -#define USE_HUGS_OPTIMIZER 1 +#define DEFAULT_BIGNUM 1 /* Are things being used in an interactive setting or a batch setting? * In an interactive setting, System.exitWith should not call _exit @@ -250,21 +216,11 @@ /* Turn on debugging output and some sanity checks */ -/*#define DEBUG */ -/*#define NDEBUG */ +/*#define DEBUG*/ -/* Make stack tags more informative than just their size. - * Helps when printing the stack and when running sanity checks. +/* NB: LAZY_BLACKHOLING has been moved up to Stg.h where both Hugs and GHC can see it, + * and EAGER_BLACKHOLING has been introduced also. KSW 1999-01. */ -/*#define DEBUG_EXTRA */ - -/* Turn lazy blackholing on/off. - * Warning: Lazy blackholing can't be disabled in GHC generated code. - * - * Using eager blackholing makes things easier to debug because - * the blackholes are more predicatable - but it's slower and less sexy. - */ -#define LAZY_BLACKHOLING /* Turn miniinterpreter on/off. * @@ -290,6 +246,10 @@ /* Doesn't work in current system - I don't know what the primops do */ #define TREX 0 +/* Define if :xplain should be enabled */ +#define EXPLAIN_INSTANCE_RESOLUTION 0 + + /* Define if you want to run Haskell code through a preprocessor * * Note that the :reload command doesn't know about any dependencies @@ -324,15 +284,6 @@ * these flags. * ------------------------------------------------------------------------*/ -/* Define if you want to be able to derive instances of each class. */ -#define DERIVE_EQ 1 -#define DERIVE_ORD 1 -#define DERIVE_ENUM 1 -#define DERIVE_IX 1 -#define DERIVE_SHOW 1 -#define DERIVE_READ 1 -#define DERIVE_BOUNDED 1 - /* Define if single-element dictionaries are implemented by newtype. * Should be turned on. Mostly used to make it easier to find which * bits of code implement this optimisation and as a way of documenting @@ -347,13 +298,6 @@ */ #define USE_ADDR_FOR_STRINGS 1 -/* turn this off to avoid wrapping int and float literals in "fromInt" - * or "fromFloat" */ -#define OVERLOADED_CONSTANTS 1 - -/* turn this off to remove the ultramagical treatment of the Eval class */ -#define EVAL_INSTANCES 0 - /* Define to include support for (n+k) patterns. * Warning: many people in the Haskell committee want to remove n+k patterns. */ @@ -370,7 +314,6 @@ /* Define if you want to use a low-level printer from within a debugger */ #define DEBUG_PRINTER 1 - /* -------------------------------------------------------------------------- * Experimental features * These are likely to disappear/change in future versions and should not