From b261b142fde34cece4c3cbfc22b0121df72295c7 Mon Sep 17 00:00:00 2001 From: Richard Kistruck Date: Fri, 27 Apr 2007 15:37:16 +0100 Subject: [PATCH] Mps br/diag: variety.ii: now has diagnostics, and no logging (pro tem); mpm.h: DIAG() et al under control of DIAGNOSTICS; diag.c: under control of DIAGNOSTICS, plus add header and copyright. Copied from Perforce Change: 162214 ServerID: perforce.ravenbrook.com --- mps/code/config.h | 7 ++++-- mps/code/diag.c | 59 ++++++++++++++++++++++++++++++++++++++++++++--- mps/code/mpm.h | 34 +++++++++++++-------------- 3 files changed, 78 insertions(+), 22 deletions(-) diff --git a/mps/code/config.h b/mps/code/config.h index edf27000969..6b4d0163b08 100644 --- a/mps/code/config.h +++ b/mps/code/config.h @@ -54,10 +54,13 @@ #define CONFIG_LOG #elif defined(CONFIG_VAR_II) /* Ice, Internal; variety.ii (HotLog) */ +/* This WAS a hot logging variety. Now it's a hot diagnostic variety + * (non-logging), pro tem. RHSK 2007-04-27. + */ #define CONFIG_ASSERT #define CHECKLEVEL_INITIAL CheckLevelMINIMAL -/* no debug diagnostic statistic meters */ -#define CONFIG_LOG +#define CONFIG_DEBUG +/* no telemetry log events */ #endif diff --git a/mps/code/diag.c b/mps/code/diag.c index 5f79d92624a..b48dbf5ff27 100644 --- a/mps/code/diag.c +++ b/mps/code/diag.c @@ -1,12 +1,17 @@ -/*$Header$ - Implementation of diagnostic interface. -*/ +/* diag.c: MEMORY POOL MANAGER DIAGNOSTICS + * + * $Id$ + * Copyright (c) 2007 Ravenbrook Limited. See end of file for license. + * + */ #include #include "mpm.h" #include "mpslib.h" /* for mps_lib_stdout */ +#if defined(DIAGNOSTICS) + Bool DiagEnabledGlobal = TRUE; Bool DiagIsOn(void) @@ -21,3 +26,51 @@ mps_lib_FILE *DiagStream(void) } +#elif defined(DIAGNOSTICS_NONE) + +#else + +#error "No diagnostics configured." + +#endif + +/* C. COPYRIGHT AND LICENSE + * + * Copyright (C) 2001-2003 Ravenbrook Limited . + * All rights reserved. This is an open source license. Contact + * Ravenbrook for commercial licensing options. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Redistributions in any form must be accompanied by information on how + * to obtain complete source code for this software and any accompanying + * software that uses this software. The source code must either be + * included in the distribution or be available for no more than the cost + * of distribution plus a nominal fee, and must be freely redistributable + * under reasonable conditions. For an executable file, complete source + * code means the source code for all modules it contains. It does not + * include source code for modules or files that typically accompany the + * major components of the operating system on which the executable file + * runs. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR + * PURPOSE, OR NON-INFRINGEMENT, ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ diff --git a/mps/code/mpm.h b/mps/code/mpm.h index 11b2cb0416e..f10d491076b 100644 --- a/mps/code/mpm.h +++ b/mps/code/mpm.h @@ -934,29 +934,13 @@ extern void StackProbe(Size depth); #define STATISTIC_STAT(gather) BEGIN gather; END #define STATISTIC_WRITE(format, arg) (format), (arg), -#elif defined(DIAGNOSTICS_NONE) - -#define STATISTIC(gather) DISCARD(((gather), 0)) -#define STATISTIC_STAT(gather) DISCARD_STAT(gather) -#define STATISTIC_WRITE(format, arg) - -#else - -#error "No diagnostics configured." - -#endif - -/* Diagnostics */ - +/* Diagnostic Calculation and Output */ Bool DiagIsOn(void); mps_lib_FILE *DiagStream(void); - #define DIAG_STREAM (DiagStream()) - #define DIAG(s) BEGIN \ s \ END - /* * Note the macro argument args should have parens around it (in the * invocation); it is a variable number of arguments that we pass @@ -969,6 +953,22 @@ mps_lib_FILE *DiagStream(void); } \ ) +#elif defined(DIAGNOSTICS_NONE) + +#define STATISTIC(gather) DISCARD(((gather), 0)) +#define STATISTIC_STAT(gather) DISCARD_STAT(gather) +#define STATISTIC_WRITE(format, arg) + +/* Diagnostic Calculation and Output */ +#define DIAG(s) BEGIN END +#define DIAG_WRITEF(args) BEGIN END + +#else + +#error "No diagnostics configured." + +#endif + #endif /* mpm_h */