/* -----------------------------------------------------------------------------
- * $Id: RtsFlags.h,v 1.22 2000/03/08 17:48:24 simonmar Exp $
+ * $Id: RtsFlags.h,v 1.35 2001/08/07 09:20:52 simonmar Exp $
*
* (c) The GHC Team, 1998-1999
*
FILE *statsFile;
nat giveStats;
#define NO_GC_STATS 0
-#define SUMMARY_GC_STATS 1
-#define VERBOSE_GC_STATS 2
+#define COLLECT_GC_STATS 1
+#define ONELINE_GC_STATS 2
+#define SUMMARY_GC_STATS 3
+#define VERBOSE_GC_STATS 4
nat maxStkSize; /* in *words* */
nat initialStkSize; /* in *words* */
nat generations;
nat steps;
+ rtsBool squeezeUpdFrames;
- rtsBool forceGC; /* force a major GC every <interval> bytes */
- int forcingInterval; /* actually, stored as a number of *words* */
- rtsBool ringBell;
+ rtsBool compact;
+ double compactThreshold;
- rtsBool squeezeUpdFrames;
+ rtsBool ringBell;
+ rtsBool frontpanel;
};
/* Hack: this struct uses bitfields so that we can use a binary arg
rtsBool prof : 1; /* 512 */
rtsBool gran : 1; /* 1024 */
rtsBool par : 1; /* 2048 */
+
+ /* The object linker */
+ rtsBool linker : 1; /* 4096 */
};
-#if defined(PROFILING) || defined(PAR)
- /* with PROFILING, full cost-centre stuff (also PROFILING_FLAGS);
- with PAR, just the four fixed cost-centres.
- */
+#define MAX_DEBUG_OPTION 12
+#define DEBUG_MASK(n) ((nat)(ldexp(1,n)))
+#define MAX_DEBUG_MASK ((nat)(ldexp(1,(MAX_DEBUG_OPTION+1))-1))
+
struct COST_CENTRE_FLAGS {
unsigned int doCostCentres;
# define COST_CENTRES_SUMMARY 1
# define COST_CENTRES_ALL 3
# define COST_CENTRES_XML 4
- int ctxtSwitchTicks; /* derived */
int profilerTicks; /* derived */
int msecsPerTick; /* derived */
};
-#endif
#ifdef PROFILING
struct PROFILING_FLAGS {
unsigned int doHeapProfile;
+ nat profileFrequency; /* how often do you want */
+ /* to sample (in ms) */
+
+
# define NO_HEAP_PROFILING 0 /* N.B. Used as indexes into arrays */
# define HEAP_BY_CCS 1
# define HEAP_BY_MOD 2
# define HEAP_BY_DESCR 4
# define HEAP_BY_TYPE 5
-# define HEAP_BY_TIME 6
rtsBool showCCSOnException;
# define MODchar 'M'
# define DESCRchar 'D'
# define TYPEchar 'Y'
-# define TIMEchar 'T'
- char *ccSelector;
- char *modSelector;
- char *descrSelector;
- char *typeSelector;
- char *kindSelector;
+ char* modSelector;
+ char* descrSelector;
+ char* typeSelector;
+ char* ccSelector;
+
+
};
#elif defined(DEBUG)
# define NO_HEAP_PROFILING 0
# define HEAP_BY_INFOPTR 1
# define HEAP_BY_CLOSURE_TYPE 2
struct PROFILING_FLAGS {
- unsigned int doHeapProfile; /* heap profile using symbol table */
+ unsigned int doHeapProfile; /* heap profile using symbol table */
+
};
#endif /* DEBUG || PROFILING */
struct CONCURRENT_FLAGS {
- int ctxtSwitchTime; /* in milliseconds */
+ int ctxtSwitchTime; /* in milliseconds */
+ int ctxtSwitchTicks; /* derived */
};
#ifdef PAR
/* currently the same as GRAN_STATS_FLAGS */
struct PAR_STATS_FLAGS {
rtsBool Full; /* Full .gr profile (rtsTrue) or only END events? */
- // rtsBool Suppressed; /* No .gr profile at all */
+ rtsBool Suppressed; /* No .gr profile at all */
rtsBool Binary; /* Binary profile? (not yet implemented) */
rtsBool Sparks; /* Info on sparks in profile? */
rtsBool Heap; /* Info on heap allocs in profile? */
struct PAR_DEBUG_FLAGS {
/* flags to control debugging output in various subsystems */
rtsBool verbose : 1; /* 1 */
- rtsBool trace : 1; /* 2 */
+ rtsBool bq : 1; /* 2 */
rtsBool schedule : 1; /* 4 */
rtsBool free : 1; /* 8 */
rtsBool resume : 1; /* 16 */
rtsBool weight : 1; /* 32 */
rtsBool fetch : 1; /* 64 */
- rtsBool ack : 1; /* 128 */
- rtsBool fish : 1; /* 256 */
- rtsBool forward : 1; /* 512 */
+ rtsBool fish : 1; /* 128 */
+ rtsBool tables : 1; /* 256 */
+ rtsBool packet : 1; /* 512 */
rtsBool pack : 1; /* 1024 */
+ rtsBool paranoia : 1; /* 2048 */
};
-#define MAX_PAR_DEBUG_OPTION 10
+#define MAX_PAR_DEBUG_OPTION 11
#define PAR_DEBUG_MASK(n) ((nat)(ldexp(1,n)))
#define MAX_PAR_DEBUG_MASK ((nat)(ldexp(1,(MAX_PAR_DEBUG_OPTION+1))-1))
struct PAR_STATS_FLAGS ParStats; /* profile and stats output */
struct PAR_DEBUG_FLAGS Debug; /* debugging options */
rtsBool outputDisabled; /* Disable output for performance purposes */
+ rtsBool doFairScheduling; /* Fair-ish scheduling (round robin; no time-slices) */
nat packBufferSize;
+ nat thunksToPack; /* number of thunks in packet + 1 */
+ nat globalising; /* globalisation scheme */
nat maxLocalSparks; /* spark pool size */
nat maxThreads; /* thread pool size */
nat maxFishes; /* max number of active fishes */
struct GRAN_COST_FLAGS Costs; /* cost metric for simulation */
struct GRAN_DEBUG_FLAGS Debug; /* debugging options */
+ nat maxThreads; // ToDo: share with SMP and GUM
// rtsBool labelling;
nat packBufferSize;
nat packBufferSize_internal;