From d554406726c4bff45658e9e02cb34c5acfea7cea Mon Sep 17 00:00:00 2001
From: Richard Brooksby
Date: Sun, 26 Aug 2012 15:31:40 +0100
Subject: Using fast clock to timestamp events, making event logging much
quicker.
Copied from Perforce
Change: 179055
ServerID: perforce.ravenbrook.com
---
mps/code/w3vc9.bat | 55 ------------------------------------------------------
1 file changed, 55 deletions(-)
delete mode 100755 mps/code/w3vc9.bat
(limited to 'mps/code')
diff --git a/mps/code/w3vc9.bat b/mps/code/w3vc9.bat
deleted file mode 100755
index f418d16cc2a..00000000000
--- a/mps/code/w3vc9.bat
+++ /dev/null
@@ -1,55 +0,0 @@
-@rem impl.bat.gathconf: GATHERING A RELEASE FOR CONFIGURA
-@rem
-@rem $HopeName: !gathconf.bat(trunk.1) $
-@rem $Id$
-@rem Copyright (C) 2000 Harlequin Limited. All rights reserved.
-@rem Copyright (C) 2005-2008 Ravenbrook Limited. All rights reserved.
-
-
-IF DEFINED mpsreleasename (
-@echo "Adding vc9 build into mpsreleasename=%mpsreleasename%"
-) ELSE (
-@echo "Error: mpsreleasename is not defined."
-@echo "You must run w3build.bat first, then run VC9's vcvars32.bat, then run this script."
-exit /b
-)
-
-rmdir /q/s w3i3m9
-nmake /f w3i3m9.nmk VARIETY=we mps.lib mpsplan.lib mpsplcb.lib mpsdy.dll
-nmake /f w3i3m9.nmk VARIETY=hi mps.lib mpsplan.lib mpsplcb.lib mpsdy.dll
-nmake /f w3i3m9.nmk VARIETY=di mps.lib mpsplan.lib mpsplcb.lib mpsdy.dll
-nmake /f w3i3m9.nmk VARIETY=ci mps.lib mpsplan.lib mpsplcb.lib mpsdy.dll
-
-mkdir %mpsreleasename%\lib\w3i3m9
-
-mkdir %mpsreleasename%\lib\w3i3m9\we
-@echo we-%mpsreleasename% > %mpsreleasename%\lib\w3i3m9\we\we-%mpsreleasename%.txt
-copy w3i3m9\we\mps.lib %mpsreleasename%\lib\w3i3m9\we
-copy w3i3m9\we\mpsplan.lib %mpsreleasename%\lib\w3i3m9\we
-copy w3i3m9\we\mpsplcb.lib %mpsreleasename%\lib\w3i3m9\we
-copy w3i3m9\we\mpsdy.dll %mpsreleasename%\lib\w3i3m9\we
-copy w3i3m9\we\mpsdy.lib %mpsreleasename%\lib\w3i3m9\we
-
-mkdir %mpsreleasename%\lib\w3i3m9\hi
-@echo hi-%mpsreleasename% > %mpsreleasename%\lib\w3i3m9\hi\hi-%mpsreleasename%.txt
-copy w3i3m9\hi\mps.lib %mpsreleasename%\lib\w3i3m9\hi
-copy w3i3m9\hi\mpsplan.lib %mpsreleasename%\lib\w3i3m9\hi
-copy w3i3m9\hi\mpsplcb.lib %mpsreleasename%\lib\w3i3m9\hi
-copy w3i3m9\hi\mpsdy.dll %mpsreleasename%\lib\w3i3m9\hi
-copy w3i3m9\hi\mpsdy.lib %mpsreleasename%\lib\w3i3m9\hi
-
-mkdir %mpsreleasename%\lib\w3i3m9\di
-@echo di-%mpsreleasename% > %mpsreleasename%\lib\w3i3m9\di\di-%mpsreleasename%.txt
-copy w3i3m9\di\mps.lib %mpsreleasename%\lib\w3i3m9\di
-copy w3i3m9\di\mpsplan.lib %mpsreleasename%\lib\w3i3m9\di
-copy w3i3m9\di\mpsplcb.lib %mpsreleasename%\lib\w3i3m9\di
-copy w3i3m9\di\mpsdy.dll %mpsreleasename%\lib\w3i3m9\di
-copy w3i3m9\di\mpsdy.lib %mpsreleasename%\lib\w3i3m9\di
-
-mkdir %mpsreleasename%\lib\w3i3m9\ci
-@echo ci-%mpsreleasename% > %mpsreleasename%\lib\w3i3m9\ci\ci-%mpsreleasename%.txt
-copy w3i3m9\ci\mps.lib %mpsreleasename%\lib\w3i3m9\ci
-copy w3i3m9\ci\mpsplan.lib %mpsreleasename%\lib\w3i3m9\ci
-copy w3i3m9\ci\mpsplcb.lib %mpsreleasename%\lib\w3i3m9\ci
-copy w3i3m9\ci\mpsdy.dll %mpsreleasename%\lib\w3i3m9\ci
-copy w3i3m9\ci\mpsdy.lib %mpsreleasename%\lib\w3i3m9\ci
--
cgit v1.2.1
From 82bc1374643e8e357a984fefa550650c99f222fd Mon Sep 17 00:00:00 2001
From: Richard Brooksby
Date: Sat, 1 Sep 2012 00:01:03 +0100
Subject: Abolishing a bunch of varieties and reforming the hot variety to run
about as fast as white-hot.
See .
Copied from Perforce
Change: 179153
ServerID: perforce.ravenbrook.com
---
mps/code/check.h | 72 ++++++++++++++++++++++++++++++++-------------------
mps/code/comm.gmk | 33 +++---------------------
mps/code/config.h | 77 ++++++++++++++++++++++++++++++++++++++-----------------
mps/code/gc.gmk | 5 ++--
mps/code/gp.gmk | 1 -
5 files changed, 103 insertions(+), 85 deletions(-)
(limited to 'mps/code')
diff --git a/mps/code/check.h b/mps/code/check.h
index e58a9d04ced..26ce0ea965e 100644
--- a/mps/code/check.h
+++ b/mps/code/check.h
@@ -56,19 +56,32 @@ enum {
#elif defined(AVER_AND_CHECK)
#define AVER(cond) ASSERT(cond, #cond)
-#define AVERT(type, val) ASSERT(type ## Check(val), \
- "TypeCheck " #type ": " #val)
+
+#define AVERT(type, val) \
+ ASSERT(type ## Check(val), "TypeCheck " #type ": " #val)
+
+#if !defined(AVER_AND_CHECK_ALL)
+
+#define AVER_CRITICAL DISCARD
+#define AVERT_CRITICAL(type, val) DISCARD(type ## Check(val))
+
+#else /* AVER_AND_CHECK_ALL */
+
#define AVER_CRITICAL(cond) \
BEGIN \
- if (CheckLevel != CheckLevelMINIMAL) ASSERT(cond, #cond); \
+ if (CheckLevel != CheckLevelMINIMAL) \
+ ASSERT(cond, #cond); \
END
+
#define AVERT_CRITICAL(type, val) \
BEGIN \
if (CheckLevel != CheckLevelMINIMAL) \
ASSERT(type ## Check(val), "TypeCheck " #type ": " #val); \
END
-#else
+#endif /* AVER_AND_CHECK_ALL */
+
+#else /* AVER_AND_CHECK, not */
#error "No checking defined."
@@ -115,24 +128,34 @@ enum {
#if defined(AVER_AND_CHECK_NONE)
-
-#define CHECKS(type, val) DISCARD(CHECKT(type, val))
-#define CHECKL(cond) DISCARD(cond)
-#define CHECKD(type, val) DISCARD(CHECKT(type, val))
+#define CHECKS(type, val) DISCARD(CHECKT(type, val))
+#define CHECKL(cond) DISCARD(cond)
+#define CHECKD(type, val) DISCARD(CHECKT(type, val))
#define CHECKD_NOSIG(type, val) DISCARD((val) != NULL)
-#define CHECKU(type, val) DISCARD(CHECKT(type, val))
+#define CHECKU(type, val) DISCARD(CHECKT(type, val))
#define CHECKU_NOSIG(type, val) DISCARD((val) != NULL)
-
-#else
-
+#else /* AVER_AND_CHECK_NONE, not */
/* CHECKS -- Check Signature */
/* (if CheckLevel == CheckLevelMINIMAL, this is all we check) */
-#define CHECKS(type, val) ASSERT(CHECKT(type, val), \
- "SigCheck " #type ": " #val)
+#define CHECKS(type, val) \
+ ASSERT(CHECKT(type, val), "SigCheck " #type ": " #val)
+#if !defined(AVER_AND_CHECK_ALL)
+
+/* FIXME: This gives comparable performance to white-hot when compiling
+ using mps.c and -O (to get check methods inlined), but is it a bit
+ too minimal? How much do we rely on check methods? */
+
+#define CHECKL(cond) DISCARD(cond)
+#define CHECKD(type, val) DISCARD(CHECKT(type, val))
+#define CHECKD_NOSIG(type, val) DISCARD((val) != NULL)
+#define CHECKU(type, val) DISCARD(CHECKT(type, val))
+#define CHECKU_NOSIG(type, val) DISCARD((val) != NULL)
+
+#else /* AVER_AND_CHECK_ALL */
/* CHECKL -- Check Local Invariant
*
@@ -162,12 +185,10 @@ enum {
NOOP; \
break; \
case CheckLevelSHALLOW: \
- ASSERT(CHECKT(type, val), \
- "SigCheck " #type ": " #val); \
+ CHECKS(type, val); \
break; \
case CheckLevelDEEP: \
- ASSERT(type ## Check(val), \
- "TypeCheck " #type ": " #val); \
+ ASSERT(type ## Check(val), "TypeCheck " #type ": " #val); \
break; \
} \
END
@@ -182,12 +203,10 @@ enum {
NOOP; \
break; \
case CheckLevelSHALLOW: \
- ASSERT((val) != NULL, \
- "NullCheck " #type ": " #val); \
+ ASSERT((val) != NULL, "NullCheck " #type ": " #val); \
break; \
case CheckLevelDEEP: \
- ASSERT(type ## Check(val), \
- "TypeCheck " #type ": " #val); \
+ ASSERT(type ## Check(val), "TypeCheck " #type ": " #val); \
break; \
} \
END
@@ -203,8 +222,7 @@ enum {
break; \
case CheckLevelSHALLOW: \
case CheckLevelDEEP: \
- ASSERT(CHECKT(type, val), \
- "SigCheck " #type ": " #val); \
+ CHECKS(type, val); \
break; \
} \
END
@@ -220,14 +238,14 @@ enum {
break; \
case CheckLevelSHALLOW: \
case CheckLevelDEEP: \
- ASSERT((val) != NULL, \
- "NullCheck " #type ": " #val); \
+ ASSERT((val) != NULL, "NullCheck " #type ": " #val); \
break; \
} \
END
+#endif /* AVER_AND_CHECK_ALL */
-#endif
+#endif /* AVER_AND_CHECK_NONE */
/* CHECKLVALUE &c -- type compatibility checking
diff --git a/mps/code/comm.gmk b/mps/code/comm.gmk
index 9141c34c9cd..1726e451543 100644
--- a/mps/code/comm.gmk
+++ b/mps/code/comm.gmk
@@ -16,8 +16,6 @@
# information, and any optimization possible
# CFLAGSOPT a list of flags for compilations with maximum
# optimization, and any debug info possible
-# CFLAGSOPTNODEBUG a list of flags for compilations with maximum
-# optimization, and absolutely no debug info
# CC the command for the C compiler
# LINKFLAGS a list of flags passed to the linker
# ARFLAGSPFM platform-specific flags for ar
@@ -64,9 +62,6 @@ endif
ifndef CFLAGSOPT
error "comm.gmk: CFLAGSOPT not defined"
endif
-ifndef CFLAGSOPTNODEBUG
-error "comm.gmk: CFLAGSOPTNODEBUG not defined"
-endif
#
# %%PART: Add checks for the parameter with the sources for the new
@@ -122,13 +117,9 @@ CFLAGSCOMMON = $(PFMDEFS) $(CFLAGSTARGET) $(CFLAGSCOMPILER)
# variety.
# These flags are added to compilations for the indicated variety.
-CFWE = -DCONFIG_VAR_WE -DNDEBUG $(CFLAGSOPTNODEBUG)
-CFWI = -DCONFIG_VAR_WI -DNDEBUG $(CFLAGSOPT)
-CFHE = -DCONFIG_VAR_HE -DNDEBUG $(CFLAGSOPTNODEBUG)
-CFHI = -DCONFIG_VAR_HI -DNDEBUG $(CFLAGSOPT)
+CFWE = -DCONFIG_VAR_WE -DNDEBUG $(CFLAGSOPT)
+CFHE = -DCONFIG_VAR_HE -DNDEBUG $(CFLAGSOPT)
CFDI = -DCONFIG_VAR_DI -DNDEBUG $(CFLAGSOPT)
-CFII = -DCONFIG_VAR_II -DNDEBUG $(CFLAGSOPT)
-CFCE = -DCONFIG_VAR_CE $(CFLAGSOPTNODEBUG)
CFCI = -DCONFIG_VAR_CI $(CFLAGSDEBUG)
CFTI = -DCONFIG_VAR_TI $(CFLAGSDEBUG)
@@ -137,24 +128,12 @@ CFTI = -DCONFIG_VAR_TI $(CFLAGSDEBUG)
ifeq ($(VARIETY),we)
CFLAGS=$(CFLAGSCOMMON) $(CFWE)
else
-ifeq ($(VARIETY),wi)
-CFLAGS=$(CFLAGSCOMMON) $(CFWI)
-else
ifeq ($(VARIETY),he)
CFLAGS=$(CFLAGSCOMMON) $(CFHE)
else
-ifeq ($(VARIETY),hi)
-CFLAGS=$(CFLAGSCOMMON) $(CFHI)
-else
ifeq ($(VARIETY),di)
CFLAGS=$(CFLAGSCOMMON) $(CFDI)
else
-ifeq ($(VARIETY),ii)
-CFLAGS=$(CFLAGSCOMMON) $(CFII)
-else
-ifeq ($(VARIETY),ce)
-CFLAGS=$(CFLAGSCOMMON) $(CFCE)
-else
ifeq ($(VARIETY),ci)
CFLAGS=$(CFLAGSCOMMON) $(CFCI)
else
@@ -166,10 +145,6 @@ endif
endif
endif
endif
-endif
-endif
-endif
-endif
ARFLAGS=rc$(ARFLAGSPFM)
@@ -328,10 +303,8 @@ clean: phony
ifdef TARGET
ifndef VARIETY
target: phony
- $(MAKE) -f $(PFM).gmk VARIETY=hi variety
+ $(MAKE) -f $(PFM).gmk VARIETY=he variety
$(MAKE) -f $(PFM).gmk VARIETY=ci variety
- $(MAKE) -f $(PFM).gmk VARIETY=di variety
- $(MAKE) -f $(PFM).gmk VARIETY=we variety
endif
endif
diff --git a/mps/code/config.h b/mps/code/config.h
index 29abad920f7..86b3a22b610 100644
--- a/mps/code/config.h
+++ b/mps/code/config.h
@@ -21,36 +21,46 @@
/* Variety Configuration */
-/* First translate GG build directives into better ones.
- */
-
-#ifdef CONFIG_DEBUG
-/* Translate CONFIG_DEBUG to CONFIG_STATS, because that's what it */
-/* means. It's got nothing to do with debugging! RHSK 2007-06-29 */
-#define CONFIG_STATS
-#endif
+/* Then deal with CONFIG_VAR_* build directives. These are translated into
+ the directives CONFIG_ASSERT, CONFIG_STATS, CONFIG_LOG, etc. which control
+ actual compilation features. */
-
-/* Then deal with old-style CONFIG_VAR_* build directives. These
- * must be translated into the new directives CONFIG_ASSERT,
- * CONFIG_STATS, and CONFIG_LOG.
+/* CONFIG_VAR_WE -- the white-hot variety
*
- * One day the old build system may be converted to use the new
- * directives.
+ * This variety switches off as many features as possible for maximum
+ * performance, but is therefore unsafe and undebuggable. It is not intended
+ * for use, but for comparison with the hot variety, to check that assertion,
+ * logging, etc. have negligible overhead.
*/
-#if defined(CONFIG_VAR_WI) || defined(CONFIG_VAR_WE) /* White-hot varieties */
+#if defined(CONFIG_VAR_WE) /* White-hot variety */
/* no asserts */
/* ... so CHECKLEVEL_INITIAL is irrelevant */
/* no statistic meters */
/* no telemetry log events */
-#elif defined(CONFIG_VAR_HI) || defined(CONFIG_VAR_HE) /* Hot varieties */
+
+/* CONFIG_VAR_HE -- the hot variety
+ *
+ * This variety is the default variety for distribution in products that use
+ * the MPS. It has maximum performance while retaining a good level of
+ * consistency checking and allowing some debugging and telemetry features.
+ */
+
+#elif defined(CONFIG_VAR_HE) /* Hot variety */
#define CONFIG_ASSERT
#define CHECKLEVEL_INITIAL CheckLevelMINIMAL
/* no statistic meters */
/* no telemetry log events */
+
+/* CONFIG_VAR_DI -- diagnostic variety
+ *
+ * Deprecated. The diagnostic variety prints messages about the internals
+ * of the MPS to an output stream. This is being replaced by an extended
+ * telemetry system. RB 2012-08-31
+ */
+
#elif defined(CONFIG_VAR_DI) /* Diagnostic variety */
#define CONFIG_ASSERT
#define CHECKLEVEL_INITIAL CheckLevelMINIMAL
@@ -63,24 +73,38 @@
/* #define DIAG_WITH_PRINTF */
/* no telemetry log events */
-#elif defined(CONFIG_VAR_CI) || defined(CONFIG_VAR_CE) /* Cool varieties */
+
+/* CONFIG_VAR_CI -- cool variety
+ *
+ * The cool variety is intended for use when developing an integration with
+ * the MPS or debugging memory problems or collecting detailed telemetry
+ * data for performance analysis. It has more thorough consistency checking
+ * and data collection and output, and full debugging information.
+ */
+
+#elif defined(CONFIG_VAR_CI) /* Cool variety */
#define CONFIG_ASSERT
+#define CONFIG_ASSERT_ALL
/* ... let PRODUCT determine CHECKLEVEL_INITIAL */
#define CONFIG_STATS
/* no telemetry log events */
+
+/* CONFIG_VAR_TI -- telemetry variety
+ *
+ * Deprecated. This is the variety with event logging to a telemetry stream.
+ * Currently being reworked to retain event logging with negligible overhead
+ * on all other varieties. RB 2012-08-31
+ */
+
#elif defined(CONFIG_VAR_TI) /* Telemetry, Internal; variety.ti */
#define CONFIG_ASSERT
+#define CONFIG_ASSERT_ALL
/* ... let PRODUCT determine CHECKLEVEL_INITIAL */
#define CONFIG_STATS
#define CONFIG_LOG
-#elif defined(CONFIG_VAR_II) /* Ice, Internal; variety.ii (HotLog) */
-#define CONFIG_ASSERT
-#define CHECKLEVEL_INITIAL CheckLevelMINIMAL
-/* no statistic meters */
-#define CONFIG_LOG
-#endif
+#endif /* CONFIG_VAR_* */
/* Build Features */
@@ -90,8 +114,13 @@
/* asserts: AVER, AVERT, NOTREACHED, CHECKx */
/* note: a direct call to ASSERT() will *still* fire */
#define AVER_AND_CHECK
+#if defined(CONFIG_ASSERT_ALL)
+#define AVER_AND_CHECK_ALL
+#define MPS_ASSERT_STRING "assertastic"
+#else /* CONFIG_ASSERT_ALL, not */
#define MPS_ASSERT_STRING "asserted"
-#else
+#endif /* CONFIG_ASSERT_ALL */
+#else /* CONFIG_ASSERT, not */
#define AVER_AND_CHECK_NONE
#define MPS_ASSERT_STRING "nonasserted"
#endif
diff --git a/mps/code/gc.gmk b/mps/code/gc.gmk
index 75b83bf8118..2aeb61cdbc1 100644
--- a/mps/code/gc.gmk
+++ b/mps/code/gc.gmk
@@ -13,9 +13,8 @@ CFLAGSCOMPILER := \
-Wstrict-prototypes -Wmissing-prototypes \
-Winline -Waggregate-return -Wnested-externs \
-Wcast-qual -Wshadow
-CFLAGSDEBUG = -g -ggdb3
-CFLAGSOPT = -O -g -ggdb3
-CFLAGSOPTNODEBUG = -O -g0
+CFLAGSDEBUG = -O0 -g
+CFLAGSOPT = -O3 -g
# gcc -MM generates a dependency line of the form:
# thing.o : thing.c ...
diff --git a/mps/code/gp.gmk b/mps/code/gp.gmk
index 229064d3055..8e16b524c38 100644
--- a/mps/code/gp.gmk
+++ b/mps/code/gp.gmk
@@ -16,7 +16,6 @@ CFLAGSCOMPILER = \
-Wcast-qual -Wshadow -pg
CFLAGSDEBUG = -g -ggdb3
CFLAGSOPT = -O -g -ggdb3
-CFLAGSOPTNODEBUG = -O -g0
# gcc -MM generates a dependency line of the form:
# thing.o : thing.c ...
--
cgit v1.2.1
From 4265ff2c625a8655d682baf86a690bed9025623a Mon Sep 17 00:00:00 2001
From: Richard Brooksby
Date: Sat, 1 Sep 2012 10:05:30 +0100
Subject: Tidying up check.h and adding lots of design documentation.
Copied from Perforce
Change: 179154
ServerID: perforce.ravenbrook.com
---
mps/code/check.h | 280 +++++++++++++++++++++++++++++++------------------------
1 file changed, 156 insertions(+), 124 deletions(-)
(limited to 'mps/code')
diff --git a/mps/code/check.h b/mps/code/check.h
index 26ce0ea965e..78334f8d7d3 100644
--- a/mps/code/check.h
+++ b/mps/code/check.h
@@ -17,6 +17,18 @@
* will throw the code away, but check its syntax.
*
* .trans.level-check: CheckLevel itself is not checked anywhere.
+ *
+ * .careful: BE CAREFUL when changing this file. It is easy to make mistakes
+ * and change the checking level in a variety and thereby its performance
+ * without realising it. This has happened before. Eyeball the preprocessor
+ * output for each variety. For example:
+ *
+ * cc -E -DCONFIG_PROD_MPS -DCONFIG_VAR_WE trace.c
+ * cc -E -DCONFIG_PROD_MPS -DCONFIG_VAR_HE trace.c
+ * cc -E -DCONFIG_PROD_MPS -DCONFIG_VAR_CI trace.c
+ *
+ * Then look at TraceCheck to make sure checking is right, TraceAddWhite
+ * for general assertions, and TraceFix for the critical path assertions.
*/
#ifndef check_h
@@ -27,7 +39,38 @@
#include "mpslib.h"
-/* CheckLevel -- Control check method behaviour */
+/* ASSERT -- basic assertion
+ *
+ * The ASSERT macro is equivalent to the ISO C assert() except that it is
+ * always defined, and uses the assertion handler from the MPS plinth, which
+ * can be replaced by the client code.
+ *
+ * It is not intended for direct use within the MPS. Use AVER and CHECK
+ * macros, which can be controlled by both build and run-time configuration.
+ */
+
+#define ASSERT(cond, condstring) \
+ BEGIN \
+ if (cond) NOOP; else \
+ mps_lib_assert_fail(condstring "\n" __FILE__ "\n" STR(__LINE__)); \
+ END
+
+#define ASSERT_TYPECHECK(type, val) \
+ ASSERT(type ## Check(val), "TypeCheck " #type ": " #val)
+
+#define ASSERT_NULLCHECK(type, val) \
+ ASSERT((val) != NULL, "NullCheck " #type ": " #val)
+
+
+/* CheckLevel -- control for check method behaviour
+ *
+ * When the MPS is build with AVER_AND_CHECK_ALL (in a "cool" variety) the
+ * static variable CheckLevel controls the frequency and detail of
+ * consistency checking on structures.
+ *
+ * FIXME: This should be initialised from an environment variable and have
+ * an interface in mps.h.
+ */
extern unsigned CheckLevel;
@@ -43,29 +86,34 @@ enum {
/* AVER, AVERT -- MPM assertions
*
- * AVER and AVERT are used to assert conditions in the code.
+ * AVER and AVERT are used to assert conditions in the code. AVER checks
+ * an expression. AVERT checks that a value is of the correct type and
+ * may perform consistency checks on the value.
+ *
+ * AVER and AVERT are on by default, and check conditions even in "hot"
+ * varieties intended to work in production. To avoid the cost of a check
+ * in critical parts of the code, use AVER_CRITICAL and AVERT_CRITICAL,
+ * but only when you've *proved* that this makes a difference to performance
+ * that affects requirements.
*/
#if defined(AVER_AND_CHECK_NONE)
#define AVER(cond) DISCARD(cond)
#define AVERT(type, val) DISCARD(type ## Check(val))
-#define AVER_CRITICAL(cond) DISCARD(cond)
-#define AVERT_CRITICAL(type, val) DISCARD(type ## Check(val))
-#elif defined(AVER_AND_CHECK)
+#else
#define AVER(cond) ASSERT(cond, #cond)
-
#define AVERT(type, val) \
ASSERT(type ## Check(val), "TypeCheck " #type ": " #val)
-#if !defined(AVER_AND_CHECK_ALL)
+#endif
-#define AVER_CRITICAL DISCARD
-#define AVERT_CRITICAL(type, val) DISCARD(type ## Check(val))
+#if defined(AVER_AND_CHECK_ALL)
-#else /* AVER_AND_CHECK_ALL */
+/* FIXME: Find out whether these tests on checklevel have any performance
+ impact and remove them if possible. */
#define AVER_CRITICAL(cond) \
BEGIN \
@@ -79,38 +127,31 @@ enum {
ASSERT(type ## Check(val), "TypeCheck " #type ": " #val); \
END
-#endif /* AVER_AND_CHECK_ALL */
-
-#else /* AVER_AND_CHECK, not */
+#else
-#error "No checking defined."
+#define AVER_CRITICAL DISCARD
+#define AVERT_CRITICAL(type, val) DISCARD(type ## Check(val))
#endif
-/* internals for actually asserting */
-
-#define ASSERT(cond, condstring) \
- BEGIN \
- if (cond) NOOP; else \
- mps_lib_assert_fail(condstring "\n" __FILE__ "\n" STR(__LINE__)); \
- END
+/* NOTREACHED -- control should never reach this statement
+ *
+ * This is a sort of AVER; it is equivalent to AVER(FALSE), but will produce
+ * a more informative message.
+ */
+#if defined(AVER_AND_CHECK_NONE)
-/* NOTREACHED -- control should never reach this statement */
-/* This is a sort of AVER; it is equivalent to AVER(FALSE). */
+#define NOTREACHED NOOP
-#if defined(AVER_AND_CHECK)
+#else
#define NOTREACHED \
BEGIN \
mps_lib_assert_fail("unreachable code" "\n" __FILE__ "\n" STR(__LINE__)); \
END
-#else
-
-#define NOTREACHED NOOP
-
#endif
@@ -126,126 +167,117 @@ enum {
#define CHECKT(type, val) ((val) != NULL && (val)->sig == type ## Sig)
-#if defined(AVER_AND_CHECK_NONE)
+/* CHECKS -- Check Signature
+ *
+ * (if CheckLevel == CheckLevelMINIMAL, this is all we check)
+ */
+#if defined(AVER_AND_CHECK_NONE)
#define CHECKS(type, val) DISCARD(CHECKT(type, val))
-#define CHECKL(cond) DISCARD(cond)
-#define CHECKD(type, val) DISCARD(CHECKT(type, val))
-#define CHECKD_NOSIG(type, val) DISCARD((val) != NULL)
-#define CHECKU(type, val) DISCARD(CHECKT(type, val))
-#define CHECKU_NOSIG(type, val) DISCARD((val) != NULL)
-
-#else /* AVER_AND_CHECK_NONE, not */
-
-/* CHECKS -- Check Signature */
-/* (if CheckLevel == CheckLevelMINIMAL, this is all we check) */
-
+#else
#define CHECKS(type, val) \
ASSERT(CHECKT(type, val), "SigCheck " #type ": " #val)
+#endif
-#if !defined(AVER_AND_CHECK_ALL)
-
-/* FIXME: This gives comparable performance to white-hot when compiling
- using mps.c and -O (to get check methods inlined), but is it a bit
- too minimal? How much do we rely on check methods? */
-
-#define CHECKL(cond) DISCARD(cond)
-#define CHECKD(type, val) DISCARD(CHECKT(type, val))
-#define CHECKD_NOSIG(type, val) DISCARD((val) != NULL)
-#define CHECKU(type, val) DISCARD(CHECKT(type, val))
-#define CHECKU_NOSIG(type, val) DISCARD((val) != NULL)
-
-#else /* AVER_AND_CHECK_ALL */
-/* CHECKL -- Check Local Invariant
+/* CHECKL, CHECKD, CHECKU -- local, "down", and "up" checks
+ *
+ * Each type should have a function defined called Check that checks
+ * the consistency of the type. This function should return TRUE iff the
+ * value passes consistency checks. In general, it should assert otherwise,
+ * but we allow for the possibility of returning FALSE in this case for
+ * configuration adaptability.
+ *
+ * For structure types, the check function should:
*
- * Could make this an expression using ?:
+ * - check its own signature with CHECKS
+ *
+ * - check fields that it "owns" with CHECKL, like asserts
+ *
+ * - check "down" values which are its "children" with CHEKCD
+ *
+ * - check "up" values which are its "parents" with CHECKU.
+ *
+ * These various checks will be compiled out or compiled to be controlled
+ * by CheckLevel.
+ *
+ * For example:
+ *
+ * Bool MessageCheck(Message message)
+ * {
+ * CHECKS(Message, message);
+ * CHECKU(Arena, message->arena);
+ * CHECKD(MessageClass, message->class);
+ * CHECKL(RingCheck(&message->queueRing));
+ * CHECKL(MessageIsClocked(message) || (message->postedClock == 0));
+ * return TRUE;
+ * }
+ *
+ * The parent/child distinction depends on the structure, but in the MPS
+ * the Arena has no parents, and has children which are Pools, which have
+ * children which are Segments, etc.
+ *
+ * The important thing is to have a partial order on types so that recursive
+ * checking will terminate. When CheckLevel is set to DEEP, checking will
+ * recurse into check methods for children, but will only do a shallow
+ * signature check on parents, avoiding infinite regression.
+ *
+ * FIXME: Switching on every CHECK line doesn't compile very well, because
+ * the compiler can't tell that CheckLevel won't change between function
+ * calls and can't lift out the test. Is there a better arrangement,
+ * perhaps by reading CheckLevel into a local variable?
*/
-#define CHECKL(cond) \
- BEGIN \
- switch(CheckLevel) { \
- case CheckLevelMINIMAL: \
- NOOP; \
- break; \
- case CheckLevelSHALLOW: \
- case CheckLevelDEEP: \
- ASSERT(cond, #cond); \
- break; \
- } \
- END
-
+#if defined(AVER_AND_CHECK_ALL)
-/* CHECKD -- Check Down */
-
-#define CHECKD(type, val) \
+#define CHECK_BY_LEVEL(minimal, shallow, deep) \
BEGIN \
- switch(CheckLevel) { \
- case CheckLevelMINIMAL: \
- NOOP; \
- break; \
- case CheckLevelSHALLOW: \
- CHECKS(type, val); \
- break; \
- case CheckLevelDEEP: \
- ASSERT(type ## Check(val), "TypeCheck " #type ": " #val); \
- break; \
+ switch (CheckLevel) { \
+ case CheckLevelDEEP: deep; break; \
+ case CheckLevelSHALLOW: shallow; break; \
+ default: NOTREACHED; /* fall through */ \
+ case CheckLevelMINIMAL: minimal; break; \
} \
END
+#define CHECKL(cond) \
+ CHECK_BY_LEVEL(NOOP, \
+ ASSERT(cond, #cond), \
+ ASSERT(cond, #cond))
-/* CHECKD_NOSIG -- Check Down for a type with no signature */
+#define CHECKD(type, val) \
+ CHECK_BY_LEVEL(NOOP, \
+ CHECKS(type, val), \
+ ASSERT_TYPECHECK(type, val))
#define CHECKD_NOSIG(type, val) \
- BEGIN \
- switch(CheckLevel) { \
- case CheckLevelMINIMAL: \
- NOOP; \
- break; \
- case CheckLevelSHALLOW: \
- ASSERT((val) != NULL, "NullCheck " #type ": " #val); \
- break; \
- case CheckLevelDEEP: \
- ASSERT(type ## Check(val), "TypeCheck " #type ": " #val); \
- break; \
- } \
- END
-
-
-/* CHECKU -- Check Up */
+ CHECK_BY_LEVEL(NOOP, \
+ ASSERT_NULLCHECK(type, val), \
+ ASSERT_TYPECHECK(type, val))
#define CHECKU(type, val) \
- BEGIN \
- switch(CheckLevel) { \
- case CheckLevelMINIMAL: \
- NOOP; \
- break; \
- case CheckLevelSHALLOW: \
- case CheckLevelDEEP: \
- CHECKS(type, val); \
- break; \
- } \
- END
+ CHECK_BY_LEVEL(NOOP, \
+ CHECKS(type, val), \
+ CHECKS(type, val))
+#define CHECKU_NOSIG(type, val) \
+ CHECK_BY_LEVEL(NOOP, \
+ ASSERT_NULLCHECK(type, val), \
+ ASSERT_NULLCHECK(type, val))
-/* CHECKU_NOSIG -- Check Up for a type with no signature */
+#else /* AVER_AND_CHECK_ALL, not */
-#define CHECKU_NOSIG(type, val) \
- BEGIN \
- switch(CheckLevel) { \
- case CheckLevelMINIMAL: \
- NOOP; \
- break; \
- case CheckLevelSHALLOW: \
- case CheckLevelDEEP: \
- ASSERT((val) != NULL, "NullCheck " #type ": " #val); \
- break; \
- } \
- END
+/* FIXME: This gives comparable performance to white-hot when compiling
+ using mps.c and -O (to get check methods inlined), but is it a bit
+ too minimal? How much do we rely on check methods? */
-#endif /* AVER_AND_CHECK_ALL */
+#define CHECKL(cond) DISCARD(cond)
+#define CHECKD(type, val) DISCARD(CHECKT(type, val))
+#define CHECKD_NOSIG(type, val) DISCARD((val) != NULL)
+#define CHECKU(type, val) DISCARD(CHECKT(type, val))
+#define CHECKU_NOSIG(type, val) DISCARD((val) != NULL)
-#endif /* AVER_AND_CHECK_NONE */
+#endif /* AVER_AND_CHECK_ALL */
/* CHECKLVALUE &c -- type compatibility checking
--
cgit v1.2.1
From 89a685f16488555436a7e70782ab3ac6132a59bf Mon Sep 17 00:00:00 2001
From: Richard Brooksby
Date: Sat, 1 Sep 2012 10:18:08 +0100
Subject: Renaming some check* macros with more accurate names, making
remaining check* macros similar in function.
Copied from Perforce
Change: 179155
ServerID: perforce.ravenbrook.com
---
mps/code/arena.c | 8 ++--
mps/code/arenavm.c | 4 +-
mps/code/buffer.c | 8 ++--
mps/code/cbs.c | 2 +-
mps/code/check.h | 36 ++++++++----------
mps/code/dbgpool.c | 2 +-
mps/code/dbgpooli.c | 8 ++--
mps/code/eventpro.c | 18 ++++-----
mps/code/eventrep.c | 10 ++---
mps/code/global.c | 4 +-
mps/code/mpsi.c | 106 ++++++++++++++++++++++++++--------------------------
mps/code/pool.c | 2 +-
mps/code/poolamc.c | 12 +++---
mps/code/poolams.c | 10 ++---
mps/code/poolmrg.c | 4 +-
mps/code/poolmv.c | 4 +-
mps/code/poolmv2.c | 4 +-
mps/code/poolmvff.c | 4 +-
mps/code/root.c | 4 +-
mps/code/seg.c | 8 ++--
mps/code/vmw3.c | 4 +-
21 files changed, 128 insertions(+), 134 deletions(-)
(limited to 'mps/code')
diff --git a/mps/code/arena.c b/mps/code/arena.c
index 704d13f60db..c3fe88ebf19 100644
--- a/mps/code/arena.c
+++ b/mps/code/arena.c
@@ -26,7 +26,7 @@ static void ArenaTrivCompact(Arena arena, Trace trace);
static Res ArenaTrivDescribe(Arena arena, mps_lib_FILE *stream)
{
- if (!CHECKT(Arena, arena)) return ResFAIL;
+ if (!TESTT(Arena, arena)) return ResFAIL;
if (stream == NULL) return ResFAIL;
/* .describe.triv.never-called-from-subclass-method:
@@ -324,7 +324,7 @@ Res ArenaDescribe(Arena arena, mps_lib_FILE *stream)
Res res;
Size reserved;
- if (!CHECKT(Arena, arena)) return ResFAIL;
+ if (!TESTT(Arena, arena)) return ResFAIL;
if (stream == NULL) return ResFAIL;
res = WriteF(stream, "Arena $P {\n", (WriteFP)arena,
@@ -396,7 +396,7 @@ Res ArenaDescribeTracts(Arena arena, mps_lib_FILE *stream)
Addr oldLimit, base, limit;
Size size;
- if (!CHECKT(Arena, arena)) return ResFAIL;
+ if (!TESTT(Arena, arena)) return ResFAIL;
if (stream == NULL) return ResFAIL;
b = TractFirst(&tract, arena);
@@ -481,7 +481,7 @@ Res ControlDescribe(Arena arena, mps_lib_FILE *stream)
{
Res res;
- if (!CHECKT(Arena, arena)) return ResFAIL;
+ if (!TESTT(Arena, arena)) return ResFAIL;
if (stream == NULL) return ResFAIL;
res = PoolDescribe(ArenaControlPool(arena), stream);
diff --git a/mps/code/arenavm.c b/mps/code/arenavm.c
index 81caf8bead5..87d7a797d37 100644
--- a/mps/code/arenavm.c
+++ b/mps/code/arenavm.c
@@ -202,10 +202,10 @@ static Res VMArenaDescribe(Arena arena, mps_lib_FILE *stream)
VMArena vmArena;
Index gen;
- if (!CHECKT(Arena, arena)) return ResFAIL;
+ if (!TESTT(Arena, arena)) return ResFAIL;
if (stream == NULL) return ResFAIL;
vmArena = Arena2VMArena(arena);
- if (!CHECKT(VMArena, vmArena)) return ResFAIL;
+ if (!TESTT(VMArena, vmArena)) return ResFAIL;
/* Describe the superclass fields first via next-method call */
/* ...but the next method is ArenaTrivDescribe, so don't call it;
diff --git a/mps/code/buffer.c b/mps/code/buffer.c
index d8346c49e9c..9b7748c6572 100644
--- a/mps/code/buffer.c
+++ b/mps/code/buffer.c
@@ -149,7 +149,7 @@ Res BufferDescribe(Buffer buffer, mps_lib_FILE *stream)
Res res;
char abzMode[5];
- if (!CHECKT(Buffer, buffer)) return ResFAIL;
+ if (!TESTT(Buffer, buffer)) return ResFAIL;
if (stream == NULL) return ResFAIL;
abzMode[0] = (char)( (buffer->mode & BufferModeTRANSITION) ? 't' : '_' );
@@ -1185,7 +1185,7 @@ static void bufferNoReassignSeg (Buffer buffer, Seg seg)
static Res bufferTrivDescribe(Buffer buffer, mps_lib_FILE *stream)
{
- if (!CHECKT(Buffer, buffer)) return ResFAIL;
+ if (!TESTT(Buffer, buffer)) return ResFAIL;
if (stream == NULL) return ResFAIL;
/* dispatching function does it all */
return ResOK;
@@ -1444,10 +1444,10 @@ static Res segBufDescribe(Buffer buffer, mps_lib_FILE *stream)
BufferClass super;
Res res;
- if (!CHECKT(Buffer, buffer)) return ResFAIL;
+ if (!TESTT(Buffer, buffer)) return ResFAIL;
if (stream == NULL) return ResFAIL;
segbuf = BufferSegBuf(buffer);
- if (!CHECKT(SegBuf, segbuf)) return ResFAIL;
+ if (!TESTT(SegBuf, segbuf)) return ResFAIL;
/* Describe the superclass fields first via next-method call */
super = BUFFER_SUPERCLASS(SegBufClass);
diff --git a/mps/code/cbs.c b/mps/code/cbs.c
index e3f5204e03e..df1a359e59a 100644
--- a/mps/code/cbs.c
+++ b/mps/code/cbs.c
@@ -1627,7 +1627,7 @@ Res CBSDescribe(CBS cbs, mps_lib_FILE *stream)
{
Res res;
- if (!CHECKT(CBS, cbs)) return ResFAIL;
+ if (!TESTT(CBS, cbs)) return ResFAIL;
if (stream == NULL) return ResFAIL;
res = WriteF(stream,
diff --git a/mps/code/check.h b/mps/code/check.h
index 78334f8d7d3..c43dcc1c3d2 100644
--- a/mps/code/check.h
+++ b/mps/code/check.h
@@ -155,16 +155,13 @@ enum {
#endif
-/* CHECKT -- check type simply
+/* TESTT -- check type simply
*
* Must be thread safe. See
* and .
- *
- * @@@@ This is a test, not a CHECK macro -- it does not assert.
- * It should be renamed TESTSIG. RHSK 2006-12-13.
*/
-#define CHECKT(type, val) ((val) != NULL && (val)->sig == type ## Sig)
+#define TESTT(type, val) ((val) != NULL && (val)->sig == type ## Sig)
/* CHECKS -- Check Signature
@@ -173,10 +170,10 @@ enum {
*/
#if defined(AVER_AND_CHECK_NONE)
-#define CHECKS(type, val) DISCARD(CHECKT(type, val))
+#define CHECKS(type, val) DISCARD(TESTT(type, val))
#else
#define CHECKS(type, val) \
- ASSERT(CHECKT(type, val), "SigCheck " #type ": " #val)
+ ASSERT(TESTT(type, val), "SigCheck " #type ": " #val)
#endif
@@ -272,43 +269,40 @@ enum {
too minimal? How much do we rely on check methods? */
#define CHECKL(cond) DISCARD(cond)
-#define CHECKD(type, val) DISCARD(CHECKT(type, val))
+#define CHECKD(type, val) DISCARD(TESTT(type, val))
#define CHECKD_NOSIG(type, val) DISCARD((val) != NULL)
-#define CHECKU(type, val) DISCARD(CHECKT(type, val))
+#define CHECKU(type, val) DISCARD(TESTT(type, val))
#define CHECKU_NOSIG(type, val) DISCARD((val) != NULL)
#endif /* AVER_AND_CHECK_ALL */
-/* CHECKLVALUE &c -- type compatibility checking
+/* COMPAT* -- type compatibility checking
*
- * .check.macros: The CHECK* macros use some C trickery to attempt to
+ * .check.macros: The COMPAT* macros use some C trickery to attempt to
* verify that certain types and fields are equivalent. They do not
* do a complete job. This trickery is justified by the security gained
* in knowing that matches the MPM. See also
* mail.richard.1996-08-07.09-49. [This paragraph is intended to
* satisfy rule.impl.trick.]
- *
- * @@@@ These are tests, not CHECK macros -- they do not assert.
- * They should be renamed TESTTYPE etc. RHSK 2006-12-13.
*/
/* compile-time check */
-#define CHECKLVALUE(lv1, lv2) \
+#define COMPATLVALUE(lv1, lv2) \
((void)sizeof((lv1) = (lv2)), (void)sizeof((lv2) = (lv1)), TRUE)
/* aims to test whether t1 and t2 are assignment-compatible */
-#define CHECKTYPE(t1, t2) \
+#define COMPATTYPE(t1, t2) \
(sizeof(t1) == sizeof(t2) && \
- CHECKLVALUE(*((t1 *)0), *((t2 *)0)))
+ COMPATLVALUE(*((t1 *)0), *((t2 *)0)))
-#define CHECKFIELDAPPROX(s1, f1, s2, f2) \
+#define COMPATFIELDAPPROX(s1, f1, s2, f2) \
(sizeof(((s1 *)0)->f1) == sizeof(((s2 *)0)->f2) && \
offsetof(s1, f1) == offsetof(s2, f2))
-#define CHECKFIELD(s1, f1, s2, f2) \
- (CHECKFIELDAPPROX(s1, f1, s2, f2) && \
- CHECKLVALUE(((s1 *)0)->f1, ((s2 *)0)->f2))
+#define COMPATFIELD(s1, f1, s2, f2) \
+ (COMPATFIELDAPPROX(s1, f1, s2, f2) && \
+ COMPATLVALUE(((s1 *)0)->f1, ((s2 *)0)->f2))
#endif /* check_h */
diff --git a/mps/code/dbgpool.c b/mps/code/dbgpool.c
index 79d14a77727..765372fae64 100644
--- a/mps/code/dbgpool.c
+++ b/mps/code/dbgpool.c
@@ -72,7 +72,7 @@ Bool PoolDebugMixinCheck(PoolDebugMixin debug)
CHECKL(TagInitMethodCheck(debug->tagInit));
/* Nothing to check about tagSize */
CHECKD(Pool, debug->tagPool);
- CHECKL(CHECKTYPE(Addr, void*)); /* tagPool relies on this */
+ CHECKL(COMPATTYPE(Addr, void*)); /* tagPool relies on this */
/* Nothing to check about missingTags */
CHECKL(SplayTreeCheck(&debug->index));
}
diff --git a/mps/code/dbgpooli.c b/mps/code/dbgpooli.c
index 52b6e7d3916..ebc8733e3c2 100644
--- a/mps/code/dbgpooli.c
+++ b/mps/code/dbgpooli.c
@@ -21,8 +21,8 @@ void mps_pool_check_fenceposts(mps_pool_t mps_pool)
Pool pool = (Pool)mps_pool;
Arena arena;
- /* CHECKT not AVERT, see f1) == sizeof(((s2 *)0)->f2) && \
offsetof(s1, f1) == offsetof(s2, f2))
-#define CHECKFIELD(s1, f1, s2, f2) \
- (CHECKFIELDAPPROX(s1, f1, s2, f2) && \
- CHECKLVALUE(((s1 *)0)->f1, ((s2 *)0)->f2))
+#define COMPATFIELD(s1, f1, s2, f2) \
+ (COMPATFIELDAPPROX(s1, f1, s2, f2) && \
+ COMPATLVALUE(((s1 *)0)->f1, ((s2 *)0)->f2))
/* EventProcCreate -- initialize the module */
@@ -383,8 +383,8 @@ Res EventProcCreate(EventProc *procReturn, Bool partial,
if (proc == NULL) return ResMEMORY;
/* check event struct access */
- assert(CHECKFIELD(EventUnion, any.code, EventWSStruct, code));
- assert(CHECKFIELD(EventUnion, any.clock, EventWSStruct, clock));
+ assert(COMPATFIELD(EventUnion, any.code, EventWSStruct, code));
+ assert(COMPATFIELD(EventUnion, any.clock, EventWSStruct, clock));
/* check use of labelTable */
#if !defined(MPS_OS_FR)
/* GCC -ansi -pedantic -Werror on FreeBSD will fail here
diff --git a/mps/code/eventrep.c b/mps/code/eventrep.c
index 7bbf2828eb2..75437f532b4 100644
--- a/mps/code/eventrep.c
+++ b/mps/code/eventrep.c
@@ -682,12 +682,12 @@ void EventReplay(Event event, Word etime)
/* Checking macros, copied from check.h */
-#define CHECKLVALUE(lv1, lv2) \
+#define COMPATLVALUE(lv1, lv2) \
((void)sizeof((lv1) = (lv2)), (void)sizeof((lv2) = (lv1)), TRUE)
-#define CHECKTYPE(t1, t2) \
+#define COMPATTYPE(t1, t2) \
(sizeof(t1) == sizeof(t2) && \
- CHECKLVALUE(*((t1 *)0), *((t2 *)0)))
+ COMPATLVALUE(*((t1 *)0), *((t2 *)0)))
/* CHECKCONV -- check t2 can be cast to t1 without loss */
@@ -705,8 +705,8 @@ Res EventRepInit(Bool partial)
/* Check using pointers as keys in the tables. */
verify(CHECKCONV(Word, void *));
/* Check storage of MPS opaque handles in the tables. */
- verify(CHECKTYPE(mps_arena_t, void *));
- verify(CHECKTYPE(mps_ap_t, void *));
+ verify(COMPATTYPE(mps_arena_t, void *));
+ verify(COMPATTYPE(mps_ap_t, void *));
/* .event-conv: Conversion of event fields into the types required */
/* by the MPS functions is justified by the reverse conversion */
/* being acceptable (which is upto the event log generator). */
diff --git a/mps/code/global.c b/mps/code/global.c
index ede40309f4a..806da8dfbaa 100644
--- a/mps/code/global.c
+++ b/mps/code/global.c
@@ -484,7 +484,7 @@ void arenaEnterLock(Arena arena, int recursive)
/* This check is safe to do outside the lock. Unless the client
is also calling ArenaDestroy, but that's a protocol violation by
the client if so. */
- AVER(CHECKT(Arena, arena));
+ AVER(TESTT(Arena, arena));
StackProbe(StackProbeDEPTH);
lock = ArenaGlobals(arena)->lock;
@@ -946,7 +946,7 @@ Res GlobalsDescribe(Globals arenaGlobals, mps_lib_FILE *stream)
Ring node, nextNode;
Index i;
- if (!CHECKT(Globals, arenaGlobals)) return ResFAIL;
+ if (!TESTT(Globals, arenaGlobals)) return ResFAIL;
if (stream == NULL) return ResFAIL;
arena = GlobalsArena(arenaGlobals);
diff --git a/mps/code/mpsi.c b/mps/code/mpsi.c
index 3a356f5d50a..06b2e50cc15 100644
--- a/mps/code/mpsi.c
+++ b/mps/code/mpsi.c
@@ -73,7 +73,7 @@ static Bool mpsi_check(void)
/* .check.rc: Check that external and internal result codes match. */
/* See and . */
/* Also see .check.enum.cast. */
- CHECKL(CHECKTYPE(mps_res_t, Res));
+ CHECKL(COMPATTYPE(mps_res_t, Res));
CHECKL((int)MPS_RES_OK == (int)ResOK);
CHECKL((int)MPS_RES_FAIL == (int)ResFAIL);
CHECKL((int)MPS_RES_RESOURCE == (int)ResRESOURCE);
@@ -86,7 +86,7 @@ static Bool mpsi_check(void)
/* Check that external and internal rank numbers match. */
/* See and . */
/* Also see .check.enum.cast. */
- CHECKL(CHECKTYPE(mps_rank_t, Rank));
+ CHECKL(COMPATTYPE(mps_rank_t, Rank));
CHECKL((int)MPS_RANK_AMBIG == (int)RankAMBIG);
CHECKL((int)MPS_RANK_EXACT == (int)RankEXACT);
CHECKL((int)MPS_RANK_WEAK == (int)RankWEAK);
@@ -95,7 +95,7 @@ static Bool mpsi_check(void)
/* See and */
/* . */
/* Also see .check.enum.cast. */
- CHECKL(CHECKTYPE(mps_message_type_t, MessageType));
+ CHECKL(COMPATTYPE(mps_message_type_t, MessageType));
CHECKL((int)MessageTypeFINALIZATION
== (int)MPS_MESSAGE_TYPE_FINALIZATION);
CHECKL((int)MessageTypeGC
@@ -106,74 +106,74 @@ static Bool mpsi_check(void)
/* The external idea of a word width and the internal one */
/* had better match. See . */
CHECKL(sizeof(mps_word_t) == sizeof(void *));
- CHECKL(CHECKTYPE(mps_word_t, Word));
+ CHECKL(COMPATTYPE(mps_word_t, Word));
/* The external idea of an address and the internal one */
/* had better match. */
- CHECKL(CHECKTYPE(mps_addr_t, Addr));
+ CHECKL(COMPATTYPE(mps_addr_t, Addr));
/* The external idea of size and the internal one had */
/* better match. See */
/* and . */
- CHECKL(CHECKTYPE(size_t, Size));
+ CHECKL(COMPATTYPE(size_t, Size));
/* Clock values are passed from external to internal and back */
/* out to external. */
- CHECKL(CHECKTYPE(mps_clock_t, Clock));
+ CHECKL(COMPATTYPE(mps_clock_t, Clock));
/* Check ap_s/APStruct compatibility by hand */
/* .check.ap: See and . */
CHECKL(sizeof(mps_ap_s) == sizeof(APStruct));
- CHECKL(CHECKFIELD(mps_ap_s, init, APStruct, init));
- CHECKL(CHECKFIELD(mps_ap_s, alloc, APStruct, alloc));
- CHECKL(CHECKFIELD(mps_ap_s, limit, APStruct, limit));
+ CHECKL(COMPATFIELD(mps_ap_s, init, APStruct, init));
+ CHECKL(COMPATFIELD(mps_ap_s, alloc, APStruct, alloc));
+ CHECKL(COMPATFIELD(mps_ap_s, limit, APStruct, limit));
/* Check sac_s/ExternalSACStruct compatibility by hand */
/* See and . */
CHECKL(sizeof(mps_sac_s) == sizeof(ExternalSACStruct));
- CHECKL(CHECKFIELD(mps_sac_s, mps_middle, ExternalSACStruct, middle));
- CHECKL(CHECKFIELD(mps_sac_s, mps_trapped,
+ CHECKL(COMPATFIELD(mps_sac_s, mps_middle, ExternalSACStruct, middle));
+ CHECKL(COMPATFIELD(mps_sac_s, mps_trapped,
ExternalSACStruct, trapped));
- CHECKL(CHECKFIELDAPPROX(mps_sac_s, mps_freelists,
+ CHECKL(COMPATFIELDAPPROX(mps_sac_s, mps_freelists,
ExternalSACStruct, freelists));
CHECKL(sizeof(mps_sac_freelist_block_s)
== sizeof(SACFreeListBlockStruct));
- CHECKL(CHECKFIELD(mps_sac_freelist_block_s, mps_size,
+ CHECKL(COMPATFIELD(mps_sac_freelist_block_s, mps_size,
SACFreeListBlockStruct, size));
- CHECKL(CHECKFIELD(mps_sac_freelist_block_s, mps_count,
+ CHECKL(COMPATFIELD(mps_sac_freelist_block_s, mps_count,
SACFreeListBlockStruct, count));
- CHECKL(CHECKFIELD(mps_sac_freelist_block_s, mps_count_max,
+ CHECKL(COMPATFIELD(mps_sac_freelist_block_s, mps_count_max,
SACFreeListBlockStruct, countMax));
- CHECKL(CHECKFIELD(mps_sac_freelist_block_s, mps_blocks,
+ CHECKL(COMPATFIELD(mps_sac_freelist_block_s, mps_blocks,
SACFreeListBlockStruct, blocks));
/* Check sac_classes_s/SACClassesStruct compatibility by hand */
/* See and . */
CHECKL(sizeof(mps_sac_classes_s) == sizeof(SACClassesStruct));
- CHECKL(CHECKFIELD(mps_sac_classes_s, mps_block_size,
+ CHECKL(COMPATFIELD(mps_sac_classes_s, mps_block_size,
SACClassesStruct, blockSize));
- CHECKL(CHECKFIELD(mps_sac_classes_s, mps_cached_count,
+ CHECKL(COMPATFIELD(mps_sac_classes_s, mps_cached_count,
SACClassesStruct, cachedCount));
- CHECKL(CHECKFIELD(mps_sac_classes_s, mps_frequency,
+ CHECKL(COMPATFIELD(mps_sac_classes_s, mps_frequency,
SACClassesStruct, frequency));
/* Check ss_s/ScanStateStruct compatibility by hand */
/* .check.ss: See and . */
/* Note that the size of the mps_ss_s and ScanStateStruct */
- /* are not equal. See . CHECKFIELDAPPROX */
+ /* are not equal. See . COMPATFIELDAPPROX */
/* is used on the fix field because its type is punned and */
/* therefore isn't exactly checkable. See */
/* . */
- CHECKL(CHECKFIELDAPPROX(mps_ss_s, fix, ScanStateStruct, fix));
- CHECKL(CHECKFIELD(mps_ss_s, w0, ScanStateStruct, zoneShift));
- CHECKL(CHECKFIELD(mps_ss_s, w1, ScanStateStruct, white));
- CHECKL(CHECKFIELD(mps_ss_s, w2, ScanStateStruct, unfixedSummary));
+ CHECKL(COMPATFIELDAPPROX(mps_ss_s, fix, ScanStateStruct, fix));
+ CHECKL(COMPATFIELD(mps_ss_s, w0, ScanStateStruct, zoneShift));
+ CHECKL(COMPATFIELD(mps_ss_s, w1, ScanStateStruct, white));
+ CHECKL(COMPATFIELD(mps_ss_s, w2, ScanStateStruct, unfixedSummary));
/* Check ld_s/LDStruct compatibility by hand */
/* .check.ld: See also and */
CHECKL(sizeof(mps_ld_s) == sizeof(LDStruct));
- CHECKL(CHECKFIELD(mps_ld_s, w0, LDStruct, epoch));
- CHECKL(CHECKFIELD(mps_ld_s, w1, LDStruct, rs));
+ CHECKL(COMPATFIELD(mps_ld_s, w0, LDStruct, epoch));
+ CHECKL(COMPATFIELD(mps_ld_s, w1, LDStruct, rs));
return TRUE;
}
@@ -726,7 +726,7 @@ void mps_fmt_destroy(mps_fmt_t mps_fmt)
Format format = (Format)mps_fmt;
Arena arena;
- AVER(CHECKT(Format, format));
+ AVER(TESTT(Format, format));
arena = FormatArena(format);
ArenaEnter(arena);
@@ -776,7 +776,7 @@ void mps_pool_destroy(mps_pool_t mps_pool)
Pool pool = (Pool)mps_pool;
Arena arena;
- AVER(CHECKT(Pool, pool));
+ AVER(TESTT(Pool, pool));
arena = PoolArena(pool);
ArenaEnter(arena);
@@ -794,7 +794,7 @@ mps_res_t mps_alloc(mps_addr_t *p_o, mps_pool_t mps_pool, size_t size, ...)
Addr p;
Res res;
- AVER(CHECKT(Pool, pool));
+ AVER(TESTT(Pool, pool));
arena = PoolArena(pool);
ArenaEnter(arena);
@@ -836,7 +836,7 @@ void mps_free(mps_pool_t mps_pool, mps_addr_t p, size_t size)
Pool pool = (Pool)mps_pool;
Arena arena;
- AVER(CHECKT(Pool, pool));
+ AVER(TESTT(Pool, pool));
arena = PoolArena(pool);
ArenaEnter(arena);
@@ -864,7 +864,7 @@ mps_res_t mps_ap_create(mps_ap_t *mps_ap_o, mps_pool_t mps_pool, ...)
va_list args;
AVER(mps_ap_o != NULL);
- AVER(CHECKT(Pool, pool));
+ AVER(TESTT(Pool, pool));
arena = PoolArena(pool);
ArenaEnter(arena);
@@ -897,7 +897,7 @@ mps_res_t mps_ap_create_v(mps_ap_t *mps_ap_o, mps_pool_t mps_pool,
Res res;
AVER(mps_ap_o != NULL);
- AVER(CHECKT(Pool, pool));
+ AVER(TESTT(Pool, pool));
arena = PoolArena(pool);
ArenaEnter(arena);
@@ -921,7 +921,7 @@ void mps_ap_destroy(mps_ap_t mps_ap)
Arena arena;
AVER(mps_ap != NULL);
- AVER(CHECKT(Buffer, buf));
+ AVER(TESTT(Buffer, buf));
arena = BufferArena(buf);
ArenaEnter(arena);
@@ -945,7 +945,7 @@ mps_res_t (mps_reserve)(mps_addr_t *p_o, mps_ap_t mps_ap, size_t size)
AVER(p_o != NULL);
AVER(mps_ap != NULL);
- AVER(CHECKT(Buffer, BufferOfAP((AP)mps_ap)));
+ AVER(TESTT(Buffer, BufferOfAP((AP)mps_ap)));
AVER(mps_ap->init == mps_ap->alloc);
AVER(size > 0);
@@ -964,7 +964,7 @@ mps_res_t mps_reserve_with_reservoir_permit(mps_addr_t *p_o,
AVER(p_o != NULL);
AVER(size > 0);
AVER(mps_ap != NULL);
- AVER(CHECKT(Buffer, BufferOfAP((AP)mps_ap)));
+ AVER(TESTT(Buffer, BufferOfAP((AP)mps_ap)));
AVER(mps_ap->init == mps_ap->alloc);
MPS_RESERVE_WITH_RESERVOIR_PERMIT_BLOCK(res, *p_o, mps_ap, size);
@@ -985,7 +985,7 @@ mps_res_t mps_reserve_with_reservoir_permit(mps_addr_t *p_o,
mps_bool_t (mps_commit)(mps_ap_t mps_ap, mps_addr_t p, size_t size)
{
AVER(mps_ap != NULL);
- AVER(CHECKT(Buffer, BufferOfAP((AP)mps_ap)));
+ AVER(TESTT(Buffer, BufferOfAP((AP)mps_ap)));
AVER(p != NULL);
AVER(size > 0);
AVER(p == mps_ap->init);
@@ -1027,7 +1027,7 @@ mps_res_t (mps_ap_frame_push)(mps_frame_t *frame_o, mps_ap_t mps_ap)
AllocFrame frame;
Res res;
- AVER(CHECKT(Buffer, buf));
+ AVER(TESTT(Buffer, buf));
arena = BufferArena(buf);
ArenaEnter(arena);
@@ -1070,7 +1070,7 @@ mps_res_t (mps_ap_frame_pop)(mps_ap_t mps_ap, mps_frame_t frame)
Arena arena;
Res res;
- AVER(CHECKT(Buffer, buf));
+ AVER(TESTT(Buffer, buf));
arena = BufferArena(buf);
ArenaEnter(arena);
@@ -1097,7 +1097,7 @@ mps_res_t mps_ap_fill(mps_addr_t *p_o, mps_ap_t mps_ap, size_t size)
Res res;
AVER(mps_ap != NULL);
- AVER(CHECKT(Buffer, buf));
+ AVER(TESTT(Buffer, buf));
arena = BufferArena(buf);
ArenaEnter(arena);
@@ -1128,7 +1128,7 @@ mps_res_t mps_ap_fill_with_reservoir_permit(mps_addr_t *p_o, mps_ap_t mps_ap,
Res res;
AVER(mps_ap != NULL);
- AVER(CHECKT(Buffer, buf));
+ AVER(TESTT(Buffer, buf));
arena = BufferArena(buf);
ArenaEnter(arena);
@@ -1162,7 +1162,7 @@ mps_bool_t mps_ap_trip(mps_ap_t mps_ap, mps_addr_t p, size_t size)
Bool b;
AVER(mps_ap != NULL);
- AVER(CHECKT(Buffer, buf));
+ AVER(TESTT(Buffer, buf));
arena = BufferArena(buf);
ArenaEnter(arena);
@@ -1191,7 +1191,7 @@ mps_res_t mps_sac_create(mps_sac_t *mps_sac_o, mps_pool_t mps_pool,
Res res;
AVER(mps_sac_o != NULL);
- AVER(CHECKT(Pool, pool));
+ AVER(TESTT(Pool, pool));
arena = PoolArena(pool);
ArenaEnter(arena);
@@ -1214,7 +1214,7 @@ void mps_sac_destroy(mps_sac_t mps_sac)
SAC sac = SACOfExternalSAC((ExternalSAC)mps_sac);
Arena arena;
- AVER(CHECKT(SAC, sac));
+ AVER(TESTT(SAC, sac));
arena = SACArena(sac);
ArenaEnter(arena);
@@ -1232,7 +1232,7 @@ void mps_sac_flush(mps_sac_t mps_sac)
SAC sac = SACOfExternalSAC((ExternalSAC)mps_sac);
Arena arena;
- AVER(CHECKT(SAC, sac));
+ AVER(TESTT(SAC, sac));
arena = SACArena(sac);
ArenaEnter(arena);
@@ -1254,7 +1254,7 @@ mps_res_t mps_sac_fill(mps_addr_t *p_o, mps_sac_t mps_sac, size_t size,
Res res;
AVER(p_o != NULL);
- AVER(CHECKT(SAC, sac));
+ AVER(TESTT(SAC, sac));
arena = SACArena(sac);
ArenaEnter(arena);
@@ -1276,7 +1276,7 @@ void mps_sac_empty(mps_sac_t mps_sac, mps_addr_t p, size_t size)
SAC sac = SACOfExternalSAC((ExternalSAC)mps_sac);
Arena arena;
- AVER(CHECKT(SAC, sac));
+ AVER(TESTT(SAC, sac));
arena = SACArena(sac);
ArenaEnter(arena);
@@ -1295,7 +1295,7 @@ mps_res_t mps_sac_alloc(mps_addr_t *p_o, mps_sac_t mps_sac, size_t size,
Res res;
AVER(p_o != NULL);
- AVER(CHECKT(SAC, SACOfExternalSAC((ExternalSAC)mps_sac)));
+ AVER(TESTT(SAC, SACOfExternalSAC((ExternalSAC)mps_sac)));
AVER(size > 0);
MPS_SAC_ALLOC_FAST(res, *p_o, mps_sac, size, (has_reservoir_permit != 0));
@@ -1307,7 +1307,7 @@ mps_res_t mps_sac_alloc(mps_addr_t *p_o, mps_sac_t mps_sac, size_t size,
void mps_sac_free(mps_sac_t mps_sac, mps_addr_t p, size_t size)
{
- AVER(CHECKT(SAC, SACOfExternalSAC((ExternalSAC)mps_sac)));
+ AVER(TESTT(SAC, SACOfExternalSAC((ExternalSAC)mps_sac)));
/* Can't check p outside arena lock */
AVER(size > 0);
@@ -1940,7 +1940,7 @@ mps_res_t mps_ap_alloc_pattern_begin(mps_ap_t mps_ap,
AVER(mps_ap != NULL);
buf = BufferOfAP((AP)mps_ap);
- AVER(CHECKT(Buffer, buf));
+ AVER(TESTT(Buffer, buf));
arena = BufferArena(buf);
ArenaEnter(arena);
@@ -1961,7 +1961,7 @@ mps_res_t mps_ap_alloc_pattern_end(mps_ap_t mps_ap,
AVER(mps_ap != NULL);
buf = BufferOfAP((AP)mps_ap);
- AVER(CHECKT(Buffer, buf));
+ AVER(TESTT(Buffer, buf));
UNUSED(alloc_pattern); /* .ramp.hack */
arena = BufferArena(buf);
@@ -1982,7 +1982,7 @@ mps_res_t mps_ap_alloc_pattern_reset(mps_ap_t mps_ap)
AVER(mps_ap != NULL);
buf = BufferOfAP((AP)mps_ap);
- AVER(CHECKT(Buffer, buf));
+ AVER(TESTT(Buffer, buf));
arena = BufferArena(buf);
ArenaEnter(arena);
@@ -2074,7 +2074,7 @@ void mps_chain_destroy(mps_chain_t mps_chain)
Arena arena;
Chain chain = (Chain)mps_chain;
- AVER(CHECKT(Chain, chain));
+ AVER(TESTT(Chain, chain));
arena = chain->arena;
ArenaEnter(arena);
diff --git a/mps/code/pool.c b/mps/code/pool.c
index e2578cf3497..802acf01d6a 100644
--- a/mps/code/pool.c
+++ b/mps/code/pool.c
@@ -515,7 +515,7 @@ Res PoolDescribe(Pool pool, mps_lib_FILE *stream)
Res res;
Ring node, nextNode;
- if (!CHECKT(Pool, pool)) return ResFAIL;
+ if (!TESTT(Pool, pool)) return ResFAIL;
if (stream == NULL) return ResFAIL;
res = WriteF(stream,
diff --git a/mps/code/poolamc.c b/mps/code/poolamc.c
index bea60caa03e..3698f328b90 100644
--- a/mps/code/poolamc.c
+++ b/mps/code/poolamc.c
@@ -258,12 +258,12 @@ static Res AMCSegDescribe(Seg seg, mps_lib_FILE *stream)
Size row;
char abzSketch[5];
- if(!CHECKT(Seg, seg))
+ if(!TESTT(Seg, seg))
return ResFAIL;
if(stream == NULL)
return ResFAIL;
amcseg = Seg2amcSeg(seg);
- if(!CHECKT(amcSeg, amcseg))
+ if(!TESTT(amcSeg, amcseg))
return ResFAIL;
/* Describe the superclass fields first via next-method call */
@@ -745,7 +745,7 @@ static Res amcGenDescribe(amcGen gen, mps_lib_FILE *stream)
{
Res res;
- if(!CHECKT(amcGen, gen))
+ if(!TESTT(amcGen, gen))
return ResFAIL;
res = WriteF(stream,
@@ -2330,10 +2330,10 @@ static Res AMCDescribe(Pool pool, mps_lib_FILE *stream)
Ring node, nextNode;
char *rampmode;
- if(!CHECKT(Pool, pool))
+ if(!TESTT(Pool, pool))
return ResFAIL;
amc = Pool2AMC(pool);
- if(!CHECKT(AMC, amc))
+ if(!TESTT(AMC, amc))
return ResFAIL;
if(stream == NULL)
return ResFAIL;
@@ -2485,7 +2485,7 @@ void mps_amc_apply(mps_pool_t mps_pool,
mps_amc_apply_closure_s closure_s;
Arena arena;
- AVER(CHECKT(Pool, pool));
+ AVER(TESTT(Pool, pool));
arena = PoolArena(pool);
ArenaEnter(arena);
AVERT(Pool, pool);
diff --git a/mps/code/poolams.c b/mps/code/poolams.c
index 913195aab7c..4fbaba79b7d 100644
--- a/mps/code/poolams.c
+++ b/mps/code/poolams.c
@@ -524,10 +524,10 @@ static Res AMSSegDescribe(Seg seg, mps_lib_FILE *stream)
Buffer buffer; /* the segment's buffer, if it has one */
Index i;
- if (!CHECKT(Seg, seg)) return ResFAIL;
+ if (!TESTT(Seg, seg)) return ResFAIL;
if (stream == NULL) return ResFAIL;
amsseg = Seg2AMSSeg(seg);
- if (!CHECKT(AMSSeg, amsseg)) return ResFAIL;
+ if (!TESTT(AMSSeg, amsseg)) return ResFAIL;
/* Describe the superclass fields first via next-method call */
super = SEG_SUPERCLASS(AMSSegClass);
@@ -1366,7 +1366,7 @@ static Res AMSFix(Pool pool, ScanState ss, Seg seg, Ref *refIO)
Format format;
AVERT_CRITICAL(Pool, pool);
- AVER_CRITICAL(CHECKT(AMS, Pool2AMS(pool)));
+ AVER_CRITICAL(TESTT(AMS, Pool2AMS(pool)));
AVERT_CRITICAL(ScanState, ss);
AVERT_CRITICAL(Seg, seg);
AVER_CRITICAL(refIO != NULL);
@@ -1591,9 +1591,9 @@ static Res AMSDescribe(Pool pool, mps_lib_FILE *stream)
Ring node, nextNode;
Res res;
- if (!CHECKT(Pool, pool)) return ResFAIL;
+ if (!TESTT(Pool, pool)) return ResFAIL;
ams = Pool2AMS(pool);
- if (!CHECKT(AMS, ams)) return ResFAIL;
+ if (!TESTT(AMS, ams)) return ResFAIL;
if (stream == NULL) return ResFAIL;
res = WriteF(stream,
diff --git a/mps/code/poolmrg.c b/mps/code/poolmrg.c
index 73ec8ac81f1..6abba410f72 100644
--- a/mps/code/poolmrg.c
+++ b/mps/code/poolmrg.c
@@ -792,9 +792,9 @@ static Res MRGDescribe(Pool pool, mps_lib_FILE *stream)
RefPart refPart;
Res res;
- if (!CHECKT(Pool, pool)) return ResFAIL;
+ if (!TESTT(Pool, pool)) return ResFAIL;
mrg = Pool2MRG(pool);
- if (!CHECKT(MRG, mrg)) return ResFAIL;
+ if (!TESTT(MRG, mrg)) return ResFAIL;
if (stream == NULL) return ResFAIL;
arena = PoolArena(pool);
diff --git a/mps/code/poolmv.c b/mps/code/poolmv.c
index ae71bb40804..a7026276008 100644
--- a/mps/code/poolmv.c
+++ b/mps/code/poolmv.c
@@ -646,9 +646,9 @@ static Res MVDescribe(Pool pool, mps_lib_FILE *stream)
char c;
Ring spans, node = NULL, nextNode; /* gcc whinge stop */
- if(!CHECKT(Pool, pool)) return ResFAIL;
+ if(!TESTT(Pool, pool)) return ResFAIL;
mv = Pool2MV(pool);
- if(!CHECKT(MV, mv)) return ResFAIL;
+ if(!TESTT(MV, mv)) return ResFAIL;
if(stream == NULL) return ResFAIL;
res = WriteF(stream,
diff --git a/mps/code/poolmv2.c b/mps/code/poolmv2.c
index 974112b7abe..b67b236d1b4 100644
--- a/mps/code/poolmv2.c
+++ b/mps/code/poolmv2.c
@@ -685,9 +685,9 @@ static Res MVTDescribe(Pool pool, mps_lib_FILE *stream)
Res res;
MVT mvt;
- if (!CHECKT(Pool, pool)) return ResFAIL;
+ if (!TESTT(Pool, pool)) return ResFAIL;
mvt = Pool2MVT(pool);
- if (!CHECKT(MVT, mvt)) return ResFAIL;
+ if (!TESTT(MVT, mvt)) return ResFAIL;
if (stream == NULL) return ResFAIL;
res = WriteF(stream,
diff --git a/mps/code/poolmvff.c b/mps/code/poolmvff.c
index f13c94893aa..1bbe1e85806 100644
--- a/mps/code/poolmvff.c
+++ b/mps/code/poolmvff.c
@@ -537,9 +537,9 @@ static Res MVFFDescribe(Pool pool, mps_lib_FILE *stream)
Res res;
MVFF mvff;
- if (!CHECKT(Pool, pool)) return ResFAIL;
+ if (!TESTT(Pool, pool)) return ResFAIL;
mvff = Pool2MVFF(pool);
- if (!CHECKT(MVFF, mvff)) return ResFAIL;
+ if (!TESTT(MVFF, mvff)) return ResFAIL;
if (stream == NULL) return ResFAIL;
res = WriteF(stream,
diff --git a/mps/code/root.c b/mps/code/root.c
index bd2dd21f5ea..e746d3c1b61 100644
--- a/mps/code/root.c
+++ b/mps/code/root.c
@@ -380,7 +380,7 @@ void RootDestroy(Root root)
Arena RootArena(Root root)
{
- AVER(CHECKT(Root, root));
+ AVER(TESTT(Root, root));
return root->arena;
}
@@ -584,7 +584,7 @@ Res RootDescribe(Root root, mps_lib_FILE *stream)
{
Res res;
- if (!CHECKT(Root, root)) return ResFAIL;
+ if (!TESTT(Root, root)) return ResFAIL;
if (stream == NULL) return ResFAIL;
res = WriteF(stream,
diff --git a/mps/code/seg.c b/mps/code/seg.c
index 3f95ba4ec88..6c194881bb8 100644
--- a/mps/code/seg.c
+++ b/mps/code/seg.c
@@ -353,7 +353,7 @@ Res SegDescribe(Seg seg, mps_lib_FILE *stream)
Res res;
Pool pool;
- if (!CHECKT(Seg, seg)) return ResFAIL;
+ if (!TESTT(Seg, seg)) return ResFAIL;
if (stream == NULL) return ResFAIL;
pool = SegPool(seg);
@@ -964,7 +964,7 @@ static Res segTrivDescribe(Seg seg, mps_lib_FILE *stream)
{
Res res;
- if (!CHECKT(Seg, seg)) return ResFAIL;
+ if (!TESTT(Seg, seg)) return ResFAIL;
if (stream == NULL) return ResFAIL;
res = WriteF(stream,
@@ -1550,10 +1550,10 @@ static Res gcSegDescribe(Seg seg, mps_lib_FILE *stream)
SegClass super;
GCSeg gcseg;
- if (!CHECKT(Seg, seg)) return ResFAIL;
+ if (!TESTT(Seg, seg)) return ResFAIL;
if (stream == NULL) return ResFAIL;
gcseg = SegGCSeg(seg);
- if (!CHECKT(GCSeg, gcseg)) return ResFAIL;
+ if (!TESTT(GCSeg, gcseg)) return ResFAIL;
/* Describe the superclass fields first via next-method call */
super = SEG_SUPERCLASS(GCSegClass);
diff --git a/mps/code/vmw3.c b/mps/code/vmw3.c
index 554209687d3..e1e05b4ab2a 100644
--- a/mps/code/vmw3.c
+++ b/mps/code/vmw3.c
@@ -103,8 +103,8 @@ Res VMCreate(VM *vmReturn, Size size)
AVER(vmReturn != NULL);
- AVER(CHECKTYPE(LPVOID, Addr)); /* .assume.lpvoid-addr */
- AVER(CHECKTYPE(SIZE_T, Size));
+ AVER(COMPATTYPE(LPVOID, Addr)); /* .assume.lpvoid-addr */
+ AVER(COMPATTYPE(SIZE_T, Size));
GetSystemInfo(&si);
align = (Align)si.dwPageSize;
--
cgit v1.2.1
From 4fde4e10b29d4779189b81cf9c8a050593514aa3 Mon Sep 17 00:00:00 2001
From: Richard Brooksby
Date: Sat, 1 Sep 2012 11:40:43 +0100
Subject: Compiling with a static checking level by default, doubling the speed
of the cool variety.
Copied from Perforce
Change: 179157
ServerID: perforce.ravenbrook.com
---
mps/code/check.h | 44 +++++++++++++++++++++++++++++---------------
mps/code/config.h | 24 ++++++++++++------------
mps/code/mpm.c | 6 ++++--
3 files changed, 45 insertions(+), 29 deletions(-)
(limited to 'mps/code')
diff --git a/mps/code/check.h b/mps/code/check.h
index c43dcc1c3d2..63afefad564 100644
--- a/mps/code/check.h
+++ b/mps/code/check.h
@@ -68,12 +68,25 @@
* static variable CheckLevel controls the frequency and detail of
* consistency checking on structures.
*
- * FIXME: This should be initialised from an environment variable and have
- * an interface in mps.h.
+ * By default, CHECKLEVEL is defined to a static value in config.h, though
+ * it can be overridden on the compiler command line, e.g.
+ * cc -DCHECKLEVEL=CheckLevelSHALLOW ...
+ *
+ * However, if CHECKLEVEL_DYNAMIC is defined we use a variable to control
+ * the level of checking. The run-time overhead for this is quite high
+ * (observed double run-time on amcss when the variable is set to SHALLOW).
+ * CHECKLEVEL_DYNAMIC should be set to the initial level for the variable,
+ * which is in mpm.c.
+ *
+ * In general, it's better to adjust the check level by defining CHECKLEVEL
+ * but this is intended to meet the case where a run-time adjustable
+ * checking level is required -- where recompilation or relinking is
+ * undesirable or impossible.
+ *
+ * FIXME: Should also allow the check level variable to come from an
+ * environment variable.
*/
-extern unsigned CheckLevel;
-
enum {
CheckLevelMINIMAL = 0, /* local sig check only */
CheckLevelSHALLOW = 1, /* local invariants, */
@@ -83,6 +96,12 @@ enum {
/* and recursive down full type checks */
};
+#ifdef CHECKLEVEL_DYNAMIC
+extern unsigned CheckLevel;
+#undef CHECKLEVEL
+#define CHECKLEVEL CheckLevel
+#endif
+
/* AVER, AVERT -- MPM assertions
*
@@ -117,13 +136,13 @@ enum {
#define AVER_CRITICAL(cond) \
BEGIN \
- if (CheckLevel != CheckLevelMINIMAL) \
+ if (CHECKLEVEL != CheckLevelMINIMAL) \
ASSERT(cond, #cond); \
END
#define AVERT_CRITICAL(type, val) \
BEGIN \
- if (CheckLevel != CheckLevelMINIMAL) \
+ if (CHECKLEVEL != CheckLevelMINIMAL) \
ASSERT(type ## Check(val), "TypeCheck " #type ": " #val); \
END
@@ -166,7 +185,7 @@ enum {
/* CHECKS -- Check Signature
*
- * (if CheckLevel == CheckLevelMINIMAL, this is all we check)
+ * (if CHECKLEVEL == CheckLevelMINIMAL, this is all we check)
*/
#if defined(AVER_AND_CHECK_NONE)
@@ -196,7 +215,7 @@ enum {
* - check "up" values which are its "parents" with CHECKU.
*
* These various checks will be compiled out or compiled to be controlled
- * by CheckLevel.
+ * by CHECKLEVEL.
*
* For example:
*
@@ -215,21 +234,16 @@ enum {
* children which are Segments, etc.
*
* The important thing is to have a partial order on types so that recursive
- * checking will terminate. When CheckLevel is set to DEEP, checking will
+ * checking will terminate. When CHECKLEVEL is set to DEEP, checking will
* recurse into check methods for children, but will only do a shallow
* signature check on parents, avoiding infinite regression.
- *
- * FIXME: Switching on every CHECK line doesn't compile very well, because
- * the compiler can't tell that CheckLevel won't change between function
- * calls and can't lift out the test. Is there a better arrangement,
- * perhaps by reading CheckLevel into a local variable?
*/
#if defined(AVER_AND_CHECK_ALL)
#define CHECK_BY_LEVEL(minimal, shallow, deep) \
BEGIN \
- switch (CheckLevel) { \
+ switch (CHECKLEVEL) { \
case CheckLevelDEEP: deep; break; \
case CheckLevelSHALLOW: shallow; break; \
default: NOTREACHED; /* fall through */ \
diff --git a/mps/code/config.h b/mps/code/config.h
index 86b3a22b610..15c30b6e5e0 100644
--- a/mps/code/config.h
+++ b/mps/code/config.h
@@ -35,7 +35,6 @@
#if defined(CONFIG_VAR_WE) /* White-hot variety */
/* no asserts */
-/* ... so CHECKLEVEL_INITIAL is irrelevant */
/* no statistic meters */
/* no telemetry log events */
@@ -49,7 +48,9 @@
#elif defined(CONFIG_VAR_HE) /* Hot variety */
#define CONFIG_ASSERT
-#define CHECKLEVEL_INITIAL CheckLevelMINIMAL
+#ifndef CHECKLEVEL
+#define CHECKLEVEL CheckLevelMINIMAL
+#endif
/* no statistic meters */
/* no telemetry log events */
@@ -63,7 +64,9 @@
#elif defined(CONFIG_VAR_DI) /* Diagnostic variety */
#define CONFIG_ASSERT
-#define CHECKLEVEL_INITIAL CheckLevelMINIMAL
+#ifndef CHECKLEVEL
+#define CHECKLEVEL CheckLevelMINIMAL
+#endif
#define CONFIG_STATS
/* For diagnostics, choose a DIAG_WITH_... output method.
* (We need to choose because the DIAG output system is under
@@ -85,8 +88,10 @@
#elif defined(CONFIG_VAR_CI) /* Cool variety */
#define CONFIG_ASSERT
#define CONFIG_ASSERT_ALL
-/* ... let PRODUCT determine CHECKLEVEL_INITIAL */
#define CONFIG_STATS
+#ifndef CHECKLEVEL
+#define CHECKLEVEL CheckLevelSHALLOW
+#endif
/* no telemetry log events */
@@ -100,7 +105,9 @@
#elif defined(CONFIG_VAR_TI) /* Telemetry, Internal; variety.ti */
#define CONFIG_ASSERT
#define CONFIG_ASSERT_ALL
-/* ... let PRODUCT determine CHECKLEVEL_INITIAL */
+#ifndef CHECKLEVEL
+#define CHECKLEVEL CheckLevelSHALLOW
+#endif
#define CONFIG_STATS
#define CONFIG_LOG
@@ -400,13 +407,6 @@
*/
#define ARENA_SIZE ((Size)1<<30)
-/* if CHECKLEVEL_INITIAL hasn't been defined already (e.g. by a variety, or
- * in a makefile), take the value from the product. */
-
-#ifndef CHECKLEVEL_INITIAL
-#define CHECKLEVEL_INITIAL PROD_CHECKLEVEL_INITIAL
-#endif
-
/* Dongle configuration */
diff --git a/mps/code/mpm.c b/mps/code/mpm.c
index 4f9af3f888c..f287f2cf964 100644
--- a/mps/code/mpm.c
+++ b/mps/code/mpm.c
@@ -23,10 +23,12 @@ SRCID(mpm, "$Id$");
/* CheckLevel -- Control check level
*
- * This controls the behaviour of Check methods (see impl.h.check).
+ * This controls the behaviour of Check methods (see check.h).
*/
-unsigned CheckLevel = CHECKLEVEL_INITIAL;
+#ifdef CHECKLEVEL_DYNAMIC
+unsigned CheckLevel = CHECKLEVEL_DYNAMIC;
+#endif
/* MPMCheck -- test MPM assumptions */
--
cgit v1.2.1
From ad1c82af3b12d5a1ac91360c87bc79165b37fab9 Mon Sep 17 00:00:00 2001
From: Richard Brooksby
Date: Sat, 1 Sep 2012 11:45:26 +0100
Subject: Adding fixme note about checkleveldeep not working.
Copied from Perforce
Change: 179158
ServerID: perforce.ravenbrook.com
---
mps/code/check.h | 3 +++
1 file changed, 3 insertions(+)
(limited to 'mps/code')
diff --git a/mps/code/check.h b/mps/code/check.h
index 63afefad564..3ba0fff138b 100644
--- a/mps/code/check.h
+++ b/mps/code/check.h
@@ -85,6 +85,9 @@
*
* FIXME: Should also allow the check level variable to come from an
* environment variable.
+ *
+ * FIXME: CheckLevelDEEP asserts on arena creation with bootstrapping
+ * problems. It clearly hasn't been tried for a while. RB 2012-09-01
*/
enum {
--
cgit v1.2.1
From f92b4c38238702b94bd89327c96c2bd9d52dbf3d Mon Sep 17 00:00:00 2001
From: Richard Brooksby
Date: Sun, 2 Sep 2012 08:25:27 +0100
Subject: Building version.c at link time to avoid constant rebuilds of
executables and libraries.
Copied from Perforce
Change: 179165
ServerID: perforce.ravenbrook.com
---
mps/code/comm.gmk | 28 +++++-----------------------
1 file changed, 5 insertions(+), 23 deletions(-)
(limited to 'mps/code')
diff --git a/mps/code/comm.gmk b/mps/code/comm.gmk
index 1726e451543..0cb317c1042 100644
--- a/mps/code/comm.gmk
+++ b/mps/code/comm.gmk
@@ -173,7 +173,7 @@ MPMCOMMON = mpsi.c mpm.c arenavm.c arenacl.c arena.c global.c locus.c \
trace.c traceanc.c root.c seg.c format.c buffer.c ref.c \
bt.c ring.c shield.c ld.c event.c sac.c message.c \
poolmrg.c poolmfs.c poolmv.c dbgpool.c dbgpooli.c \
- boot.c meter.c splay.c cbs.c diag.c version.c
+ boot.c meter.c splay.c cbs.c diag.c
MPM = $(MPMCOMMON) $(MPMPF)
SWCOMMON = mpsi.c mpm.c arenavm.c arenacl.c arena.c global.c locus.c \
tract.c walk.c reserv.c protocol.c pool.c poolabs.c \
@@ -181,7 +181,7 @@ SWCOMMON = mpsi.c mpm.c arenavm.c arenacl.c arena.c global.c locus.c \
bt.c ring.c shield.c ld.c event.c sac.c message.c \
poolmrg.c poolmfs.c poolmv.c dbgpool.c dbgpooli \
poolams.c poolamsi.c poolmvff.c \
- boot.c meter.c splay.c cbs.c version.c mpsioan.c
+ boot.c meter.c splay.c cbs.c mpsioan.c
SW = $(SWCOMMON) $(SWPF)
@@ -471,25 +471,6 @@ test -d $(PFM)/$(VARIETY) || mkdir $(PFM)/$(VARIETY)
$(CC) $(CFLAGS) -c -o $@ $<
endef
-# .force: FORCE is a dependent that can be used to force targets to be
-# built.
-.PHONY: FORCE
-# A rule with no dependents and no commands always causes update.
-# (See GNUMake doc, make.info, Node: Force Targets)
-# (ignore the bit about using FORCE as being the same as using .PHONY
-# it's not, and we make use of that, see .special.version below)
-FORCE:
-
-# .special.version: version.o has a special rule so that it is always
-# built. This rule has no commands, this has the effect of adding the
-# dependents to those specified by other rules (in this case the implicit
-# .o:.c rule below, .rule.c-to-o). The extra dependent added is the
-# FORCE dependent (defined above, .force) which causes the target to be
-# always built.
-ifdef VARIETY
-$(PFM)/$(VARIETY)/version.o: FORCE
-endif
-
# .rule.c-to-o:
$(PFM)/$(VARIETY)/%.o: %.c
$(run-cc)
@@ -534,14 +515,15 @@ endif
$(PFM)/$(VARIETY)/%.a:
$(ECHO) "$(PFM): $@"
rm -f $@
- $(AR) $(ARFLAGS) $@ $^
+ $(CC) $(CFLAGS) -c -o $(PFM)/$(VARIETY)/version.o version.c
+ $(AR) $(ARFLAGS) $@ $^ $(PFM)/$(VARIETY)/version.o
$(RANLIB) $@
# Executable
$(PFM)/$(VARIETY)/%:
$(ECHO) "$(PFM): $@"
- $(CC) $(LINKFLAGS) -o $@ $^ $(LIBS)
+ $(CC) $(CFLAGS) $(LINKFLAGS) -o $@ $^ version.c $(LIBS)
# C. COPYRIGHT AND LICENSE
--
cgit v1.2.1
From 538a119b38cd0453582b8ec566c5fa5501ebf1e1 Mon Sep 17 00:00:00 2001
From: Richard Brooksby
Date: Sun, 2 Sep 2012 08:26:56 +0100
Subject: Trimming varieties to match comm.gmk.
Copied from Perforce
Change: 179166
ServerID: perforce.ravenbrook.com
---
mps/code/commpost.nmk | 4 +---
mps/code/commpre.nmk | 10 ----------
2 files changed, 1 insertion(+), 13 deletions(-)
(limited to 'mps/code')
diff --git a/mps/code/commpost.nmk b/mps/code/commpost.nmk
index 3a855d81d88..e579daabd23 100644
--- a/mps/code/commpost.nmk
+++ b/mps/code/commpost.nmk
@@ -66,10 +66,8 @@ clean:
!IFDEF TARGET
!IFNDEF VARIETY
target:
- $(MAKE) /nologo /f $(PFM).nmk VARIETY=hi variety
+ $(MAKE) /nologo /f $(PFM).nmk VARIETY=he variety
$(MAKE) /nologo /f $(PFM).nmk VARIETY=ci variety
- $(MAKE) /nologo /f $(PFM).nmk VARIETY=ti variety
- $(MAKE) /nologo /f $(PFM).nmk VARIETY=wi variety
!ENDIF
!ENDIF
diff --git a/mps/code/commpre.nmk b/mps/code/commpre.nmk
index a27b704134c..385431e138e 100644
--- a/mps/code/commpre.nmk
+++ b/mps/code/commpre.nmk
@@ -145,11 +145,8 @@ CFLAGSEXTERNAL =
# The combinations of variety
# %%VARIETY: Define a macro containing the set of flags for the new variety.
CFWE = /DCONFIG_VAR_WE $(CRTFLAGSW) $(CFLAGSHOT) $(CFLAGSEXTERNAL)
-CFWI = /DCONFIG_VAR_WI $(CRTFLAGSW) $(CFLAGSHOT) $(CFLAGSINTERNAL)
CFHE = /DCONFIG_VAR_HE $(CRTFLAGSH) $(CFLAGSHOT) $(CFLAGSEXTERNAL)
-CFHI = /DCONFIG_VAR_HI $(CRTFLAGSH) $(CFLAGSHOT) $(CFLAGSINTERNAL)
CFDI = /DCONFIG_VAR_DI $(CRTFLAGSH) $(CFLAGSHOT) $(CFLAGSINTERNAL)
-CFCE = /DCONFIG_VAR_CE $(CRTFLAGSC) $(CFLAGSCOOL) $(CFLAGSEXTERNAL)
CFCI = /DCONFIG_VAR_CI $(CRTFLAGSC) $(CFLAGSCOOL) $(CFLAGSINTERNAL)
CFTI = /DCONFIG_VAR_TI $(CRTFLAGSC) $(CFLAGSCOOL) $(CFLAGSINTERNAL)
@@ -165,11 +162,8 @@ LINKFLAGSINTERNAL = /DEBUG
LINKFLAGSEXTERNAL = /RELEASE
LFWE = $(LINKFLAGSWHITE) $(LINKFLAGSEXTERNAL)
-LFWI = $(LINKFLAGSWHITE) $(LINKFLAGSINTERNAL)
LFHE = $(LINKFLAGSHOT) $(LINKFLAGSEXTERNAL)
-LFHI = $(LINKFLAGSHOT) $(LINKFLAGSINTERNAL)
LFDI = $(LINKFLAGSHOT) $(LINKFLAGSINTERNAL)
-LFCE = $(LINKFLAGSCOOL) $(LINKFLAGSEXTERNAL)
LFCI = $(LINKFLAGSCOOL) $(LINKFLAGSINTERNAL)
LFTI = $(LINKFLAGSCOOL) $(LINKFLAGSINTERNAL)
@@ -181,14 +175,10 @@ LIBMAN = lib # can't call this LIB - it screws the environment
LIBFLAGSCOMMON = /nologo
LIBFLAGSWE =
-LIBFLAGSWI =
LIBFLAGSHE =
-LIBFLAGSHI =
LIBFLAGSDI =
-LIBFLAGSCE =
LIBFLAGSCI =
LIBFLAGSTI =
-#LIBFLAGSCV =
# Browser database manager [not used at present]
#BSC = bscmake
--
cgit v1.2.1
From ce014ebd6e02fe110a0402086395a86ee5f51d98 Mon Sep 17 00:00:00 2001
From: Richard Brooksby
Date: Sun, 2 Sep 2012 09:03:32 +0100
Subject: Removing old variety substitutions.
Copied from Perforce
Change: 179167
ServerID: perforce.ravenbrook.com
---
mps/code/w3i3mv.nmk | 91 ++---------------------------------------------------
mps/code/w3i6mv.nmk | 87 --------------------------------------------------
2 files changed, 2 insertions(+), 176 deletions(-)
(limited to 'mps/code')
diff --git a/mps/code/w3i3mv.nmk b/mps/code/w3i3mv.nmk
index 93ef97984f9..bf2258a7e4a 100644
--- a/mps/code/w3i3mv.nmk
+++ b/mps/code/w3i3mv.nmk
@@ -22,7 +22,7 @@ MPM = \
\
\
\
-
+
SW = \
\
\
@@ -32,7 +32,7 @@ SW = \
\
\
\
-
+
PLINTH =
AMC =
AMS =
@@ -86,64 +86,6 @@ POOLNOBJ = $(POOLNOBJ0:>=.obj)
TESTLIBOBJ0 = $(TESTLIB:<=w3i3mv\he\)
TESTLIBOBJ = $(TESTLIBOBJ0:>=.obj)
-!ELSEIF "$(VARIETY)" == "ce"
-CFLAGS=$(CFLAGSCOMMONPRE) $(CFCE) $(CFLAGSCOMMONPOST)
-LINKFLAGS=$(LINKFLAGSCOMMON) $(LFCE)
-LIBFLAGS=$(LIBFLAGSCOMMON) $(LIBFLAGSCE)
-MPMOBJ0 = $(MPM:<=w3i3mv\ce\)
-MPMOBJ = $(MPMOBJ0:>=.obj)
-PLINTHOBJ0 = $(PLINTH:<=w3i3mv\ce\)
-PLINTHOBJ = $(PLINTHOBJ0:>=.obj)
-SWOBJ0 = $(SW:<=w3i3mv\ce\)
-SWOBJ = $(SWOBJ0:>=.obj)
-AMSOBJ0 = $(AMS:<=w3i3mv\ce\)
-AMSOBJ = $(AMSOBJ0:>=.obj)
-AMCOBJ0 = $(AMC:<=w3i3mv\ce\)
-AMCOBJ = $(AMCOBJ0:>=.obj)
-AWLOBJ0 = $(AWL:<=w3i3mv\ce\)
-AWLOBJ = $(AWLOBJ0:>=.obj)
-LOOBJ0 = $(LO:<=w3i3mv\ce\)
-LOOBJ = $(LOOBJ0:>=.obj)
-SNCOBJ0 = $(SNC:<=w3i3mv\ce\)
-SNCOBJ = $(SNCOBJ0:>=.obj)
-DWOBJ0 = $(DW:<=w3i3mv\ce\)
-DWOBJ = $(DWOBJ0:>=.obj)
-FMTTESTOBJ0 = $(FMTTEST:<=w3i3mv\ce\)
-FMTTESTOBJ = $(FMTTESTOBJ0:>=.obj)
-POOLNOBJ0 = $(POOLN:<=w3i3mv\ce\)
-POOLNOBJ = $(POOLNOBJ0:>=.obj)
-TESTLIBOBJ0 = $(TESTLIB:<=w3i3mv\ce\)
-TESTLIBOBJ = $(TESTLIBOBJ0:>=.obj)
-
-!ELSEIF "$(VARIETY)" == "hi"
-CFLAGS=$(CFLAGSCOMMONPRE) $(CFHI) $(CFLAGSCOMMONPOST)
-LINKFLAGS=$(LINKFLAGSCOMMON) $(LFHI)
-LIBFLAGS=$(LIBFLAGSCOMMON) $(LIBFLAGSHI)
-MPMOBJ0 = $(MPM:<=w3i3mv\hi\)
-MPMOBJ = $(MPMOBJ0:>=.obj)
-PLINTHOBJ0 = $(PLINTH:<=w3i3mv\hi\)
-PLINTHOBJ = $(PLINTHOBJ0:>=.obj)
-SWOBJ0 = $(SW:<=w3i3mv\hi\)
-SWOBJ = $(SWOBJ0:>=.obj)
-AMSOBJ0 = $(AMS:<=w3i3mv\hi\)
-AMSOBJ = $(AMSOBJ0:>=.obj)
-AMCOBJ0 = $(AMC:<=w3i3mv\hi\)
-AMCOBJ = $(AMCOBJ0:>=.obj)
-AWLOBJ0 = $(AWL:<=w3i3mv\hi\)
-AWLOBJ = $(AWLOBJ0:>=.obj)
-LOOBJ0 = $(LO:<=w3i3mv\hi\)
-LOOBJ = $(LOOBJ0:>=.obj)
-SNCOBJ0 = $(SNC:<=w3i3mv\hi\)
-SNCOBJ = $(SNCOBJ0:>=.obj)
-DWOBJ0 = $(DW:<=w3i3mv\hi\)
-DWOBJ = $(DWOBJ0:>=.obj)
-FMTTESTOBJ0 = $(FMTTEST:<=w3i3mv\hi\)
-FMTTESTOBJ = $(FMTTESTOBJ0:>=.obj)
-POOLNOBJ0 = $(POOLN:<=w3i3mv\hi\)
-POOLNOBJ = $(POOLNOBJ0:>=.obj)
-TESTLIBOBJ0 = $(TESTLIB:<=w3i3mv\hi\)
-TESTLIBOBJ = $(TESTLIBOBJ0:>=.obj)
-
!ELSEIF "$(VARIETY)" == "di"
CFLAGS=$(CFLAGSCOMMONPRE) $(CFDI) $(CFLAGSCOMMONPOST)
LINKFLAGS=$(LINKFLAGSCOMMON) $(LFDI)
@@ -231,35 +173,6 @@ POOLNOBJ = $(POOLNOBJ0:>=.obj)
TESTLIBOBJ0 = $(TESTLIB:<=w3i3mv\ti\)
TESTLIBOBJ = $(TESTLIBOBJ0:>=.obj)
-!ELSEIF "$(VARIETY)" == "wi"
-CFLAGS=$(CFLAGSCOMMONPRE) $(CFWI) $(CFLAGSCOMMONPOST)
-LINKFLAGS=$(LINKFLAGSCOMMON) $(LFWI)
-LIBFLAGS=$(LIBFLAGSCOMMON) $(LIBFLAGSWI)
-MPMOBJ0 = $(MPM:<=w3i3mv\wi\)
-MPMOBJ = $(MPMOBJ0:>=.obj)
-PLINTHOBJ0 = $(PLINTH:<=w3i3mv\wi\)
-PLINTHOBJ = $(PLINTHOBJ0:>=.obj)
-SWOBJ0 = $(SW:<=w3i3mv\wi\)
-SWOBJ = $(SWOBJ0:>=.obj)
-AMSOBJ0 = $(AMS:<=w3i3mv\wi\)
-AMSOBJ = $(AMSOBJ0:>=.obj)
-AMCOBJ0 = $(AMC:<=w3i3mv\wi\)
-AMCOBJ = $(AMCOBJ0:>=.obj)
-AWLOBJ0 = $(AWL:<=w3i3mv\wi\)
-AWLOBJ = $(AWLOBJ0:>=.obj)
-LOOBJ0 = $(LO:<=w3i3mv\wi\)
-LOOBJ = $(LOOBJ0:>=.obj)
-SNCOBJ0 = $(SNC:<=w3i3mv\wi\)
-SNCOBJ = $(SNCOBJ0:>=.obj)
-DWOBJ0 = $(DW:<=w3i3mv\wi\)
-DWOBJ = $(DWOBJ0:>=.obj)
-FMTTESTOBJ0 = $(FMTTEST:<=w3i3mv\wi\)
-FMTTESTOBJ = $(FMTTESTOBJ0:>=.obj)
-POOLNOBJ0 = $(POOLN:<=w3i3mv\wi\)
-POOLNOBJ = $(POOLNOBJ0:>=.obj)
-TESTLIBOBJ0 = $(TESTLIB:<=w3i3mv\wi\)
-TESTLIBOBJ = $(TESTLIBOBJ0:>=.obj)
-
!ELSEIF "$(VARIETY)" == "we"
CFLAGS=$(CFLAGSCOMMONPRE) $(CFWE) $(CFLAGSCOMMONPOST)
LINKFLAGS=$(LINKFLAGSCOMMON) $(LFWE)
diff --git a/mps/code/w3i6mv.nmk b/mps/code/w3i6mv.nmk
index f703ff2cc2c..255600d11ce 100644
--- a/mps/code/w3i6mv.nmk
+++ b/mps/code/w3i6mv.nmk
@@ -88,64 +88,6 @@ POOLNOBJ = $(POOLNOBJ0:>=.obj)
TESTLIBOBJ0 = $(TESTLIB:<=w3i6mv\he\)
TESTLIBOBJ = $(TESTLIBOBJ0:>=.obj)
-!ELSEIF "$(VARIETY)" == "ce"
-CFLAGS=$(CFLAGSCOMMONPRE) $(CFCE) $(CFLAGSCOMMONPOST)
-LINKFLAGS=$(LINKFLAGSCOMMON) $(LFCE)
-LIBFLAGS=$(LIBFLAGSCOMMON) $(LIBFLAGSCE)
-MPMOBJ0 = $(MPM:<=w3i6mv\ce\)
-MPMOBJ = $(MPMOBJ0:>=.obj)
-PLINTHOBJ0 = $(PLINTH:<=w3i6mv\ce\)
-PLINTHOBJ = $(PLINTHOBJ0:>=.obj)
-SWOBJ0 = $(SW:<=w3i6mv\ce\)
-SWOBJ = $(SWOBJ0:>=.obj)
-AMSOBJ0 = $(AMS:<=w3i6mv\ce\)
-AMSOBJ = $(AMSOBJ0:>=.obj)
-AMCOBJ0 = $(AMC:<=w3i6mv\ce\)
-AMCOBJ = $(AMCOBJ0:>=.obj)
-AWLOBJ0 = $(AWL:<=w3i6mv\ce\)
-AWLOBJ = $(AWLOBJ0:>=.obj)
-LOOBJ0 = $(LO:<=w3i6mv\ce\)
-LOOBJ = $(LOOBJ0:>=.obj)
-SNCOBJ0 = $(SNC:<=w3i6mv\ce\)
-SNCOBJ = $(SNCOBJ0:>=.obj)
-DWOBJ0 = $(DW:<=w3i6mv\ce\)
-DWOBJ = $(DWOBJ0:>=.obj)
-FMTTESTOBJ0 = $(FMTTEST:<=w3i6mv\ce\)
-FMTTESTOBJ = $(FMTTESTOBJ0:>=.obj)
-POOLNOBJ0 = $(POOLN:<=w3i6mv\ce\)
-POOLNOBJ = $(POOLNOBJ0:>=.obj)
-TESTLIBOBJ0 = $(TESTLIB:<=w3i6mv\ce\)
-TESTLIBOBJ = $(TESTLIBOBJ0:>=.obj)
-
-!ELSEIF "$(VARIETY)" == "hi"
-CFLAGS=$(CFLAGSCOMMONPRE) $(CFHI) $(CFLAGSCOMMONPOST)
-LINKFLAGS=$(LINKFLAGSCOMMON) $(LFHI)
-LIBFLAGS=$(LIBFLAGSCOMMON) $(LIBFLAGSHI)
-MPMOBJ0 = $(MPM:<=w3i6mv\hi\)
-MPMOBJ = $(MPMOBJ0:>=.obj)
-PLINTHOBJ0 = $(PLINTH:<=w3i6mv\hi\)
-PLINTHOBJ = $(PLINTHOBJ0:>=.obj)
-SWOBJ0 = $(SW:<=w3i6mv\hi\)
-SWOBJ = $(SWOBJ0:>=.obj)
-AMSOBJ0 = $(AMS:<=w3i6mv\hi\)
-AMSOBJ = $(AMSOBJ0:>=.obj)
-AMCOBJ0 = $(AMC:<=w3i6mv\hi\)
-AMCOBJ = $(AMCOBJ0:>=.obj)
-AWLOBJ0 = $(AWL:<=w3i6mv\hi\)
-AWLOBJ = $(AWLOBJ0:>=.obj)
-LOOBJ0 = $(LO:<=w3i6mv\hi\)
-LOOBJ = $(LOOBJ0:>=.obj)
-SNCOBJ0 = $(SNC:<=w3i6mv\hi\)
-SNCOBJ = $(SNCOBJ0:>=.obj)
-DWOBJ0 = $(DW:<=w3i6mv\hi\)
-DWOBJ = $(DWOBJ0:>=.obj)
-FMTTESTOBJ0 = $(FMTTEST:<=w3i6mv\hi\)
-FMTTESTOBJ = $(FMTTESTOBJ0:>=.obj)
-POOLNOBJ0 = $(POOLN:<=w3i6mv\hi\)
-POOLNOBJ = $(POOLNOBJ0:>=.obj)
-TESTLIBOBJ0 = $(TESTLIB:<=w3i6mv\hi\)
-TESTLIBOBJ = $(TESTLIBOBJ0:>=.obj)
-
!ELSEIF "$(VARIETY)" == "di"
CFLAGS=$(CFLAGSCOMMONPRE) $(CFDI) $(CFLAGSCOMMONPOST)
LINKFLAGS=$(LINKFLAGSCOMMON) $(LFDI)
@@ -233,35 +175,6 @@ POOLNOBJ = $(POOLNOBJ0:>=.obj)
TESTLIBOBJ0 = $(TESTLIB:<=w3i6mv\ti\)
TESTLIBOBJ = $(TESTLIBOBJ0:>=.obj)
-!ELSEIF "$(VARIETY)" == "wi"
-CFLAGS=$(CFLAGSCOMMONPRE) $(CFWI) $(CFLAGSCOMMONPOST)
-LINKFLAGS=$(LINKFLAGSCOMMON) $(LFWI)
-LIBFLAGS=$(LIBFLAGSCOMMON) $(LIBFLAGSWI)
-MPMOBJ0 = $(MPM:<=w3i6mv\wi\)
-MPMOBJ = $(MPMOBJ0:>=.obj)
-PLINTHOBJ0 = $(PLINTH:<=w3i6mv\wi\)
-PLINTHOBJ = $(PLINTHOBJ0:>=.obj)
-SWOBJ0 = $(SW:<=w3i6mv\wi\)
-SWOBJ = $(SWOBJ0:>=.obj)
-AMSOBJ0 = $(AMS:<=w3i6mv\wi\)
-AMSOBJ = $(AMSOBJ0:>=.obj)
-AMCOBJ0 = $(AMC:<=w3i6mv\wi\)
-AMCOBJ = $(AMCOBJ0:>=.obj)
-AWLOBJ0 = $(AWL:<=w3i6mv\wi\)
-AWLOBJ = $(AWLOBJ0:>=.obj)
-LOOBJ0 = $(LO:<=w3i6mv\wi\)
-LOOBJ = $(LOOBJ0:>=.obj)
-SNCOBJ0 = $(SNC:<=w3i6mv\wi\)
-SNCOBJ = $(SNCOBJ0:>=.obj)
-DWOBJ0 = $(DW:<=w3i6mv\wi\)
-DWOBJ = $(DWOBJ0:>=.obj)
-FMTTESTOBJ0 = $(FMTTEST:<=w3i6mv\wi\)
-FMTTESTOBJ = $(FMTTESTOBJ0:>=.obj)
-POOLNOBJ0 = $(POOLN:<=w3i6mv\wi\)
-POOLNOBJ = $(POOLNOBJ0:>=.obj)
-TESTLIBOBJ0 = $(TESTLIB:<=w3i6mv\wi\)
-TESTLIBOBJ = $(TESTLIBOBJ0:>=.obj)
-
!ELSEIF "$(VARIETY)" == "we"
CFLAGS=$(CFLAGSCOMMONPRE) $(CFWE) $(CFLAGSCOMMONPOST)
LINKFLAGS=$(LINKFLAGSCOMMON) $(LFWE)
--
cgit v1.2.1
From 24edbc4ab4d4a25208ab38405841b646b51b21f1 Mon Sep 17 00:00:00 2001
From: Richard Brooksby
Date: Sun, 2 Sep 2012 09:03:55 +0100
Subject: Building a fresh copy of version.c in the link/library step to avoid
constant rebuilding.
Copied from Perforce
Change: 179168
ServerID: perforce.ravenbrook.com
---
mps/code/commpost.nmk | 24 ++++++++----------------
1 file changed, 8 insertions(+), 16 deletions(-)
(limited to 'mps/code')
diff --git a/mps/code/commpost.nmk b/mps/code/commpost.nmk
index e579daabd23..283869eb6aa 100644
--- a/mps/code/commpost.nmk
+++ b/mps/code/commpost.nmk
@@ -83,11 +83,6 @@ variety: $(PFM)\$(VARIETY)\$(TARGET)
mpsicv.cov:
$(MAKE) /nologo /f $(PFM).nmk TARGET=$@ VARIETY=cv variety
-# FORCE
-# Used to force a target to be built.
-# Depends on there being no file called "FORCE".
-FORCE:
-
# GENUINE TARGETS
#
@@ -98,15 +93,8 @@ FORCE:
# to build it.
# %%TARGET: Add your new target here
-
!IFDEF VARIETY
-# .special.version: version.obj has a special rule so that it is always
-# built. This rule has no commands, meaning that the commands from
-# other rules (the implicit .c -> .obj rule in particular) will be used.
-# (Actually, there's a MS bug that causes this to randomly fail to build.)
-$(PFM)\$(VARIETY)\version.obj: FORCE
-
$(PFM)\$(VARIETY)\finalcv.exe: $(PFM)\$(VARIETY)\finalcv.obj \
$(MPMOBJ) $(PLINTHOBJ) $(AMCOBJ) $(FMTTESTOBJ) \
$(MRGOBJ) $(TESTLIBOBJ)
@@ -256,17 +244,20 @@ $(PFM)\$(VARIETY)\exposet0.exe: $(PFM)\$(VARIETY)\exposet0.obj \
$(PFM)\$(VARIETY)\mmsw.lib: $(SWOBJ)
$(ECHO) $@
- $(LIBMAN) $(LIBFLAGS) /OUT:$@ $**
+ cl /c $(CFLAGS) /Fd$(PFM)\$(VARIETY)\ /Fo$(PFM)\$(VARIETY)\version.o version.c
+ $(LIBMAN) $(LIBFLAGS) /OUT:$@ $** $(PFM)\$(VARIETY)\version.o
$(PFM)\$(VARIETY)\mmdw.lib: $(MPMOBJ) $(AMCOBJ) $(DWOBJ) \
$(AWLOBJ) $(LOOBJ) $(SNCOBJ)
$(ECHO) $@
- $(LIBMAN) $(LIBFLAGS) /OUT:$@ $**
+ cl /c $(CFLAGS) /Fd$(PFM)\$(VARIETY)\ /Fo$(PFM)\$(VARIETY)\version.o version.c
+ $(LIBMAN) $(LIBFLAGS) /OUT:$@ $** $(PFM)\$(VARIETY)\version.o
$(PFM)\$(VARIETY)\mps.lib: $(MPMOBJ) $(AMCOBJ) $(LOOBJ) $(SNCOBJ) \
$(MVFFOBJ) $(AMSOBJ) $(AWLOBJ)
$(ECHO) $@
- $(LIBMAN) $(LIBFLAGS) /OUT:$@ $**
+ cl /c $(CFLAGS) /Fd$(PFM)\$(VARIETY)\ /Fo$(PFM)\$(VARIETY)\version.o version.c
+ $(LIBMAN) $(LIBFLAGS) /OUT:$@ $** $(PFM)\$(VARIETY)\version.o
# We would like to use $** in the linker command line here, but we
# cannot because the target, mpsdy.dll, depends on the w3gen.def file,
@@ -324,7 +315,8 @@ $(PFM)\$(VARIETY)\mpsplcb.lib: $(PFM)\$(VARIETY)\mpslibcb.obj
{$(PFM)\$(VARIETY)}.obj{$(PFM)\$(VARIETY)}.exe:
$(ECHO) $@
- $(LINKER) $(LINKFLAGS) /PDB:$*.pdb /OUT:$@ $(**)
+ cl /c $(CFLAGS) /Fd$(PFM)\$(VARIETY)\ /Fo$(PFM)\$(VARIETY)\version.o version.c
+ $(LINKER) $(LINKFLAGS) /PDB:$*.pdb /OUT:$@ $(**) $(PFM)\$(VARIETY)\version.o
# C. COPYRIGHT AND LICENSE
--
cgit v1.2.1
From fa0bfed44e43eab3cead0b0e10082038438b0a01 Mon Sep 17 00:00:00 2001
From: Richard Brooksby
Date: Sun, 2 Sep 2012 10:39:42 +0100
Subject: Removing product-specific configuration, including dylan- and
scriptworks-specific targets and config_prod configurations. we should
support any necessary requirements generically.
It's now possible to write "cc -c mps.c" and get a sensible result.
Copied from Perforce
Change: 179169
ServerID: perforce.ravenbrook.com
---
mps/code/comm.gmk | 61 +-----
mps/code/commpost.nmk | 18 +-
mps/code/commpre.nmk | 31 +--
mps/code/config.h | 44 +----
mps/code/global.c | 3 +
mps/code/mps.h | 4 -
mps/code/mps.xcodeproj/project.pbxproj | 332 +++++++++++++++++++++++++++++++--
mps/code/mpsi.c | 13 --
8 files changed, 331 insertions(+), 175 deletions(-)
(limited to 'mps/code')
diff --git a/mps/code/comm.gmk b/mps/code/comm.gmk
index 0cb317c1042..6ee91523612 100644
--- a/mps/code/comm.gmk
+++ b/mps/code/comm.gmk
@@ -30,7 +30,6 @@
# MPMPF platform-dependent C sources for the "mpm" part
# MPMS assembler sources for the "mpm" part (.s files)
# MPMPS pre-processor assembler sources for the "mpm" part (.S files)
-# SWPF platform-dependent C sources for the "sw" part
#
# %%PART: Add a new parameter above for the files included in the part.
#
@@ -89,29 +88,8 @@ endif
# C FLAGS
-# Some flags depend on the target. Alas.
-ifdef TARGET
-ifeq ($(TARGET),mmsw.a)
-CFLAGSTARGET = -DCONFIG_PROD_EPCORE
-else
-ifeq ($(TARGET),replaysw)
-CFLAGSTARGET = -DCONFIG_PROD_EPCORE
-else
-ifeq ($(TARGET),mmdw.a)
-CFLAGSTARGET = -DCONFIG_PROD_DYLAN
-else
-ifeq ($(TARGET),replay)
-CFLAGSTARGET = -DCONFIG_PROD_DYLAN
-else
-CFLAGSTARGET = -DCONFIG_PROD_MPS
-endif
-endif
-endif
-endif
-endif
-
# These flags are included in all compilations.
-CFLAGSCOMMON = $(PFMDEFS) $(CFLAGSTARGET) $(CFLAGSCOMPILER)
+CFLAGSCOMMON = $(PFMDEFS) $(CFLAGSCOMPILER)
# %%VARIETY: Define a macro containing the set of flags for the new
# variety.
@@ -175,14 +153,6 @@ MPMCOMMON = mpsi.c mpm.c arenavm.c arenacl.c arena.c global.c locus.c \
poolmrg.c poolmfs.c poolmv.c dbgpool.c dbgpooli.c \
boot.c meter.c splay.c cbs.c diag.c
MPM = $(MPMCOMMON) $(MPMPF)
-SWCOMMON = mpsi.c mpm.c arenavm.c arenacl.c arena.c global.c locus.c \
- tract.c walk.c reserv.c protocol.c pool.c poolabs.c \
- trace.c traceanc.c root.c seg.c format.c buffer.c ref.c \
- bt.c ring.c shield.c ld.c event.c sac.c message.c \
- poolmrg.c poolmfs.c poolmv.c dbgpool.c dbgpooli \
- poolams.c poolamsi.c poolmvff.c \
- boot.c meter.c splay.c cbs.c mpsioan.c
-SW = $(SWCOMMON) $(SWPF)
# These map the source file lists onto object files and dependency files
@@ -209,21 +179,6 @@ POOLNOBJ = $(POOLN:%.c=$(PFM)/$(VARIETY)/%.o)
POOLNDEP = $(POOLN:%.c=$(PFM)/$(VARIETY)/%.d)
MVFFOBJ = $(MVFF:%.c=$(PFM)/$(VARIETY)/%.o)
MVFFDEP = $(MVFF:%.c=$(PFM)/$(VARIETY)/%.d)
-SWOBJ = $(SW:%.c=$(PFM)/$(VARIETY)/%.o)
-
-# The following hack for SWDEP only creates those dependencies when
-# a SW target is being built.
-ifdef TARGET
-ifeq ($(TARGET),mmsw.a)
-SWDEP = $(SW:%.c=$(PFM)/$(VARIETY)/%.d)
-else
-ifeq ($(TARGET),depend)
-SWDEP = $(SW:%.c=$(PFM)/$(VARIETY)/%.d)
-else
-SWDEP =
-endif
-endif
-endif
TESTLIBOBJ = $(TESTLIB:%.c=$(PFM)/$(VARIETY)/%.o)
TESTLIBDEP = $(TESTLIB:%.c=$(PFM)/$(VARIETY)/%.d)
@@ -241,8 +196,7 @@ endif
# == Pseudo-targets ==
-# %%TARGET: Add the target to the all dependencies, if it uses the
-# CONFIG_PROD_MPS configuration, to swall if CONFIG_PROD_EPCORE
+# %%TARGET: Add the target to the all dependencies
all: mpmss sacss amcss amcsshe amsss amssshe segsmss awlut awluthe \
mpsicv lockcov poolncv locv qs apss \
@@ -252,7 +206,6 @@ all: mpmss sacss amcss amcsshe amsss amssshe segsmss awlut awluthe \
eventcnv \
mps.a mpsplan.a
-swall: mmsw.a replaysw
# Runs the automatic tests that are built with CONFIG_PROD_MPS.
# These tests are run overnight (see design.buildsys.overnight).
@@ -281,7 +234,7 @@ mpmss sacss amcss amcssth amcsshe amsss amssshe segsmss awlut awlutth \
exposet0 \
zcoll zmess \
eventcnv replay replaysw \
- mps.a mmsw.a mpsplan.a mmdw.a: phony
+ mps.a mpsplan.a: phony
ifdef VARIETY
$(MAKE) -f $(PFM).gmk TARGET=$@ variety
else
@@ -445,14 +398,8 @@ $(PFM)/$(VARIETY)/replay: $(PFM)/$(VARIETY)/replay.o \
$(PFM)/$(VARIETY)/mps.a: $(MPMOBJ) $(AMCOBJ) $(SNCOBJ) $(MVFFOBJ)
-$(PFM)/$(VARIETY)/mmdw.a: $(MPMOBJ) $(AMCOBJ) $(LOOBJ) $(SNCOBJ) \
- $(FMTDYOBJ) $(AWLOBJ)
-
$(PFM)/$(VARIETY)/mpsplan.a: $(PLINTHOBJ)
-$(PFM)/$(VARIETY)/mmsw.a: \
- $(SWOBJ)
-
endif
@@ -498,7 +445,7 @@ $(PFM)/$(VARIETY)/%.d: %.c
ifdef VARIETY
ifdef TARGET
# %%PART: Add the dependency file macro for the new part here.
-include $(MPMDEP) $(AMSDEP) $(AMCDEP) $(LODEP) $(SWDEP) \
+include $(MPMDEP) $(AMSDEP) $(AMCDEP) $(LODEP) \
$(AWLDEP) $(POOLNDEP) $(TESTLIBDEP) $(FMTDYDEP) $(FMTHETSTDEP) \
$(PLINTHDEP) $(EVENTPROCDEP)
endif
diff --git a/mps/code/commpost.nmk b/mps/code/commpost.nmk
index 283869eb6aa..fc197e48353 100644
--- a/mps/code/commpost.nmk
+++ b/mps/code/commpost.nmk
@@ -11,8 +11,7 @@
# PSEUDO-TARGETS
# "all" builds all the varieties of all targets
-# %%TARGET: Add the target to the all dependencies, if it uses the
-# CONFIG_PROD_MPS configuration, to swall if CONFIG_PROD_EPCORE
+# %%TARGET: Add the target to the all dependencies.
all: mpmss.exe amcss.exe amsss.exe amssshe.exe segsmss.exe awlut.exe awluthe.exe\
mpsicv.exe lockutw3.exe lockcov.exe poolncv.exe locv.exe qs.exe apss.exe \
@@ -23,8 +22,6 @@ all: mpmss.exe amcss.exe amsss.exe amssshe.exe segsmss.exe awlut.exe awluthe.exe
eventcnv.exe \
mps.lib mpsplan.lib
-swall: mmsw.lib replaysw.exe
-
# Convenience targets
@@ -40,7 +37,7 @@ mpmss.exe amcss.exe amcsshe.exe amsss.exe amssshe.exe segsmss.exe awlut.exe awlu
walkt0.exe locbwcss.exe locusss.exe \
exposet0.exe zcoll.exe zmess.exe \
replay.exe replaysw.exe eventcnv.exe \
- mmdw.lib mmsw.lib mps.lib mpsplan.lib mpsplcb.lib \
+ mps.lib mpsplan.lib mpsplcb.lib \
mpsdy.dll:
!IFDEF VARIETY
$(MAKE) /nologo /f $(PFM).nmk TARGET=$@ variety
@@ -242,17 +239,6 @@ $(PFM)\$(VARIETY)\exposet0.exe: $(PFM)\$(VARIETY)\exposet0.obj \
$(MPMOBJ) $(AMCOBJ) $(PLINTHOBJ) $(FMTTESTOBJ) \
$(TESTLIBOBJ)
-$(PFM)\$(VARIETY)\mmsw.lib: $(SWOBJ)
- $(ECHO) $@
- cl /c $(CFLAGS) /Fd$(PFM)\$(VARIETY)\ /Fo$(PFM)\$(VARIETY)\version.o version.c
- $(LIBMAN) $(LIBFLAGS) /OUT:$@ $** $(PFM)\$(VARIETY)\version.o
-
-$(PFM)\$(VARIETY)\mmdw.lib: $(MPMOBJ) $(AMCOBJ) $(DWOBJ) \
- $(AWLOBJ) $(LOOBJ) $(SNCOBJ)
- $(ECHO) $@
- cl /c $(CFLAGS) /Fd$(PFM)\$(VARIETY)\ /Fo$(PFM)\$(VARIETY)\version.o version.c
- $(LIBMAN) $(LIBFLAGS) /OUT:$@ $** $(PFM)\$(VARIETY)\version.o
-
$(PFM)\$(VARIETY)\mps.lib: $(MPMOBJ) $(AMCOBJ) $(LOOBJ) $(SNCOBJ) \
$(MVFFOBJ) $(AMSOBJ) $(AWLOBJ)
$(ECHO) $@
diff --git a/mps/code/commpre.nmk b/mps/code/commpre.nmk
index 385431e138e..04ea7ff3d52 100644
--- a/mps/code/commpre.nmk
+++ b/mps/code/commpre.nmk
@@ -24,7 +24,6 @@
# AMS as above for the "ams" part
# LO as above for the "lo" part
# MRG as above for the "mrg" part
-# SW as above for the "sw" part
# TESTLIB as above for the "testlib" part
# NOISY if defined, causes command to be emitted
#
@@ -64,9 +63,6 @@
!IFNDEF AMS
!ERROR commpre.nmk: AMS not defined
!ENDIF
-!IFNDEF SW
-!ERROR commpre.nmk: SW not defined
-!ENDIF
!IFNDEF TESTLIB
!ERROR commpre.nmk: TESTLIB not defined
!ENDIF
@@ -90,30 +86,7 @@ ECHO = echo
# /ML means compile for single-threaded environment.
# A 'd' at the end means compile for debugging.
-!ifdef TARGET
-!if "$(TARGET)" == "mmsw.lib" || "$(TARGET)" == "epvmss.exe" || "$(TARGET)" == "replaysw.exe"
-CFLAGSTARGETPRE = /DCONFIG_PROD_EPCORE
-CFLAGSTARGETPOST =
-CRTFLAGSW = /MD
-CRTFLAGSH = /MDd
-CRTFLAGSC = /MDd
-LINKFLAGSWHITE = msvcrt.lib
-LINKFLAGSHOT = msvcrtd.lib
-LINKFLAGSCOOL = msvcrtd.lib
-
-!elseif "$(TARGET)" == "mmdw.lib"
-# /Oy- is actually 86-specific, but Dylan is only built for that platform
-CFLAGSTARGETPRE = /DCONFIG_PROD_DYLAN
-CFLAGSTARGETPOST = /Oy-
-CRTFLAGSW = /MT
-CRTFLAGSH = /MT
-CRTFLAGSC = /MT
-LINKFLAGSWHITE = libcmt.lib
-LINKFLAGSHOT = libcmt.lib
-LINKFLAGSCOOL = libcmt.lib
-
-!else
-CFLAGSTARGETPRE = /DCONFIG_PROD_MPS
+CFLAGSTARGETPRE =
CFLAGSTARGETPOST =
CRTFLAGSW = /MT
CRTFLAGSH = /MT
@@ -121,8 +94,6 @@ CRTFLAGSC = /MTd
LINKFLAGSWHITE = libcmt.lib
LINKFLAGSHOT = libcmt.lib
LINKFLAGSCOOL = libcmtd.lib
-!endif
-!endif
CFLAGSCOMMONPRE = /nologo /W4 /WX $(PFMDEFS) $(CFLAGSTARGETPRE)
CFLAGSCOMMONPOST = $(CFLAGSTARGETPOST)
diff --git a/mps/code/config.h b/mps/code/config.h
index 15c30b6e5e0..faaed43a2d9 100644
--- a/mps/code/config.h
+++ b/mps/code/config.h
@@ -365,28 +365,9 @@
*
* Convert CONFIG_PROD_* defined on compiler command line into
* internal configuration parameters. See .
+ * FIXME: Rework .
*/
-#if defined(CONFIG_PROD_EPCORE)
-#define MPS_PROD_STRING "epcore"
-#define MPS_PROD_EPCORE
-#define ARENA_INIT_SPARE_COMMIT_LIMIT ((Size)0)
-/* .nosync.why: ScriptWorks is single-threaded when using the MM. */
-#define THREAD_SINGLE
-#define PROTECTION_NONE
-#define DONGLE_NONE
-#define PROD_CHECKLEVEL_INITIAL CheckLevelMINIMAL /* CheckLevelSHALLOW is too slow for SW */
-
-#elif defined(CONFIG_PROD_DYLAN)
-#define MPS_PROD_STRING "dylan"
-#define MPS_PROD_DYLAN
-#define ARENA_INIT_SPARE_COMMIT_LIMIT ((Size)10uL*1024uL*1024uL)
-#define THREAD_MULTI
-#define PROTECTION
-#define DONGLE_NONE
-#define PROD_CHECKLEVEL_INITIAL CheckLevelSHALLOW
-
-#elif defined(CONFIG_PROD_MPS)
#define MPS_PROD_STRING "mps"
#define MPS_PROD_MPS
#define ARENA_INIT_SPARE_COMMIT_LIMIT ((Size)10uL*1024uL*1024uL)
@@ -395,29 +376,6 @@
#define DONGLE_NONE
#define PROD_CHECKLEVEL_INITIAL CheckLevelSHALLOW
-#else
-#error "No target product configured."
-#endif
-
-/* .prod.arena-size: ARENA_SIZE is currently set larger for the
- * MM/Dylan product as an interim solution.
- * See request.dylan.170170.sol.patch and change.dylan.buffalo.170170.
- * Note that this define is only used by the implementation of the
- * deprecated mps_space_create interface.
- */
-#define ARENA_SIZE ((Size)1<<30)
-
-
-/* Dongle configuration */
-
-#if defined(DONGLE)
-#define DONGLE_TEST_FREQUENCY ((unsigned int)4000)
-#elif defined(DONGLE_NONE)
-/* nothing to do */
-#else
-#error "No dongle configured."
-#endif
-
/* Pool Class AMC configuration */
diff --git a/mps/code/global.c b/mps/code/global.c
index 806da8dfbaa..4d647a3754c 100644
--- a/mps/code/global.c
+++ b/mps/code/global.c
@@ -462,6 +462,9 @@ Ring GlobalsRememberedSummaryRing(Globals global)
/* ArenaEnter -- enter the state where you can look at the arena */
+/* FIXME: Do we want to support the THREAD_SINGLE and PROTECTION_NONE build
+ configs? If so, how will we test them? RB 2012-09-02 */
+
#if defined(THREAD_SINGLE) && defined(PROTECTION_NONE)
void (ArenaEnter)(Arena arena)
{
diff --git a/mps/code/mps.h b/mps/code/mps.h
index 427d9ccba94..633dbb5ddac 100644
--- a/mps/code/mps.h
+++ b/mps/code/mps.h
@@ -274,10 +274,6 @@ extern mps_res_t mps_arena_create(mps_arena_t *, mps_arena_class_t, ...);
extern mps_res_t mps_arena_create_v(mps_arena_t *, mps_arena_class_t, va_list);
extern void mps_arena_destroy(mps_arena_t);
-/* these two for backward compatibility */
-extern mps_res_t mps_space_create(mps_space_t *);
-extern void mps_space_destroy(mps_space_t);
-
extern size_t mps_arena_reserved(mps_arena_t);
extern size_t mps_arena_committed(mps_arena_t);
extern size_t mps_arena_spare_committed(mps_arena_t);
diff --git a/mps/code/mps.xcodeproj/project.pbxproj b/mps/code/mps.xcodeproj/project.pbxproj
index cbee78a359f..2f8844affe0 100644
--- a/mps/code/mps.xcodeproj/project.pbxproj
+++ b/mps/code/mps.xcodeproj/project.pbxproj
@@ -2081,7 +2081,7 @@
31EEABDA156AAE9E00714D05 /* Project object */ = {
isa = PBXProject;
attributes = {
- LastUpgradeCheck = 0430;
+ LastUpgradeCheck = 0440;
};
buildConfigurationList = 31EEABDD156AAE9E00714D05 /* Build configuration list for PBXProject "mps" */;
compatibilityVersion = "Xcode 3.2";
@@ -2818,6 +2818,7 @@
3104AFF3156D37A0000A585A /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ COMBINE_HIDPI_IMAGES = YES;
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
@@ -2825,6 +2826,7 @@
3104AFF4156D37A0000A585A /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ COMBINE_HIDPI_IMAGES = YES;
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
@@ -3109,6 +3111,285 @@
};
name = Release;
};
+ 318387EB15DC30CC008E4EA0 /* WE */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
+ CLANG_WARN_IMPLICIT_SIGN_CONVERSION = YES;
+ CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_C_LANGUAGE_STANDARD = ansi;
+ GCC_OPTIMIZATION_LEVEL = 3;
+ GCC_PREPROCESSOR_DEFINITIONS = CONFIG_VAR_WE;
+ GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES;
+ GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES;
+ GCC_TREAT_WARNINGS_AS_ERRORS = NO;
+ GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO;
+ GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
+ GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES;
+ GCC_WARN_PEDANTIC = YES;
+ GCC_WARN_SHADOW = YES;
+ GCC_WARN_SIGN_COMPARE = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ GCC_WARN_UNKNOWN_PRAGMAS = YES;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_LABEL = YES;
+ GCC_WARN_UNUSED_PARAMETER = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ OTHER_CFLAGS = (
+ "-pedantic",
+ "-Wall",
+ "-Wno-extended-offsetof",
+ );
+ SDKROOT = macosx;
+ WARNING_CFLAGS = (
+ "-pedantic",
+ "-Wpointer-arith",
+ "-Wstrict-prototypes",
+ "-Wmissing-prototypes",
+ "-Winline",
+ "-Waggregate-return",
+ "-Wnested-externs",
+ "-Wcast-qual",
+ "-Wshadow",
+ "-Wall",
+ "-Wno-extended-offsetof",
+ );
+ };
+ name = WE;
+ };
+ 318387EC15DC30CC008E4EA0 /* WE */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COMBINE_HIDPI_IMAGES = YES;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = WE;
+ };
+ 318387ED15DC30CC008E4EA0 /* WE */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ COMBINE_HIDPI_IMAGES = YES;
+ EXECUTABLE_PREFIX = lib;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = WE;
+ };
+ 318387EE15DC30CC008E4EA0 /* WE */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = WE;
+ };
+ 318387EF15DC30CC008E4EA0 /* WE */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = WE;
+ };
+ 318387F015DC30CC008E4EA0 /* WE */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = WE;
+ };
+ 318387F115DC30CC008E4EA0 /* WE */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = WE;
+ };
+ 318387F215DC30CC008E4EA0 /* WE */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = WE;
+ };
+ 318387F315DC30CC008E4EA0 /* WE */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = WE;
+ };
+ 318387F415DC30CC008E4EA0 /* WE */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = WE;
+ };
+ 318387F515DC30CC008E4EA0 /* WE */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = WE;
+ };
+ 318387F615DC30CC008E4EA0 /* WE */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = WE;
+ };
+ 318387F715DC30CC008E4EA0 /* WE */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = WE;
+ };
+ 318387F815DC30CC008E4EA0 /* WE */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = WE;
+ };
+ 318387F915DC30CC008E4EA0 /* WE */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = WE;
+ };
+ 318387FA15DC30CC008E4EA0 /* WE */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = WE;
+ };
+ 318387FB15DC30CC008E4EA0 /* WE */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = WE;
+ };
+ 318387FC15DC30CC008E4EA0 /* WE */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = WE;
+ };
+ 318387FD15DC30CC008E4EA0 /* WE */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = WE;
+ };
+ 318387FE15DC30CC008E4EA0 /* WE */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = WE;
+ };
+ 318387FF15DC30CC008E4EA0 /* WE */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = WE;
+ };
+ 3183880015DC30CC008E4EA0 /* WE */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = WE;
+ };
+ 3183880115DC30CC008E4EA0 /* WE */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = WE;
+ };
+ 3183880215DC30CC008E4EA0 /* WE */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = WE;
+ };
+ 3183880315DC30CC008E4EA0 /* WE */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = WE;
+ };
+ 3183880415DC30CC008E4EA0 /* WE */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = WE;
+ };
+ 3183880515DC30CC008E4EA0 /* WE */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = WE;
+ };
+ 3183880615DC30CC008E4EA0 /* WE */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = WE;
+ };
+ 3183880715DC30CC008E4EA0 /* WE */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = WE;
+ };
+ 3183880815DC30CC008E4EA0 /* WE */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = WE;
+ };
+ 3183880915DC30CC008E4EA0 /* WE */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = WE;
+ };
+ 3183880A15DC30CC008E4EA0 /* WE */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = WE;
+ };
+ 3183880B15DC30CC008E4EA0 /* WE */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = WE;
+ };
31D60015156D3CB200337B26 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
@@ -3202,11 +3483,7 @@
COPY_PHASE_STRIP = NO;
GCC_C_LANGUAGE_STANDARD = ansi;
GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PREPROCESSOR_DEFINITIONS = (
- CONFIG_PF_XCI6LL,
- CONFIG_PROD_MPS,
- CONFIG_VAR_CI,
- );
+ GCC_PREPROCESSOR_DEFINITIONS = CONFIG_VAR_CI;
GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES;
GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES;
GCC_TREAT_WARNINGS_AS_ERRORS = NO;
@@ -3257,12 +3534,8 @@
CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
GCC_C_LANGUAGE_STANDARD = ansi;
- GCC_PREPROCESSOR_DEFINITIONS = (
- CONFIG_PF_XCI6LL,
- CONFIG_PROD_MPS,
- CONFIG_VAR_HE,
- NDEBUG,
- );
+ GCC_OPTIMIZATION_LEVEL = 3;
+ GCC_PREPROCESSOR_DEFINITIONS = CONFIG_VAR_HE;
GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES;
GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES;
GCC_TREAT_WARNINGS_AS_ERRORS = NO;
@@ -3308,6 +3581,7 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
+ COMBINE_HIDPI_IMAGES = YES;
EXECUTABLE_PREFIX = lib;
PRODUCT_NAME = "$(TARGET_NAME)";
};
@@ -3317,6 +3591,7 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
+ COMBINE_HIDPI_IMAGES = YES;
EXECUTABLE_PREFIX = lib;
PRODUCT_NAME = "$(TARGET_NAME)";
};
@@ -3344,6 +3619,7 @@
buildConfigurations = (
3104AFBA156D357B000A585A /* Debug */,
3104AFBB156D357B000A585A /* Release */,
+ 318387EF15DC30CC008E4EA0 /* WE */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -3353,6 +3629,7 @@
buildConfigurations = (
3104AFD0156D35E2000A585A /* Debug */,
3104AFD1156D35E2000A585A /* Release */,
+ 318387F315DC30CC008E4EA0 /* WE */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -3362,6 +3639,7 @@
buildConfigurations = (
3104AFE5156D3682000A585A /* Debug */,
3104AFE6156D3682000A585A /* Release */,
+ 318387F415DC30CC008E4EA0 /* WE */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -3371,6 +3649,7 @@
buildConfigurations = (
3104AFF3156D37A0000A585A /* Debug */,
3104AFF4156D37A0000A585A /* Release */,
+ 318387EC15DC30CC008E4EA0 /* WE */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -3380,6 +3659,7 @@
buildConfigurations = (
3104B011156D38F3000A585A /* Debug */,
3104B012156D38F3000A585A /* Release */,
+ 318387F515DC30CC008E4EA0 /* WE */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -3389,6 +3669,7 @@
buildConfigurations = (
3104B02A156D39D4000A585A /* Debug */,
3104B02B156D39D4000A585A /* Release */,
+ 318387F615DC30CC008E4EA0 /* WE */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -3398,6 +3679,7 @@
buildConfigurations = (
3104B045156D3AD8000A585A /* Debug */,
3104B046156D3AD8000A585A /* Release */,
+ 318387F715DC30CC008E4EA0 /* WE */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -3407,6 +3689,7 @@
buildConfigurations = (
3114A597156E913C001E0AA3 /* Debug */,
3114A598156E913C001E0AA3 /* Release */,
+ 318387FE15DC30CC008E4EA0 /* WE */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -3416,6 +3699,7 @@
buildConfigurations = (
3114A5AF156E92C0001E0AA3 /* Debug */,
3114A5B0156E92C0001E0AA3 /* Release */,
+ 318387FF15DC30CC008E4EA0 /* WE */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -3425,6 +3709,7 @@
buildConfigurations = (
3114A5C5156E9315001E0AA3 /* Debug */,
3114A5C6156E9315001E0AA3 /* Release */,
+ 3183880015DC30CC008E4EA0 /* WE */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -3434,6 +3719,7 @@
buildConfigurations = (
3114A5DE156E93A0001E0AA3 /* Debug */,
3114A5DF156E93A0001E0AA3 /* Release */,
+ 3183880115DC30CC008E4EA0 /* WE */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -3443,6 +3729,7 @@
buildConfigurations = (
3114A5F7156E93E7001E0AA3 /* Debug */,
3114A5F8156E93E7001E0AA3 /* Release */,
+ 3183880215DC30CC008E4EA0 /* WE */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -3452,6 +3739,7 @@
buildConfigurations = (
3114A60D156E9430001E0AA3 /* Debug */,
3114A60E156E9430001E0AA3 /* Release */,
+ 3183880315DC30CC008E4EA0 /* WE */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -3461,6 +3749,7 @@
buildConfigurations = (
3114A624156E9485001E0AA3 /* Debug */,
3114A625156E9485001E0AA3 /* Release */,
+ 3183880415DC30CC008E4EA0 /* WE */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -3470,6 +3759,7 @@
buildConfigurations = (
3114A63B156E94DB001E0AA3 /* Debug */,
3114A63C156E94DB001E0AA3 /* Release */,
+ 3183880515DC30CC008E4EA0 /* WE */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -3479,6 +3769,7 @@
buildConfigurations = (
3114A654156E9596001E0AA3 /* Debug */,
3114A655156E9596001E0AA3 /* Release */,
+ 3183880615DC30CC008E4EA0 /* WE */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -3488,6 +3779,7 @@
buildConfigurations = (
3114A66A156E95D9001E0AA3 /* Debug */,
3114A66B156E95D9001E0AA3 /* Release */,
+ 3183880715DC30CC008E4EA0 /* WE */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -3497,6 +3789,7 @@
buildConfigurations = (
3114A684156E9669001E0AA3 /* Debug */,
3114A685156E9669001E0AA3 /* Release */,
+ 3183880815DC30CC008E4EA0 /* WE */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -3506,6 +3799,7 @@
buildConfigurations = (
3114A69D156E971B001E0AA3 /* Debug */,
3114A69E156E971B001E0AA3 /* Release */,
+ 3183880915DC30CC008E4EA0 /* WE */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -3515,6 +3809,7 @@
buildConfigurations = (
3114A6B4156E9759001E0AA3 /* Debug */,
3114A6B5156E9759001E0AA3 /* Release */,
+ 3183880A15DC30CC008E4EA0 /* WE */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -3524,6 +3819,7 @@
buildConfigurations = (
3114A6CE156E9815001E0AA3 /* Debug */,
3114A6CF156E9815001E0AA3 /* Release */,
+ 3183880B15DC30CC008E4EA0 /* WE */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -3533,6 +3829,7 @@
buildConfigurations = (
3124CAC0156BE3EC00753214 /* Debug */,
3124CAC1156BE3EC00753214 /* Release */,
+ 318387F015DC30CC008E4EA0 /* WE */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -3542,6 +3839,7 @@
buildConfigurations = (
3124CADC156BE64A00753214 /* Debug */,
3124CADD156BE64A00753214 /* Release */,
+ 318387F215DC30CC008E4EA0 /* WE */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -3551,6 +3849,7 @@
buildConfigurations = (
3124CAF3156BE7F300753214 /* Debug */,
3124CAF4156BE7F300753214 /* Release */,
+ 318387EE15DC30CC008E4EA0 /* WE */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -3560,6 +3859,7 @@
buildConfigurations = (
31D60015156D3CB200337B26 /* Debug */,
31D60016156D3CB200337B26 /* Release */,
+ 318387F815DC30CC008E4EA0 /* WE */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -3569,6 +3869,7 @@
buildConfigurations = (
31D6002F156D3D3F00337B26 /* Debug */,
31D60030156D3D3F00337B26 /* Release */,
+ 318387F915DC30CC008E4EA0 /* WE */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -3578,6 +3879,7 @@
buildConfigurations = (
31D60046156D3EC700337B26 /* Debug */,
31D60047156D3EC700337B26 /* Release */,
+ 318387FA15DC30CC008E4EA0 /* WE */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -3587,6 +3889,7 @@
buildConfigurations = (
31D6005C156D3F3500337B26 /* Debug */,
31D6005D156D3F3500337B26 /* Release */,
+ 318387FB15DC30CC008E4EA0 /* WE */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -3596,6 +3899,7 @@
buildConfigurations = (
31D60079156D3FBC00337B26 /* Debug */,
31D6007A156D3FBC00337B26 /* Release */,
+ 318387FC15DC30CC008E4EA0 /* WE */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -3605,6 +3909,7 @@
buildConfigurations = (
31D60094156D402900337B26 /* Debug */,
31D60095156D402900337B26 /* Release */,
+ 318387FD15DC30CC008E4EA0 /* WE */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -3614,6 +3919,7 @@
buildConfigurations = (
31EEABDF156AAE9E00714D05 /* Debug */,
31EEABE0156AAE9E00714D05 /* Release */,
+ 318387EB15DC30CC008E4EA0 /* WE */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -3623,6 +3929,7 @@
buildConfigurations = (
31EEABFD156AAF9D00714D05 /* Debug */,
31EEABFE156AAF9D00714D05 /* Release */,
+ 318387ED15DC30CC008E4EA0 /* WE */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
@@ -3632,6 +3939,7 @@
buildConfigurations = (
31EEAC6D156AB52600714D05 /* Debug */,
31EEAC6E156AB52600714D05 /* Release */,
+ 318387F115DC30CC008E4EA0 /* WE */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
diff --git a/mps/code/mpsi.c b/mps/code/mpsi.c
index 06b2e50cc15..a4ea84f5574 100644
--- a/mps/code/mpsi.c
+++ b/mps/code/mpsi.c
@@ -459,13 +459,6 @@ mps_res_t mps_arena_create_v(mps_arena_t *mps_arena_o,
return MPS_RES_OK;
}
-/* DEPRECATED */
-mps_res_t mps_space_create(mps_space_t *mps_space_o)
-{
- return mps_arena_create(mps_space_o, mps_arena_class_vm(), ARENA_SIZE);
-}
-
-
/* mps_arena_destroy -- destroy an arena object */
void mps_arena_destroy(mps_arena_t mps_arena)
@@ -476,12 +469,6 @@ void mps_arena_destroy(mps_arena_t mps_arena)
ArenaDestroy(arena);
}
-/* DEPRECATED */
-void mps_space_destroy(mps_space_t mps_space)
-{
- mps_arena_destroy(mps_space);
-}
-
/* mps_arena_has_addr -- is this address managed by this arena? */
--
cgit v1.2.1
From ee4106393acc41b1b4c600fa5d0d0d667a03ce36 Mon Sep 17 00:00:00 2001
From: Richard Brooksby
Date: Sun, 2 Sep 2012 11:04:53 +0100
Subject: Renaming "he" variety to "hot" and "ci" variety to "cool". like the
old days.
Copied from Perforce
Change: 179170
ServerID: perforce.ravenbrook.com
---
mps/code/comm.gmk | 22 ++++++------
mps/code/commpost.nmk | 6 ++--
mps/code/commpre.nmk | 30 ++++++++--------
mps/code/config.h | 8 ++---
mps/code/mps.xcodeproj/project.pbxproj | 4 +--
mps/code/w3i3mv.nmk | 62 ++++++++++++++--------------------
mps/code/w3i6mv.nmk | 62 ++++++++++++++--------------------
7 files changed, 85 insertions(+), 109 deletions(-)
(limited to 'mps/code')
diff --git a/mps/code/comm.gmk b/mps/code/comm.gmk
index 6ee91523612..98f19aa0958 100644
--- a/mps/code/comm.gmk
+++ b/mps/code/comm.gmk
@@ -95,25 +95,25 @@ CFLAGSCOMMON = $(PFMDEFS) $(CFLAGSCOMPILER)
# variety.
# These flags are added to compilations for the indicated variety.
-CFWE = -DCONFIG_VAR_WE -DNDEBUG $(CFLAGSOPT)
-CFHE = -DCONFIG_VAR_HE -DNDEBUG $(CFLAGSOPT)
-CFDI = -DCONFIG_VAR_DI -DNDEBUG $(CFLAGSOPT)
-CFCI = -DCONFIG_VAR_CI $(CFLAGSDEBUG)
-CFTI = -DCONFIG_VAR_TI $(CFLAGSDEBUG)
+CFWE = -DCONFIG_VAR_WE -DNDEBUG $(CFLAGSOPT)
+CFHOT = -DCONFIG_VAR_HOT -DNDEBUG $(CFLAGSOPT)
+CFDI = -DCONFIG_VAR_DI -DNDEBUG $(CFLAGSOPT)
+CFCOOL = -DCONFIG_VAR_COOL $(CFLAGSDEBUG)
+CFTI = -DCONFIG_VAR_TI $(CFLAGSDEBUG)
# Bind CFLAGS to the appropriate set of flags for the variety.
# %%VARIETY: Add a test for the variety and set CFLAGS here.
ifeq ($(VARIETY),we)
CFLAGS=$(CFLAGSCOMMON) $(CFWE)
else
-ifeq ($(VARIETY),he)
-CFLAGS=$(CFLAGSCOMMON) $(CFHE)
+ifeq ($(VARIETY),hot)
+CFLAGS=$(CFLAGSCOMMON) $(CFHOT)
else
ifeq ($(VARIETY),di)
CFLAGS=$(CFLAGSCOMMON) $(CFDI)
else
-ifeq ($(VARIETY),ci)
-CFLAGS=$(CFLAGSCOMMON) $(CFCI)
+ifeq ($(VARIETY),cool)
+CFLAGS=$(CFLAGSCOMMON) $(CFCOOL)
else
ifeq ($(VARIETY),ti)
CFLAGS=$(CFLAGSCOMMON) $(CFTI)
@@ -256,8 +256,8 @@ clean: phony
ifdef TARGET
ifndef VARIETY
target: phony
- $(MAKE) -f $(PFM).gmk VARIETY=he variety
- $(MAKE) -f $(PFM).gmk VARIETY=ci variety
+ $(MAKE) -f $(PFM).gmk VARIETY=hot variety
+ $(MAKE) -f $(PFM).gmk VARIETY=cool variety
endif
endif
diff --git a/mps/code/commpost.nmk b/mps/code/commpost.nmk
index fc197e48353..d150a37df10 100644
--- a/mps/code/commpost.nmk
+++ b/mps/code/commpost.nmk
@@ -47,12 +47,10 @@ mpmss.exe amcss.exe amcsshe.exe amsss.exe amssshe.exe segsmss.exe awlut.exe awlu
# "clean" removes the directory containing the build results.
# Depends on there being no file called "clean".
-# Since we can't know whether we have rmdir, try with deltree as well.
clean:
$(ECHO) $(PFM): $@
-echo y | rmdir/s $(PFM)
- -deltree /Y $(PFM)
# target target
# %%VARIETY: Optionally, add a recursive make call for the new variety,
@@ -63,8 +61,8 @@ clean:
!IFDEF TARGET
!IFNDEF VARIETY
target:
- $(MAKE) /nologo /f $(PFM).nmk VARIETY=he variety
- $(MAKE) /nologo /f $(PFM).nmk VARIETY=ci variety
+ $(MAKE) /nologo /f $(PFM).nmk VARIETY=hot variety
+ $(MAKE) /nologo /f $(PFM).nmk VARIETY=cool variety
!ENDIF
!ENDIF
diff --git a/mps/code/commpre.nmk b/mps/code/commpre.nmk
index 04ea7ff3d52..16a10445ccc 100644
--- a/mps/code/commpre.nmk
+++ b/mps/code/commpre.nmk
@@ -88,10 +88,8 @@ ECHO = echo
CFLAGSTARGETPRE =
CFLAGSTARGETPOST =
-CRTFLAGSW = /MT
-CRTFLAGSH = /MT
-CRTFLAGSC = /MTd
-LINKFLAGSWHITE = libcmt.lib
+CRTFLAGSHOT = /MT
+CRTFLAGSCOOL = /MTd
LINKFLAGSHOT = libcmt.lib
LINKFLAGSCOOL = libcmtd.lib
@@ -115,11 +113,11 @@ CFLAGSEXTERNAL =
# The combinations of variety
# %%VARIETY: Define a macro containing the set of flags for the new variety.
-CFWE = /DCONFIG_VAR_WE $(CRTFLAGSW) $(CFLAGSHOT) $(CFLAGSEXTERNAL)
-CFHE = /DCONFIG_VAR_HE $(CRTFLAGSH) $(CFLAGSHOT) $(CFLAGSEXTERNAL)
-CFDI = /DCONFIG_VAR_DI $(CRTFLAGSH) $(CFLAGSHOT) $(CFLAGSINTERNAL)
-CFCI = /DCONFIG_VAR_CI $(CRTFLAGSC) $(CFLAGSCOOL) $(CFLAGSINTERNAL)
-CFTI = /DCONFIG_VAR_TI $(CRTFLAGSC) $(CFLAGSCOOL) $(CFLAGSINTERNAL)
+CFWE = /DCONFIG_VAR_WE $(CRTFLAGSHOT) $(CFLAGSHOT) $(CFLAGSEXTERNAL)
+CFHOT = /DCONFIG_VAR_HOT $(CRTFLAGSHOT) $(CFLAGSHOT) $(CFLAGSEXTERNAL)
+CFDI = /DCONFIG_VAR_DI $(CRTFLAGSHOT) $(CFLAGSHOT) $(CFLAGSINTERNAL)
+CFCOOL = /DCONFIG_VAR_COOL $(CRTFLAGSCOOL) $(CFLAGSCOOL) $(CFLAGSINTERNAL)
+CFTI = /DCONFIG_VAR_TI $(CRTFLAGSCOOL) $(CFLAGSCOOL) $(CFLAGSINTERNAL)
# Microsoft documentation is not very clear on the point of using both
# optimization and debug information
@@ -132,11 +130,11 @@ LINKFLAGSINTERNAL = /DEBUG
# ( Internal flags used to be set to /DEBUG:full )
LINKFLAGSEXTERNAL = /RELEASE
-LFWE = $(LINKFLAGSWHITE) $(LINKFLAGSEXTERNAL)
-LFHE = $(LINKFLAGSHOT) $(LINKFLAGSEXTERNAL)
-LFDI = $(LINKFLAGSHOT) $(LINKFLAGSINTERNAL)
-LFCI = $(LINKFLAGSCOOL) $(LINKFLAGSINTERNAL)
-LFTI = $(LINKFLAGSCOOL) $(LINKFLAGSINTERNAL)
+LFWE = $(LINKFLAGSHOT) $(LINKFLAGSEXTERNAL)
+LFHOT = $(LINKFLAGSHOT) $(LINKFLAGSEXTERNAL)
+LFDI = $(LINKFLAGSHOT) $(LINKFLAGSINTERNAL)
+LFCOOL = $(LINKFLAGSCOOL) $(LINKFLAGSINTERNAL)
+LFTI = $(LINKFLAGSCOOL) $(LINKFLAGSINTERNAL)
#LFCV = /PROFILE /DEBUG:full /DEBUGTYPE:cv
@@ -146,9 +144,9 @@ LIBMAN = lib # can't call this LIB - it screws the environment
LIBFLAGSCOMMON = /nologo
LIBFLAGSWE =
-LIBFLAGSHE =
+LIBFLAGSHOT =
LIBFLAGSDI =
-LIBFLAGSCI =
+LIBFLAGSCOOL =
LIBFLAGSTI =
# Browser database manager [not used at present]
diff --git a/mps/code/config.h b/mps/code/config.h
index faaed43a2d9..41c092fc070 100644
--- a/mps/code/config.h
+++ b/mps/code/config.h
@@ -39,14 +39,14 @@
/* no telemetry log events */
-/* CONFIG_VAR_HE -- the hot variety
+/* CONFIG_VAR_HOT -- the hot variety
*
* This variety is the default variety for distribution in products that use
* the MPS. It has maximum performance while retaining a good level of
* consistency checking and allowing some debugging and telemetry features.
*/
-#elif defined(CONFIG_VAR_HE) /* Hot variety */
+#elif defined(CONFIG_VAR_HOT) /* Hot variety */
#define CONFIG_ASSERT
#ifndef CHECKLEVEL
#define CHECKLEVEL CheckLevelMINIMAL
@@ -77,7 +77,7 @@
/* no telemetry log events */
-/* CONFIG_VAR_CI -- cool variety
+/* CONFIG_VAR_COOL -- cool variety
*
* The cool variety is intended for use when developing an integration with
* the MPS or debugging memory problems or collecting detailed telemetry
@@ -85,7 +85,7 @@
* and data collection and output, and full debugging information.
*/
-#elif defined(CONFIG_VAR_CI) /* Cool variety */
+#elif defined(CONFIG_VAR_COOL) /* Cool variety */
#define CONFIG_ASSERT
#define CONFIG_ASSERT_ALL
#define CONFIG_STATS
diff --git a/mps/code/mps.xcodeproj/project.pbxproj b/mps/code/mps.xcodeproj/project.pbxproj
index 2f8844affe0..24287ac9b98 100644
--- a/mps/code/mps.xcodeproj/project.pbxproj
+++ b/mps/code/mps.xcodeproj/project.pbxproj
@@ -3483,7 +3483,7 @@
COPY_PHASE_STRIP = NO;
GCC_C_LANGUAGE_STANDARD = ansi;
GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PREPROCESSOR_DEFINITIONS = CONFIG_VAR_CI;
+ GCC_PREPROCESSOR_DEFINITIONS = CONFIG_VAR_COOL;
GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES;
GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES;
GCC_TREAT_WARNINGS_AS_ERRORS = NO;
@@ -3535,7 +3535,7 @@
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
GCC_C_LANGUAGE_STANDARD = ansi;
GCC_OPTIMIZATION_LEVEL = 3;
- GCC_PREPROCESSOR_DEFINITIONS = CONFIG_VAR_HE;
+ GCC_PREPROCESSOR_DEFINITIONS = CONFIG_VAR_HOT;
GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES;
GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES;
GCC_TREAT_WARNINGS_AS_ERRORS = NO;
diff --git a/mps/code/w3i3mv.nmk b/mps/code/w3i3mv.nmk
index bf2258a7e4a..3c4969309f6 100644
--- a/mps/code/w3i3mv.nmk
+++ b/mps/code/w3i3mv.nmk
@@ -23,16 +23,6 @@ MPM = \
\
\
-SW = \
- \
- \
- \
- [ \
- \
- \
- \
- \
-
PLINTH =
AMC =
AMS =
@@ -57,33 +47,33 @@ TESTLIB =
# macro which expands to the flags that the variety should use when building
# libraries
-!IF "$(VARIETY)" == "he"
+!IF "$(VARIETY)" == "hot"
CFLAGS=$(CFLAGSCOMMONPRE) $(CFHE) $(CFLAGSCOMMONPOST)
LINKFLAGS=$(LINKFLAGSCOMMON) $(LFHE)
LIBFLAGS=$(LIBFLAGSCOMMON) $(LIBFLAGSHE)
-MPMOBJ0 = $(MPM:<=w3i3mv\he\)
+MPMOBJ0 = $(MPM:<=w3i3mv\hot\)
MPMOBJ = $(MPMOBJ0:>=.obj)
-PLINTHOBJ0 = $(PLINTH:<=w3i3mv\he\)
+PLINTHOBJ0 = $(PLINTH:<=w3i3mv\hot\)
PLINTHOBJ = $(PLINTHOBJ0:>=.obj)
-SWOBJ0 = $(SW:<=w3i3mv\he\)
+SWOBJ0 = $(SW:<=w3i3mv\hot\)
SWOBJ = $(SWOBJ0:>=.obj)
-AMSOBJ0 = $(AMS:<=w3i3mv\he\)
+AMSOBJ0 = $(AMS:<=w3i3mv\hot\)
AMSOBJ = $(AMSOBJ0:>=.obj)
-AMCOBJ0 = $(AMC:<=w3i3mv\he\)
+AMCOBJ0 = $(AMC:<=w3i3mv\hot\)
AMCOBJ = $(AMCOBJ0:>=.obj)
-AWLOBJ0 = $(AWL:<=w3i3mv\he\)
+AWLOBJ0 = $(AWL:<=w3i3mv\hot\)
AWLOBJ = $(AWLOBJ0:>=.obj)
-LOOBJ0 = $(LO:<=w3i3mv\he\)
+LOOBJ0 = $(LO:<=w3i3mv\hot\)
LOOBJ = $(LOOBJ0:>=.obj)
-SNCOBJ0 = $(SNC:<=w3i3mv\he\)
+SNCOBJ0 = $(SNC:<=w3i3mv\hot\)
SNCOBJ = $(SNCOBJ0:>=.obj)
-DWOBJ0 = $(DW:<=w3i3mv\he\)
+DWOBJ0 = $(DW:<=w3i3mv\hot\)
DWOBJ = $(DWOBJ0:>=.obj)
-FMTTESTOBJ0 = $(FMTTEST:<=w3i3mv\he\)
+FMTTESTOBJ0 = $(FMTTEST:<=w3i3mv\hot\)
FMTTESTOBJ = $(FMTTESTOBJ0:>=.obj)
-POOLNOBJ0 = $(POOLN:<=w3i3mv\he\)
+POOLNOBJ0 = $(POOLN:<=w3i3mv\hot\)
POOLNOBJ = $(POOLNOBJ0:>=.obj)
-TESTLIBOBJ0 = $(TESTLIB:<=w3i3mv\he\)
+TESTLIBOBJ0 = $(TESTLIB:<=w3i3mv\hot\)
TESTLIBOBJ = $(TESTLIBOBJ0:>=.obj)
!ELSEIF "$(VARIETY)" == "di"
@@ -115,33 +105,33 @@ POOLNOBJ = $(POOLNOBJ0:>=.obj)
TESTLIBOBJ0 = $(TESTLIB:<=w3i3mv\di\)
TESTLIBOBJ = $(TESTLIBOBJ0:>=.obj)
-!ELSEIF "$(VARIETY)" == "ci"
+!ELSEIF "$(VARIETY)" == "cool"
CFLAGS=$(CFLAGSCOMMONPRE) $(CFCI) $(CFLAGSCOMMONPOST)
LINKFLAGS=$(LINKFLAGSCOMMON) $(LFCI)
LIBFLAGS=$(LIBFLAGSCOMMON) $(LIBFLAGSCI)
-MPMOBJ0 = $(MPM:<=w3i3mv\ci\)
+MPMOBJ0 = $(MPM:<=w3i3mv\cool\)
MPMOBJ = $(MPMOBJ0:>=.obj)
-PLINTHOBJ0 = $(PLINTH:<=w3i3mv\ci\)
+PLINTHOBJ0 = $(PLINTH:<=w3i3mv\cool\)
PLINTHOBJ = $(PLINTHOBJ0:>=.obj)
-SWOBJ0 = $(SW:<=w3i3mv\ci\)
+SWOBJ0 = $(SW:<=w3i3mv\cool\)
SWOBJ = $(SWOBJ0:>=.obj)
-AMSOBJ0 = $(AMS:<=w3i3mv\ci\)
+AMSOBJ0 = $(AMS:<=w3i3mv\cool\)
AMSOBJ = $(AMSOBJ0:>=.obj)
-AMCOBJ0 = $(AMC:<=w3i3mv\ci\)
+AMCOBJ0 = $(AMC:<=w3i3mv\cool\)
AMCOBJ = $(AMCOBJ0:>=.obj)
-AWLOBJ0 = $(AWL:<=w3i3mv\ci\)
+AWLOBJ0 = $(AWL:<=w3i3mv\cool\)
AWLOBJ = $(AWLOBJ0:>=.obj)
-LOOBJ0 = $(LO:<=w3i3mv\ci\)
+LOOBJ0 = $(LO:<=w3i3mv\cool\)
LOOBJ = $(LOOBJ0:>=.obj)
-SNCOBJ0 = $(SNC:<=w3i3mv\ci\)
+SNCOBJ0 = $(SNC:<=w3i3mv\cool\)
SNCOBJ = $(SNCOBJ0:>=.obj)
-DWOBJ0 = $(DW:<=w3i3mv\ci\)
+DWOBJ0 = $(DW:<=w3i3mv\cool\)
DWOBJ = $(DWOBJ0:>=.obj)
-FMTTESTOBJ0 = $(FMTTEST:<=w3i3mv\ci\)
+FMTTESTOBJ0 = $(FMTTEST:<=w3i3mv\cool\)
FMTTESTOBJ = $(FMTTESTOBJ0:>=.obj)
-POOLNOBJ0 = $(POOLN:<=w3i3mv\ci\)
+POOLNOBJ0 = $(POOLN:<=w3i3mv\cool\)
POOLNOBJ = $(POOLNOBJ0:>=.obj)
-TESTLIBOBJ0 = $(TESTLIB:<=w3i3mv\ci\)
+TESTLIBOBJ0 = $(TESTLIB:<=w3i3mv\cool\)
TESTLIBOBJ = $(TESTLIBOBJ0:>=.obj)
!ELSEIF "$(VARIETY)" == "ti"
diff --git a/mps/code/w3i6mv.nmk b/mps/code/w3i6mv.nmk
index 255600d11ce..bf5b6efa68d 100644
--- a/mps/code/w3i6mv.nmk
+++ b/mps/code/w3i6mv.nmk
@@ -25,16 +25,6 @@ MPM = \
\
\
-SW = \
- \
- \
- \
- ][ \
- \
- ]