diff options
| author | Gareth Rees | 2013-06-03 12:25:18 +0100 |
|---|---|---|
| committer | Gareth Rees | 2013-06-03 12:25:18 +0100 |
| commit | f154b62bf4d7316a23d605891e54fce8aa05b52d (patch) | |
| tree | fa525c0c7f99c56739b36301e612583b45099e97 /mps/code | |
| parent | 5a508d21783d2986dae8b300f8aa2b0b5cbb2f6f (diff) | |
| parent | e07ee8b8e324593ada1f19a8aaa59b475b5144e3 (diff) | |
| download | emacs-f154b62bf4d7316a23d605891e54fce8aa05b52d.tar.gz emacs-f154b62bf4d7316a23d605891e54fce8aa05b52d.zip | |
Catch-up merge from master sources to mps/branch/2013-05-17/emergency
Copied from Perforce
Change: 182417
ServerID: perforce.ravenbrook.com
Diffstat (limited to 'mps/code')
56 files changed, 800 insertions, 247 deletions
diff --git a/mps/code/abqtest.c b/mps/code/abqtest.c index 32987836dae..b385dd53cd1 100644 --- a/mps/code/abqtest.c +++ b/mps/code/abqtest.c | |||
| @@ -10,6 +10,7 @@ | |||
| 10 | #include "mps.h" | 10 | #include "mps.h" |
| 11 | #include "mpsavm.h" | 11 | #include "mpsavm.h" |
| 12 | #include "testlib.h" | 12 | #include "testlib.h" |
| 13 | #include "mpslib.h" | ||
| 13 | #include <stdlib.h> | 14 | #include <stdlib.h> |
| 14 | #include <stdarg.h> | 15 | #include <stdarg.h> |
| 15 | #include <string.h> | 16 | #include <string.h> |
| @@ -166,6 +167,7 @@ extern int main(int argc, char *argv[]) | |||
| 166 | int i; | 167 | int i; |
| 167 | 168 | ||
| 168 | randomize(argc, argv); | 169 | randomize(argc, argv); |
| 170 | mps_lib_assert_fail_install(assert_die); | ||
| 169 | 171 | ||
| 170 | abqSize = 0; | 172 | abqSize = 0; |
| 171 | 173 | ||
diff --git a/mps/code/amcss.c b/mps/code/amcss.c index ee91223660f..e3bb32627eb 100644 --- a/mps/code/amcss.c +++ b/mps/code/amcss.c | |||
| @@ -8,6 +8,7 @@ | |||
| 8 | #include "fmtdy.h" | 8 | #include "fmtdy.h" |
| 9 | #include "fmtdytst.h" | 9 | #include "fmtdytst.h" |
| 10 | #include "testlib.h" | 10 | #include "testlib.h" |
| 11 | #include "mpslib.h" | ||
| 11 | #include "mpscamc.h" | 12 | #include "mpscamc.h" |
| 12 | #include "mpsavm.h" | 13 | #include "mpsavm.h" |
| 13 | #include "mpstd.h" | 14 | #include "mpstd.h" |
| @@ -15,6 +16,7 @@ | |||
| 15 | #include "mpsw3.h" | 16 | #include "mpsw3.h" |
| 16 | #endif | 17 | #endif |
| 17 | #include "mps.h" | 18 | #include "mps.h" |
| 19 | #include "mpslib.h" | ||
| 18 | #include <stdlib.h> | 20 | #include <stdlib.h> |
| 19 | #include <string.h> | 21 | #include <string.h> |
| 20 | 22 | ||
| @@ -305,7 +307,8 @@ int main(int argc, char *argv[]) | |||
| 305 | mps_thr_t thread; | 307 | mps_thr_t thread; |
| 306 | 308 | ||
| 307 | randomize(argc, argv); | 309 | randomize(argc, argv); |
| 308 | 310 | mps_lib_assert_fail_install(assert_die); | |
| 311 | |||
| 309 | die(mps_arena_create(&arena, mps_arena_class_vm(), 2*testArenaSIZE), | 312 | die(mps_arena_create(&arena, mps_arena_class_vm(), 2*testArenaSIZE), |
| 310 | "arena_create"); | 313 | "arena_create"); |
| 311 | mps_message_type_enable(arena, mps_message_type_gc()); | 314 | mps_message_type_enable(arena, mps_message_type_gc()); |
diff --git a/mps/code/amcsshe.c b/mps/code/amcsshe.c index ee8d9edbeb4..1198f8be978 100644 --- a/mps/code/amcsshe.c +++ b/mps/code/amcsshe.c | |||
| @@ -8,6 +8,7 @@ | |||
| 8 | #include "fmthe.h" | 8 | #include "fmthe.h" |
| 9 | #include "fmtdytst.h" | 9 | #include "fmtdytst.h" |
| 10 | #include "testlib.h" | 10 | #include "testlib.h" |
| 11 | #include "mpslib.h" | ||
| 11 | #include "mpscamc.h" | 12 | #include "mpscamc.h" |
| 12 | #include "mpsavm.h" | 13 | #include "mpsavm.h" |
| 13 | #include "mpstd.h" | 14 | #include "mpstd.h" |
| @@ -261,6 +262,7 @@ int main(int argc, char *argv[]) | |||
| 261 | void *r; | 262 | void *r; |
| 262 | 263 | ||
| 263 | randomize(argc, argv); | 264 | randomize(argc, argv); |
| 265 | mps_lib_assert_fail_install(assert_die); | ||
| 264 | 266 | ||
| 265 | die(mps_arena_create(&arena, mps_arena_class_vm(), 3*testArenaSIZE), | 267 | die(mps_arena_create(&arena, mps_arena_class_vm(), 3*testArenaSIZE), |
| 266 | "arena_create\n"); | 268 | "arena_create\n"); |
diff --git a/mps/code/amcssth.c b/mps/code/amcssth.c index e5ed673c80c..5fc28728247 100644 --- a/mps/code/amcssth.c +++ b/mps/code/amcssth.c | |||
| @@ -12,6 +12,7 @@ | |||
| 12 | #include "fmtdy.h" | 12 | #include "fmtdy.h" |
| 13 | #include "fmtdytst.h" | 13 | #include "fmtdytst.h" |
| 14 | #include "testlib.h" | 14 | #include "testlib.h" |
| 15 | #include "mpslib.h" | ||
| 15 | #include "mpscamc.h" | 16 | #include "mpscamc.h" |
| 16 | #include "mpsavm.h" | 17 | #include "mpsavm.h" |
| 17 | #include <stdlib.h> | 18 | #include <stdlib.h> |
| @@ -320,6 +321,7 @@ int main(int argc, char *argv[]) | |||
| 320 | int childIsFinished = 0; | 321 | int childIsFinished = 0; |
| 321 | 322 | ||
| 322 | randomize(argc, argv); | 323 | randomize(argc, argv); |
| 324 | mps_lib_assert_fail_install(assert_die); | ||
| 323 | 325 | ||
| 324 | die(mps_arena_create(&arena, mps_arena_class_vm(), testArenaSIZE), | 326 | die(mps_arena_create(&arena, mps_arena_class_vm(), testArenaSIZE), |
| 325 | "arena_create"); | 327 | "arena_create"); |
diff --git a/mps/code/amsss.c b/mps/code/amsss.c index 29f0aa47e3b..657faebe3b3 100644 --- a/mps/code/amsss.c +++ b/mps/code/amsss.c | |||
| @@ -11,6 +11,7 @@ | |||
| 11 | #include "fmtdy.h" | 11 | #include "fmtdy.h" |
| 12 | #include "fmtdytst.h" | 12 | #include "fmtdytst.h" |
| 13 | #include "testlib.h" | 13 | #include "testlib.h" |
| 14 | #include "mpslib.h" | ||
| 14 | #include "mpscams.h" | 15 | #include "mpscams.h" |
| 15 | #include "mpsavm.h" | 16 | #include "mpsavm.h" |
| 16 | #include "mpstd.h" | 17 | #include "mpstd.h" |
| @@ -207,6 +208,7 @@ int main(int argc, char *argv[]) | |||
| 207 | void *r; | 208 | void *r; |
| 208 | 209 | ||
| 209 | randomize(argc, argv); | 210 | randomize(argc, argv); |
| 211 | mps_lib_assert_fail_install(assert_die); | ||
| 210 | 212 | ||
| 211 | die(mps_arena_create(&arena, mps_arena_class_vm(), testArenaSIZE), | 213 | die(mps_arena_create(&arena, mps_arena_class_vm(), testArenaSIZE), |
| 212 | "arena_create"); | 214 | "arena_create"); |
diff --git a/mps/code/amssshe.c b/mps/code/amssshe.c index 29a9fd2ebbf..ddbda607017 100644 --- a/mps/code/amssshe.c +++ b/mps/code/amssshe.c | |||
| @@ -9,6 +9,7 @@ | |||
| 9 | #include "fmthe.h" | 9 | #include "fmthe.h" |
| 10 | #include "fmtdytst.h" | 10 | #include "fmtdytst.h" |
| 11 | #include "testlib.h" | 11 | #include "testlib.h" |
| 12 | #include "mpslib.h" | ||
| 12 | #include "mpscams.h" | 13 | #include "mpscams.h" |
| 13 | #include "mpsavm.h" | 14 | #include "mpsavm.h" |
| 14 | #include "mpstd.h" | 15 | #include "mpstd.h" |
| @@ -162,6 +163,7 @@ int main(int argc, char *argv[]) | |||
| 162 | void *r; | 163 | void *r; |
| 163 | 164 | ||
| 164 | randomize(argc, argv); | 165 | randomize(argc, argv); |
| 166 | mps_lib_assert_fail_install(assert_die); | ||
| 165 | 167 | ||
| 166 | die(mps_arena_create(&arena, mps_arena_class_vm(), testArenaSIZE), | 168 | die(mps_arena_create(&arena, mps_arena_class_vm(), testArenaSIZE), |
| 167 | "arena_create"); | 169 | "arena_create"); |
diff --git a/mps/code/apss.c b/mps/code/apss.c index 65323d9b629..e55a911a9a0 100644 --- a/mps/code/apss.c +++ b/mps/code/apss.c | |||
| @@ -14,6 +14,7 @@ | |||
| 14 | #include "mpsavm.h" | 14 | #include "mpsavm.h" |
| 15 | 15 | ||
| 16 | #include "testlib.h" | 16 | #include "testlib.h" |
| 17 | #include "mpslib.h" | ||
| 17 | 18 | ||
| 18 | #include <stdlib.h> | 19 | #include <stdlib.h> |
| 19 | #include <stdarg.h> | 20 | #include <stdarg.h> |
| @@ -190,6 +191,7 @@ int main(int argc, char *argv[]) | |||
| 190 | bothOptions = MPS_PF_ALIGN == 8 ? &bothOptions8 : &bothOptions16; | 191 | bothOptions = MPS_PF_ALIGN == 8 ? &bothOptions8 : &bothOptions16; |
| 191 | 192 | ||
| 192 | randomize(argc, argv); | 193 | randomize(argc, argv); |
| 194 | mps_lib_assert_fail_install(assert_die); | ||
| 193 | 195 | ||
| 194 | die(mps_arena_create(&arena, mps_arena_class_vm(), 2*testArenaSIZE), | 196 | die(mps_arena_create(&arena, mps_arena_class_vm(), 2*testArenaSIZE), |
| 195 | "mps_arena_create"); | 197 | "mps_arena_create"); |
diff --git a/mps/code/arenacv.c b/mps/code/arenacv.c index e837a596767..b0ea6c08040 100644 --- a/mps/code/arenacv.c +++ b/mps/code/arenacv.c | |||
| @@ -19,6 +19,7 @@ | |||
| 19 | #include "mpm.h" | 19 | #include "mpm.h" |
| 20 | #include "poolmv.h" | 20 | #include "poolmv.h" |
| 21 | #include "testlib.h" | 21 | #include "testlib.h" |
| 22 | #include "mpslib.h" | ||
| 22 | #include "mpsavm.h" | 23 | #include "mpsavm.h" |
| 23 | #include "mpsacl.h" | 24 | #include "mpsacl.h" |
| 24 | 25 | ||
diff --git a/mps/code/awlut.c b/mps/code/awlut.c index 35036b2cbaf..7e417c18658 100644 --- a/mps/code/awlut.c +++ b/mps/code/awlut.c | |||
| @@ -13,6 +13,7 @@ | |||
| 13 | #include "mpsavm.h" | 13 | #include "mpsavm.h" |
| 14 | #include "fmtdy.h" | 14 | #include "fmtdy.h" |
| 15 | #include "testlib.h" | 15 | #include "testlib.h" |
| 16 | #include "mpslib.h" | ||
| 16 | #include "mps.h" | 17 | #include "mps.h" |
| 17 | #include "mpstd.h" | 18 | #include "mpstd.h" |
| 18 | #ifdef MPS_OS_W3 | 19 | #ifdef MPS_OS_W3 |
| @@ -306,6 +307,7 @@ int main(int argc, char *argv[]) | |||
| 306 | void *r; | 307 | void *r; |
| 307 | 308 | ||
| 308 | randomize(argc, argv); | 309 | randomize(argc, argv); |
| 310 | mps_lib_assert_fail_install(assert_die); | ||
| 309 | 311 | ||
| 310 | initialise_wrapper(wrapper_wrapper); | 312 | initialise_wrapper(wrapper_wrapper); |
| 311 | initialise_wrapper(string_wrapper); | 313 | initialise_wrapper(string_wrapper); |
diff --git a/mps/code/awluthe.c b/mps/code/awluthe.c index 7ee5a0c077c..a0d2bf85ab9 100644 --- a/mps/code/awluthe.c +++ b/mps/code/awluthe.c | |||
| @@ -14,6 +14,7 @@ | |||
| 14 | #include "fmthe.h" | 14 | #include "fmthe.h" |
| 15 | #include "fmtdy.h" | 15 | #include "fmtdy.h" |
| 16 | #include "testlib.h" | 16 | #include "testlib.h" |
| 17 | #include "mpslib.h" | ||
| 17 | #include "mps.h" | 18 | #include "mps.h" |
| 18 | #include "mpstd.h" | 19 | #include "mpstd.h" |
| 19 | #ifdef MPS_OS_W3 | 20 | #ifdef MPS_OS_W3 |
| @@ -305,6 +306,7 @@ int main(int argc, char *argv[]) | |||
| 305 | void *r; | 306 | void *r; |
| 306 | 307 | ||
| 307 | randomize(argc, argv); | 308 | randomize(argc, argv); |
| 309 | mps_lib_assert_fail_install(assert_die); | ||
| 308 | 310 | ||
| 309 | initialise_wrapper(wrapper_wrapper); | 311 | initialise_wrapper(wrapper_wrapper); |
| 310 | initialise_wrapper(string_wrapper); | 312 | initialise_wrapper(string_wrapper); |
diff --git a/mps/code/awlutth.c b/mps/code/awlutth.c index cfe94ea7ca3..cb4a794b35f 100644 --- a/mps/code/awlutth.c +++ b/mps/code/awlutth.c | |||
| @@ -13,13 +13,14 @@ | |||
| 13 | #include "mpsavm.h" | 13 | #include "mpsavm.h" |
| 14 | #include "fmtdy.h" | 14 | #include "fmtdy.h" |
| 15 | #include "testlib.h" | 15 | #include "testlib.h" |
| 16 | #include "mpslib.h" | ||
| 16 | #include "mps.h" | 17 | #include "mps.h" |
| 17 | #include "mpstd.h" | 18 | #include "mpstd.h" |
| 18 | #ifdef MPS_OS_W3 | 19 | #ifdef MPS_OS_W3 |
| 19 | #include "mpsw3.h" | 20 | #include "mpsw3.h" |
| 20 | #endif | 21 | #endif |
| 21 | #include <string.h> | 22 | #include <string.h> |
| 22 | #if defined(MPS_OS_LI) || defined(MPS_OS_FR) | 23 | #if defined(MPS_OS_LI) || defined(MPS_OS_FR) || defined(MPS_OS_XC) |
| 23 | #include <pthread.h> | 24 | #include <pthread.h> |
| 24 | #endif | 25 | #endif |
| 25 | 26 | ||
| @@ -203,6 +204,7 @@ static void test(mps_ap_t leafap, mps_ap_t exactap, mps_ap_t weakap, | |||
| 203 | mps_word_t *string; | 204 | mps_word_t *string; |
| 204 | 205 | ||
| 205 | string = alloc_string("spong", leafap); | 206 | string = alloc_string("spong", leafap); |
| 207 | UNUSED(string); | ||
| 206 | } | 208 | } |
| 207 | } | 209 | } |
| 208 | 210 | ||
| @@ -315,6 +317,7 @@ int main(int argc, char *argv[]) | |||
| 315 | pthread_t pthread1; | 317 | pthread_t pthread1; |
| 316 | 318 | ||
| 317 | randomize(argc, argv); | 319 | randomize(argc, argv); |
| 320 | mps_lib_assert_fail_install(assert_die); | ||
| 318 | 321 | ||
| 319 | initialise_wrapper(wrapper_wrapper); | 322 | initialise_wrapper(wrapper_wrapper); |
| 320 | initialise_wrapper(string_wrapper); | 323 | initialise_wrapper(string_wrapper); |
diff --git a/mps/code/btcv.c b/mps/code/btcv.c index b119a217d5d..72256a5f693 100644 --- a/mps/code/btcv.c +++ b/mps/code/btcv.c | |||
| @@ -16,6 +16,7 @@ | |||
| 16 | #include "mpsavm.h" | 16 | #include "mpsavm.h" |
| 17 | #include "mps.h" | 17 | #include "mps.h" |
| 18 | #include "testlib.h" | 18 | #include "testlib.h" |
| 19 | #include "mpslib.h" | ||
| 19 | 20 | ||
| 20 | #include <stdlib.h> | 21 | #include <stdlib.h> |
| 21 | 22 | ||
diff --git a/mps/code/bttest.c b/mps/code/bttest.c index c119fe70a34..165a4fd1cba 100644 --- a/mps/code/bttest.c +++ b/mps/code/bttest.c | |||
| @@ -9,6 +9,7 @@ | |||
| 9 | #include "mps.h" | 9 | #include "mps.h" |
| 10 | #include "mpsavm.h" | 10 | #include "mpsavm.h" |
| 11 | #include "testlib.h" | 11 | #include "testlib.h" |
| 12 | #include "mpslib.h" | ||
| 12 | 13 | ||
| 13 | #include <stdlib.h> | 14 | #include <stdlib.h> |
| 14 | #include <stdarg.h> | 15 | #include <stdarg.h> |
diff --git a/mps/code/check.h b/mps/code/check.h index 58e62255102..1f03c72f300 100644 --- a/mps/code/check.h +++ b/mps/code/check.h | |||
| @@ -52,7 +52,7 @@ | |||
| 52 | #define ASSERT(cond, condstring) \ | 52 | #define ASSERT(cond, condstring) \ |
| 53 | BEGIN \ | 53 | BEGIN \ |
| 54 | if (cond) NOOP; else \ | 54 | if (cond) NOOP; else \ |
| 55 | mps_lib_assert_fail(condstring "\n" __FILE__ "\n" STR(__LINE__)); \ | 55 | mps_lib_assert_fail(__FILE__ , __LINE__, (condstring)); \ |
| 56 | END | 56 | END |
| 57 | 57 | ||
| 58 | #define ASSERT_TYPECHECK(type, val) \ | 58 | #define ASSERT_TYPECHECK(type, val) \ |
| @@ -158,7 +158,7 @@ extern unsigned CheckLevel; | |||
| 158 | 158 | ||
| 159 | #define NOTREACHED \ | 159 | #define NOTREACHED \ |
| 160 | BEGIN \ | 160 | BEGIN \ |
| 161 | mps_lib_assert_fail("unreachable code" "\n" __FILE__ "\n" STR(__LINE__)); \ | 161 | mps_lib_assert_fail(__FILE__, __LINE__, "unreachable code"); \ |
| 162 | END | 162 | END |
| 163 | 163 | ||
| 164 | #endif | 164 | #endif |
diff --git a/mps/code/comm.gmk b/mps/code/comm.gmk index a4d41a9cbd9..436068fcda7 100644 --- a/mps/code/comm.gmk +++ b/mps/code/comm.gmk | |||
| @@ -167,13 +167,12 @@ FMTDYTST = fmtdy.c fmtno.c fmtdytst.c | |||
| 167 | FMTHETST = fmthe.c fmtdy.c fmtno.c fmtdytst.c | 167 | FMTHETST = fmthe.c fmtdy.c fmtno.c fmtdytst.c |
| 168 | PLINTH = mpsliban.c mpsioan.c | 168 | PLINTH = mpsliban.c mpsioan.c |
| 169 | EVENTPROC = eventcnv.c eventpro.c table.c | 169 | EVENTPROC = eventcnv.c eventpro.c table.c |
| 170 | MPMCOMMON = mpsi.c mpm.c arenavm.c arenacl.c arena.c global.c locus.c \ | 170 | MPMCOMMON = abq.c arena.c arenacl.c arenavm.c arg.c boot.c bt.c \ |
| 171 | tract.c walk.c reserv.c protocol.c pool.c poolabs.c \ | 171 | buffer.c cbs.c dbgpool.c dbgpooli.c diag.c event.c format.c \ |
| 172 | trace.c traceanc.c root.c seg.c format.c buffer.c ref.c \ | 172 | global.c ld.c locus.c message.c meter.c mpm.c mpsi.c pool.c \ |
| 173 | bt.c ring.c shield.c ld.c event.c sac.c message.c \ | 173 | poolabs.c poolmfs.c poolmrg.c poolmv.c protocol.c range.c ref.c \ |
| 174 | poolmrg.c poolmfs.c poolmv.c dbgpool.c dbgpooli.c \ | 174 | reserv.c ring.c root.c sac.c seg.c shield.c splay.c ss.c table.c \ |
| 175 | boot.c meter.c splay.c cbs.c diag.c \ | 175 | trace.c traceanc.c tract.c walk.c |
| 176 | ss.c table.c arg.c abq.c range.c | ||
| 177 | MPM = $(MPMCOMMON) $(MPMPF) | 176 | MPM = $(MPMCOMMON) $(MPMPF) |
| 178 | 177 | ||
| 179 | 178 | ||
| @@ -218,49 +217,54 @@ EVENTPROCDEP = $(EVENTPROC:%.c=$(PFM)/$(VARIETY)/%.d) | |||
| 218 | endif | 217 | endif |
| 219 | 218 | ||
| 220 | 219 | ||
| 221 | # == Pseudo-targets == | 220 | # == Test cases == |
| 221 | # | ||
| 222 | # %%TARGET: When adding a new target, add it to one of the variables | ||
| 223 | # in this section. Library components go in LIB_TARGETS. | ||
| 222 | 224 | ||
| 223 | # %%TARGET: When adding a new target, add it to the all dependencies | 225 | LIB_TARGETS=mps.a mpsplan.a |
| 224 | 226 | ||
| 225 | all: mpmss sacss amcss amcssth amcsshe amsss amssshe segsmss awlut awluthe \ | 227 | # If it is suitable for running regularly (for example, after every |
| 226 | mpsicv lockcov poolncv locv qs apss \ | 228 | # build) as an automated test case, add it to AUTO_TEST_TARGETS. |
| 227 | finalcv finaltest arenacv bttest teletest \ | ||
| 228 | abqtest cbstest btcv mv2test messtest steptest \ | ||
| 229 | walkt0 zcoll zmess \ | ||
| 230 | $(EXTRA_TARGETS) \ | ||
| 231 | mps.a mpsplan.a | ||
| 232 | 229 | ||
| 230 | AUTO_TEST_TARGETS=abqtest amcss amcsshe amcssth amsss amssshe apss \ | ||
| 231 | arenacv awlut awluthe btcv exposet0 expt825 fbmtest finalcv \ | ||
| 232 | finaltest lockcov locv messtest mpmss mpsicv mv2test poolncv qs \ | ||
| 233 | sacss segsmss steptest walkt0 zmess | ||
| 233 | 234 | ||
| 234 | # Runs the automated tests. | 235 | # If it is not runnable as an automated test case, but is buildable, |
| 235 | # | 236 | # add it to OTHER_TEST_TARGETS with a note. |
| 236 | # %%TARGET: When adding a new target, if target is suitable for | 237 | # |
| 237 | # running as an automated test, then add it here. | 238 | # awlutth -- fails (job003506). |
| 239 | # bttest and teletest -- interactive and so cannot be run unattended. | ||
| 240 | # zcoll -- takes too long to be useful as a regularly run smoke test. | ||
| 241 | |||
| 242 | OTHER_TEST_TARGETS=awlutth bttest teletest zcoll | ||
| 243 | |||
| 244 | # This target records programs that we were once able to build but | ||
| 245 | # can't at the moment: | ||
| 238 | # | 246 | # |
| 239 | # bttest and teletest are not listed here because they are interactive | 247 | # replay -- depends on the EPVM pool. |
| 240 | # and so cannot be run unattended. | 248 | |
| 241 | TESTCASES=abqtest amcss amcsshe amcssth amsss amssshe apss arenacv \ | 249 | UNBUILDABLE_TARGETS=replay |
| 242 | awlut awluthe btcv cbstest finalcv finaltest lockcov locv \ | 250 | |
| 243 | messtest mpmss mpsicv mv2test poolncv qs sacss segsmss \ | 251 | ALL_TARGETS=$(LIB_TARGETS) $(AUTO_TEST_TARGETS) $(OTHER_TEST_TARGETS) $(EXTRA_TARGETS) |
| 244 | steptest walkt0 | 252 | |
| 245 | testrun: $(TESTCASES) | 253 | |
| 246 | ../tool/testrun.sh $(addprefix $(PFM)/$(VARIETY)/,$(TESTCASES)) | 254 | # == Pseudo-targets == |
| 255 | |||
| 256 | all: $(ALL_TARGETS) | ||
| 257 | |||
| 258 | |||
| 259 | # Run the automated tests. | ||
| 260 | |||
| 261 | testrun: $(AUTO_TEST_TARGETS) | ||
| 262 | ../tool/testrun.sh $(addprefix $(PFM)/$(VARIETY)/,$(AUTO_TEST_TARGETS)) | ||
| 247 | 263 | ||
| 248 | # These convenience targets allow one to type "make foo" to build target | 264 | # These convenience targets allow one to type "make foo" to build target |
| 249 | # foo in selected varieties (or none, for the latter rule). | 265 | # foo in selected varieties (or none, for the latter rule). |
| 250 | # | 266 | |
| 251 | # %%TARGET: When adding a new target, add a pseudo-target for it here. | 267 | $(ALL_TARGETS): phony |
| 252 | |||
| 253 | mpmss sacss amcss amcssth amcsshe amsss amssshe segsmss awlut awlutth \ | ||
| 254 | awluthe mpsicv lockcov poolncv locv qs apss \ | ||
| 255 | finalcv finaltest arenacv bttest teletest \ | ||
| 256 | expt825 \ | ||
| 257 | abqtest cbstest btcv mv2test \ | ||
| 258 | messtest steptest \ | ||
| 259 | walkt0 \ | ||
| 260 | exposet0 \ | ||
| 261 | zcoll zmess \ | ||
| 262 | $(EXTRA_TARGETS) replay replaysw \ | ||
| 263 | mps.a mpsplan.a: phony | ||
| 264 | ifdef VARIETY | 268 | ifdef VARIETY |
| 265 | $(MAKE) -f $(PFM).gmk TARGET=$@ variety | 269 | $(MAKE) -f $(PFM).gmk TARGET=$@ variety |
| 266 | else | 270 | else |
| @@ -341,88 +345,91 @@ $(PFM)/cool/mps.a: \ | |||
| 341 | 345 | ||
| 342 | ifdef VARIETY | 346 | ifdef VARIETY |
| 343 | 347 | ||
| 344 | $(PFM)/$(VARIETY)/finalcv: $(PFM)/$(VARIETY)/finalcv.o \ | 348 | $(PFM)/$(VARIETY)/abqtest: $(PFM)/$(VARIETY)/abqtest.o \ |
| 345 | $(FMTDYTSTOBJ) $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a | 349 | $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a |
| 346 | 350 | ||
| 347 | $(PFM)/$(VARIETY)/finaltest: $(PFM)/$(VARIETY)/finaltest.o \ | 351 | $(PFM)/$(VARIETY)/amcss: $(PFM)/$(VARIETY)/amcss.o \ |
| 348 | $(FMTDYTSTOBJ) $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a | 352 | $(FMTDYTSTOBJ) $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a |
| 349 | 353 | ||
| 350 | $(PFM)/$(VARIETY)/expt825: $(PFM)/$(VARIETY)/expt825.o \ | 354 | $(PFM)/$(VARIETY)/amcsshe: $(PFM)/$(VARIETY)/amcsshe.o \ |
| 355 | $(FMTHETSTOBJ) $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a | ||
| 356 | |||
| 357 | $(PFM)/$(VARIETY)/amcssth: $(PFM)/$(VARIETY)/amcssth.o \ | ||
| 351 | $(FMTDYTSTOBJ) $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a | 358 | $(FMTDYTSTOBJ) $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a |
| 352 | 359 | ||
| 353 | $(PFM)/$(VARIETY)/locv: $(PFM)/$(VARIETY)/locv.o \ | 360 | $(PFM)/$(VARIETY)/amsss: $(PFM)/$(VARIETY)/amsss.o \ |
| 354 | $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a | 361 | $(FMTDYTSTOBJ) $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a |
| 355 | 362 | ||
| 356 | $(PFM)/$(VARIETY)/mpmss: $(PFM)/$(VARIETY)/mpmss.o \ | 363 | $(PFM)/$(VARIETY)/amssshe: $(PFM)/$(VARIETY)/amssshe.o \ |
| 357 | $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a | 364 | $(FMTHETSTOBJ) $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a |
| 358 | 365 | ||
| 359 | $(PFM)/$(VARIETY)/apss: $(PFM)/$(VARIETY)/apss.o \ | 366 | $(PFM)/$(VARIETY)/apss: $(PFM)/$(VARIETY)/apss.o \ |
| 360 | $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a | 367 | $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a |
| 361 | 368 | ||
| 362 | $(PFM)/$(VARIETY)/sacss: $(PFM)/$(VARIETY)/sacss.o \ | 369 | $(PFM)/$(VARIETY)/arenacv: $(PFM)/$(VARIETY)/arenacv.o \ |
| 363 | $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a | 370 | $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a |
| 364 | 371 | ||
| 365 | $(PFM)/$(VARIETY)/bttest: $(PFM)/$(VARIETY)/bttest.o \ | 372 | $(PFM)/$(VARIETY)/awlut: $(PFM)/$(VARIETY)/awlut.o \ |
| 366 | $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a | 373 | $(FMTDYTSTOBJ) $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a |
| 367 | 374 | ||
| 368 | $(PFM)/$(VARIETY)/teletest: $(PFM)/$(VARIETY)/teletest.o \ | 375 | $(PFM)/$(VARIETY)/awluthe: $(PFM)/$(VARIETY)/awluthe.o \ |
| 369 | $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a | 376 | $(FMTHETSTOBJ) $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a |
| 370 | 377 | ||
| 371 | $(PFM)/$(VARIETY)/lockcov: $(PFM)/$(VARIETY)/lockcov.o \ | 378 | $(PFM)/$(VARIETY)/awlutth: $(PFM)/$(VARIETY)/awlutth.o \ |
| 379 | $(FMTDYTSTOBJ) $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a | ||
| 380 | |||
| 381 | $(PFM)/$(VARIETY)/btcv: $(PFM)/$(VARIETY)/btcv.o \ | ||
| 372 | $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a | 382 | $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a |
| 373 | 383 | ||
| 374 | $(PFM)/$(VARIETY)/mpsicv: $(PFM)/$(VARIETY)/mpsicv.o \ | 384 | $(PFM)/$(VARIETY)/bttest: $(PFM)/$(VARIETY)/bttest.o \ |
| 375 | $(FMTDYTSTOBJ) $(FMTHETSTOBJ) $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a | 385 | $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a |
| 376 | 386 | ||
| 377 | $(PFM)/$(VARIETY)/amcss: $(PFM)/$(VARIETY)/amcss.o \ | 387 | $(PFM)/$(VARIETY)/fbmtest: $(PFM)/$(VARIETY)/fbmtest.o \ |
| 378 | $(FMTDYTSTOBJ) $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a | 388 | $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a |
| 379 | 389 | ||
| 380 | $(PFM)/$(VARIETY)/amcssth: $(PFM)/$(VARIETY)/amcssth.o \ | 390 | $(PFM)/$(VARIETY)/exposet0: $(PFM)/$(VARIETY)/exposet0.o \ |
| 381 | $(FMTDYTSTOBJ) $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a | 391 | $(FMTDYTSTOBJ) $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a |
| 382 | 392 | ||
| 383 | $(PFM)/$(VARIETY)/amcsshe: $(PFM)/$(VARIETY)/amcsshe.o \ | 393 | $(PFM)/$(VARIETY)/expt825: $(PFM)/$(VARIETY)/expt825.o \ |
| 384 | $(FMTHETSTOBJ) $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a | ||
| 385 | |||
| 386 | $(PFM)/$(VARIETY)/amsss: $(PFM)/$(VARIETY)/amsss.o \ | ||
| 387 | $(FMTDYTSTOBJ) $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a | 394 | $(FMTDYTSTOBJ) $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a |
| 388 | 395 | ||
| 389 | $(PFM)/$(VARIETY)/amssshe: $(PFM)/$(VARIETY)/amssshe.o \ | 396 | $(PFM)/$(VARIETY)/finalcv: $(PFM)/$(VARIETY)/finalcv.o \ |
| 390 | $(FMTHETSTOBJ) $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a | ||
| 391 | |||
| 392 | $(PFM)/$(VARIETY)/segsmss: $(PFM)/$(VARIETY)/segsmss.o \ | ||
| 393 | $(FMTDYTSTOBJ) $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a | 397 | $(FMTDYTSTOBJ) $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a |
| 394 | 398 | ||
| 395 | $(PFM)/$(VARIETY)/awlut: $(PFM)/$(VARIETY)/awlut.o \ | 399 | $(PFM)/$(VARIETY)/finaltest: $(PFM)/$(VARIETY)/finaltest.o \ |
| 396 | $(FMTDYTSTOBJ) $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a | 400 | $(FMTDYTSTOBJ) $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a |
| 397 | 401 | ||
| 398 | $(PFM)/$(VARIETY)/awluthe: $(PFM)/$(VARIETY)/awluthe.o \ | 402 | $(PFM)/$(VARIETY)/lockcov: $(PFM)/$(VARIETY)/lockcov.o \ |
| 399 | $(FMTHETSTOBJ) $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a | 403 | $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a |
| 400 | |||
| 401 | $(PFM)/$(VARIETY)/awlutth: $(PFM)/$(VARIETY)/awlutth.o \ | ||
| 402 | $(FMTDYTSTOBJ) $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a | ||
| 403 | 404 | ||
| 404 | $(PFM)/$(VARIETY)/poolncv: $(PFM)/$(VARIETY)/poolncv.o \ | 405 | $(PFM)/$(VARIETY)/locv: $(PFM)/$(VARIETY)/locv.o \ |
| 405 | $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a | 406 | $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a |
| 406 | 407 | ||
| 407 | $(PFM)/$(VARIETY)/qs: $(PFM)/$(VARIETY)/qs.o \ | 408 | $(PFM)/$(VARIETY)/messtest: $(PFM)/$(VARIETY)/messtest.o \ |
| 408 | $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a | 409 | $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a |
| 409 | 410 | ||
| 410 | $(PFM)/$(VARIETY)/arenacv: $(PFM)/$(VARIETY)/arenacv.o \ | 411 | $(PFM)/$(VARIETY)/mpmss: $(PFM)/$(VARIETY)/mpmss.o \ |
| 411 | $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a | 412 | $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a |
| 412 | 413 | ||
| 413 | $(PFM)/$(VARIETY)/abqtest: $(PFM)/$(VARIETY)/abqtest.o \ | 414 | $(PFM)/$(VARIETY)/mpsicv: $(PFM)/$(VARIETY)/mpsicv.o \ |
| 415 | $(FMTDYTSTOBJ) $(FMTHETSTOBJ) $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a | ||
| 416 | |||
| 417 | $(PFM)/$(VARIETY)/mv2test: $(PFM)/$(VARIETY)/mv2test.o \ | ||
| 414 | $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a | 418 | $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a |
| 415 | 419 | ||
| 416 | $(PFM)/$(VARIETY)/cbstest: $(PFM)/$(VARIETY)/cbstest.o \ | 420 | $(PFM)/$(VARIETY)/poolncv: $(PFM)/$(VARIETY)/poolncv.o \ |
| 417 | $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a | 421 | $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a |
| 418 | 422 | ||
| 419 | $(PFM)/$(VARIETY)/btcv: $(PFM)/$(VARIETY)/btcv.o \ | 423 | $(PFM)/$(VARIETY)/qs: $(PFM)/$(VARIETY)/qs.o \ |
| 420 | $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a | 424 | $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a |
| 421 | 425 | ||
| 422 | $(PFM)/$(VARIETY)/mv2test: $(PFM)/$(VARIETY)/mv2test.o \ | 426 | $(PFM)/$(VARIETY)/sacss: $(PFM)/$(VARIETY)/sacss.o \ |
| 423 | $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a | 427 | $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a |
| 424 | 428 | ||
| 425 | $(PFM)/$(VARIETY)/messtest: $(PFM)/$(VARIETY)/messtest.o \ | 429 | $(PFM)/$(VARIETY)/segsmss: $(PFM)/$(VARIETY)/segsmss.o \ |
| 430 | $(FMTDYTSTOBJ) $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a | ||
| 431 | |||
| 432 | $(PFM)/$(VARIETY)/teletest: $(PFM)/$(VARIETY)/teletest.o \ | ||
| 426 | $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a | 433 | $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a |
| 427 | 434 | ||
| 428 | $(PFM)/$(VARIETY)/steptest: $(PFM)/$(VARIETY)/steptest.o \ | 435 | $(PFM)/$(VARIETY)/steptest: $(PFM)/$(VARIETY)/steptest.o \ |
| @@ -431,9 +438,6 @@ $(PFM)/$(VARIETY)/steptest: $(PFM)/$(VARIETY)/steptest.o \ | |||
| 431 | $(PFM)/$(VARIETY)/walkt0: $(PFM)/$(VARIETY)/walkt0.o \ | 438 | $(PFM)/$(VARIETY)/walkt0: $(PFM)/$(VARIETY)/walkt0.o \ |
| 432 | $(FMTDYTSTOBJ) $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a | 439 | $(FMTDYTSTOBJ) $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a |
| 433 | 440 | ||
| 434 | $(PFM)/$(VARIETY)/exposet0: $(PFM)/$(VARIETY)/exposet0.o \ | ||
| 435 | $(FMTDYTSTOBJ) $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a | ||
| 436 | |||
| 437 | $(PFM)/$(VARIETY)/zcoll: $(PFM)/$(VARIETY)/zcoll.o \ | 441 | $(PFM)/$(VARIETY)/zcoll: $(PFM)/$(VARIETY)/zcoll.o \ |
| 438 | $(FMTDYTSTOBJ) $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a | 442 | $(FMTDYTSTOBJ) $(TESTLIBOBJ) $(PFM)/$(VARIETY)/mps.a |
| 439 | 443 | ||
diff --git a/mps/code/commpre.nmk b/mps/code/commpre.nmk index 5ae4ffb49aa..47c66943164 100644 --- a/mps/code/commpre.nmk +++ b/mps/code/commpre.nmk | |||
| @@ -130,7 +130,7 @@ CFCOOL = /DCONFIG_VAR_COOL $(CRTFLAGSCOOL) $(CFLAGSCOOL) $(CFLAGSINTERNAL) | |||
| 130 | # %%VARIETY: When adding a new variety, define a macro containing the flags | 130 | # %%VARIETY: When adding a new variety, define a macro containing the flags |
| 131 | # for the new variety | 131 | # for the new variety |
| 132 | LINKER = link | 132 | LINKER = link |
| 133 | LINKFLAGSCOMMON = /nologo | 133 | LINKFLAGSCOMMON = /nologo /LARGEADDRESSAWARE |
| 134 | LINKFLAGSINTERNAL = /DEBUG | 134 | LINKFLAGSINTERNAL = /DEBUG |
| 135 | # ( Internal flags used to be set to /DEBUG:full ) | 135 | # ( Internal flags used to be set to /DEBUG:full ) |
| 136 | LINKFLAGSEXTERNAL = /RELEASE | 136 | LINKFLAGSEXTERNAL = /RELEASE |
diff --git a/mps/code/config.h b/mps/code/config.h index 70e50169c7d..edc2c552191 100644 --- a/mps/code/config.h +++ b/mps/code/config.h | |||
| @@ -48,6 +48,7 @@ | |||
| 48 | 48 | ||
| 49 | #elif defined(CONFIG_VAR_DIAG) /* Diagnostic variety */ | 49 | #elif defined(CONFIG_VAR_DIAG) /* Diagnostic variety */ |
| 50 | #define CONFIG_ASSERT | 50 | #define CONFIG_ASSERT |
| 51 | #define CONFIG_ASSERT_ABORT | ||
| 51 | #ifndef CHECKLEVEL | 52 | #ifndef CHECKLEVEL |
| 52 | #define CHECKLEVEL CheckLevelMINIMAL | 53 | #define CHECKLEVEL CheckLevelMINIMAL |
| 53 | #endif | 54 | #endif |
| @@ -72,6 +73,7 @@ | |||
| 72 | #elif defined(CONFIG_VAR_COOL) | 73 | #elif defined(CONFIG_VAR_COOL) |
| 73 | #define CONFIG_ASSERT | 74 | #define CONFIG_ASSERT |
| 74 | #define CONFIG_ASSERT_ALL | 75 | #define CONFIG_ASSERT_ALL |
| 76 | #define CONFIG_ASSERT_ABORT | ||
| 75 | #define CONFIG_STATS | 77 | #define CONFIG_STATS |
| 76 | #ifndef CHECKLEVEL | 78 | #ifndef CHECKLEVEL |
| 77 | #define CHECKLEVEL CheckLevelSHALLOW | 79 | #define CHECKLEVEL CheckLevelSHALLOW |
| @@ -91,6 +93,7 @@ | |||
| 91 | 93 | ||
| 92 | /* #elif defined(CONFIG_VAR_HOT) */ | 94 | /* #elif defined(CONFIG_VAR_HOT) */ |
| 93 | #define CONFIG_ASSERT | 95 | #define CONFIG_ASSERT |
| 96 | /* Note, not CONFIG_ASSERT_ABORT */ | ||
| 94 | #ifndef CHECKLEVEL | 97 | #ifndef CHECKLEVEL |
| 95 | #define CHECKLEVEL CheckLevelMINIMAL | 98 | #define CHECKLEVEL CheckLevelMINIMAL |
| 96 | #endif | 99 | #endif |
| @@ -117,6 +120,11 @@ | |||
| 117 | #define AVER_AND_CHECK_NONE | 120 | #define AVER_AND_CHECK_NONE |
| 118 | #define MPS_ASSERT_STRING "nonasserted" | 121 | #define MPS_ASSERT_STRING "nonasserted" |
| 119 | #endif | 122 | #endif |
| 123 | #if defined(CONFIG_ASSERT_ABORT) | ||
| 124 | #define ASSERT_ABORT() abort() | ||
| 125 | #else | ||
| 126 | #define ASSERT_ABORT() NOOP | ||
| 127 | #endif | ||
| 120 | 128 | ||
| 121 | 129 | ||
| 122 | #if defined(CONFIG_STATS) | 130 | #if defined(CONFIG_STATS) |
diff --git a/mps/code/event.c b/mps/code/event.c index 96e78b24061..288b43afa17 100644 --- a/mps/code/event.c +++ b/mps/code/event.c | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | /* event.c: EVENT LOGGING | 1 | /* event.c: EVENT LOGGING |
| 2 | * | 2 | * |
| 3 | * $Id$ | 3 | * $Id$ |
| 4 | * Copyright (c) 2001 Ravenbrook Limited. See end of file for license. | 4 | * Copyright (c) 2001-2013 Ravenbrook Limited. See end of file for license. |
| 5 | * | 5 | * |
| 6 | * .sources: mps.design.event | 6 | * .sources: mps.design.event |
| 7 | * | 7 | * |
| @@ -40,9 +40,12 @@ static Serial EventInternSerial; | |||
| 40 | /* Buffers in which events are recorded, from the top down. */ | 40 | /* Buffers in which events are recorded, from the top down. */ |
| 41 | char EventBuffer[EventKindLIMIT][EventBufferSIZE]; | 41 | char EventBuffer[EventKindLIMIT][EventBufferSIZE]; |
| 42 | 42 | ||
| 43 | /* Pointers to last written event in each buffer. */ | 43 | /* Pointers to last event logged into each buffer. */ |
| 44 | char *EventLast[EventKindLIMIT]; | 44 | char *EventLast[EventKindLIMIT]; |
| 45 | 45 | ||
| 46 | /* Pointers to the last even written out of each buffer. */ | ||
| 47 | char *EventWritten[EventKindLIMIT]; | ||
| 48 | |||
| 46 | EventControlSet EventKindControl; /* Bit set used to control output. */ | 49 | EventControlSet EventKindControl; /* Bit set used to control output. */ |
| 47 | 50 | ||
| 48 | 51 | ||
| @@ -71,65 +74,24 @@ failWrite: | |||
| 71 | return res; | 74 | return res; |
| 72 | } | 75 | } |
| 73 | 76 | ||
| 74 | /* EventFlush -- flush event buffer to the event stream */ | ||
| 75 | 77 | ||
| 76 | Res EventFlush(EventKind kind) | 78 | /* EventFlush -- flush event buffer (perhaps to the event stream) */ |
| 77 | { | ||
| 78 | Res res; | ||
| 79 | size_t size; | ||
| 80 | 79 | ||
| 80 | void EventFlush(EventKind kind) | ||
| 81 | { | ||
| 81 | AVER(eventInited); | 82 | AVER(eventInited); |
| 82 | AVER(0 <= kind && kind < EventKindLIMIT); | 83 | AVER(0 <= kind && kind < EventKindLIMIT); |
| 83 | 84 | ||
| 84 | AVER(EventBuffer[kind] <= EventLast[kind]); | 85 | AVER(EventBuffer[kind] <= EventLast[kind]); |
| 85 | AVER(EventLast[kind] <= EventBuffer[kind] + EventBufferSIZE); | 86 | AVER(EventLast[kind] <= EventWritten[kind]); |
| 87 | AVER(EventWritten[kind] <= EventBuffer[kind] + EventBufferSIZE); | ||
| 86 | 88 | ||
| 87 | /* Is event logging enabled for this kind of event, or are or are we just | 89 | /* Send all pending events to the event stream. */ |
| 88 | writing to the buffer for backtraces, cores, and other debugging? */ | 90 | EventSync(); |
| 89 | if (BS_IS_MEMBER(EventKindControl, kind)) { | ||
| 90 | |||
| 91 | size = (size_t)(EventBuffer[kind] + EventBufferSIZE - EventLast[kind]); | ||
| 92 | |||
| 93 | /* Checking the size avoids creating the event stream when the arena is | ||
| 94 | destroyed and no events have been logged. */ | ||
| 95 | if (size == 0) | ||
| 96 | return ResOK; | ||
| 97 | |||
| 98 | /* Ensure the IO stream is open. We do this late so that no stream is | ||
| 99 | created if no events are enabled by telemetry control. */ | ||
| 100 | if (!eventIOInited) { | ||
| 101 | res = (Res)mps_io_create(&eventIO); | ||
| 102 | if(res != ResOK) | ||
| 103 | goto failCreate; | ||
| 104 | eventIOInited = TRUE; | ||
| 105 | } | ||
| 106 | |||
| 107 | /* Send an EventClockSync event */ | ||
| 108 | res = eventClockSync(); | ||
| 109 | if (res != ResOK) | ||
| 110 | goto failClockSync; | ||
| 111 | |||
| 112 | /* Writing might be faster if the size is aligned to a multiple of the | ||
| 113 | C library or kernel's buffer size. We could pad out the buffer with | ||
| 114 | a marker for this purpose. */ | ||
| 115 | |||
| 116 | res = (Res)mps_io_write(eventIO, (void *)EventLast[kind], size); | ||
| 117 | if (res != ResOK) | ||
| 118 | goto failWrite; | ||
| 119 | |||
| 120 | } | ||
| 121 | |||
| 122 | res = ResOK; | ||
| 123 | |||
| 124 | failClockSync: | ||
| 125 | failWrite: | ||
| 126 | failCreate: | ||
| 127 | |||
| 128 | /* Flush the in-memory buffer whether or not we succeeded, so that we can | ||
| 129 | record recent events there. */ | ||
| 130 | EventLast[kind] = EventBuffer[kind] + EventBufferSIZE; | ||
| 131 | 91 | ||
| 132 | return res; | 92 | /* Flush the in-memory buffer whether or not we send this buffer, so |
| 93 | that we can continue to record recent events. */ | ||
| 94 | EventLast[kind] = EventWritten[kind] = EventBuffer[kind] + EventBufferSIZE; | ||
| 133 | } | 95 | } |
| 134 | 96 | ||
| 135 | 97 | ||
| @@ -138,9 +100,54 @@ failCreate: | |||
| 138 | void EventSync(void) | 100 | void EventSync(void) |
| 139 | { | 101 | { |
| 140 | EventKind kind; | 102 | EventKind kind; |
| 141 | for (kind = 0; kind < EventKindLIMIT; ++kind) | 103 | Bool wrote = FALSE; |
| 142 | (void)EventFlush(kind); | 104 | |
| 143 | (void)mps_io_flush(eventIO); | 105 | for (kind = 0; kind < EventKindLIMIT; ++kind) { |
| 106 | |||
| 107 | /* Is event logging enabled for this kind of event, or are or are we just | ||
| 108 | writing to the buffer for backtraces, cores, and other debugging? */ | ||
| 109 | if (BS_IS_MEMBER(EventKindControl, kind)) { | ||
| 110 | size_t size; | ||
| 111 | Res res; | ||
| 112 | |||
| 113 | AVER(EventBuffer[kind] <= EventLast[kind]); | ||
| 114 | AVER(EventLast[kind] <= EventWritten[kind]); | ||
| 115 | AVER(EventWritten[kind] <= EventBuffer[kind] + EventBufferSIZE); | ||
| 116 | |||
| 117 | size = (size_t)(EventWritten[kind] - EventLast[kind]); | ||
| 118 | if (size > 0) { | ||
| 119 | |||
| 120 | /* Ensure the IO stream is open. We do this late so that no stream is | ||
| 121 | created if no events are enabled by telemetry control. */ | ||
| 122 | if (!eventIOInited) { | ||
| 123 | res = (Res)mps_io_create(&eventIO); | ||
| 124 | if(res != ResOK) { | ||
| 125 | /* TODO: Consider taking some other action if open fails. */ | ||
| 126 | return; | ||
| 127 | } | ||
| 128 | eventIOInited = TRUE; | ||
| 129 | } | ||
| 130 | |||
| 131 | /* Writing might be faster if the size is aligned to a multiple of the | ||
| 132 | C library or kernel's buffer size. We could pad out the buffer with | ||
| 133 | a marker for this purpose. */ | ||
| 134 | |||
| 135 | res = (Res)mps_io_write(eventIO, (void *)EventLast[kind], size); | ||
| 136 | if (res == ResOK) { | ||
| 137 | /* TODO: Consider taking some other action if a write fails. */ | ||
| 138 | EventWritten[kind] = EventLast[kind]; | ||
| 139 | wrote = TRUE; | ||
| 140 | } | ||
| 141 | } | ||
| 142 | } | ||
| 143 | } | ||
| 144 | |||
| 145 | /* If we wrote out events, send an EventClockSync event and flush | ||
| 146 | the telemetry stream. */ | ||
| 147 | if (wrote) { | ||
| 148 | (void)eventClockSync(); | ||
| 149 | (void)mps_io_flush(eventIO); | ||
| 150 | } | ||
| 144 | } | 151 | } |
| 145 | 152 | ||
| 146 | 153 | ||
| @@ -202,7 +209,8 @@ void EventInit(void) | |||
| 202 | EventKind kind; | 209 | EventKind kind; |
| 203 | for (kind = 0; kind < EventKindLIMIT; ++kind) { | 210 | for (kind = 0; kind < EventKindLIMIT; ++kind) { |
| 204 | AVER(EventLast[kind] == NULL); | 211 | AVER(EventLast[kind] == NULL); |
| 205 | EventLast[kind] = EventBuffer[kind] + EventBufferSIZE; | 212 | AVER(EventWritten[kind] == NULL); |
| 213 | EventLast[kind] = EventWritten[kind] = EventBuffer[kind] + EventBufferSIZE; | ||
| 206 | } | 214 | } |
| 207 | eventUserCount = (Count)1; | 215 | eventUserCount = (Count)1; |
| 208 | eventInited = TRUE; | 216 | eventInited = TRUE; |
| @@ -508,7 +516,7 @@ extern void EventDump(mps_lib_FILE *stream) | |||
| 508 | 516 | ||
| 509 | /* C. COPYRIGHT AND LICENSE | 517 | /* C. COPYRIGHT AND LICENSE |
| 510 | * | 518 | * |
| 511 | * Copyright (C) 2001-2002 Ravenbrook Limited <http://www.ravenbrook.com/>. | 519 | * Copyright (C) 2001-2013 Ravenbrook Limited <http://www.ravenbrook.com/>. |
| 512 | * All rights reserved. This is an open source license. Contact | 520 | * All rights reserved. This is an open source license. Contact |
| 513 | * Ravenbrook for commercial licensing options. | 521 | * Ravenbrook for commercial licensing options. |
| 514 | * | 522 | * |
diff --git a/mps/code/event.h b/mps/code/event.h index c54193b367d..b16e2af4b9c 100644 --- a/mps/code/event.h +++ b/mps/code/event.h | |||
| @@ -32,7 +32,7 @@ extern EventControlSet EventControl(EventControlSet resetMask, | |||
| 32 | extern EventStringId EventInternString(const char *label); | 32 | extern EventStringId EventInternString(const char *label); |
| 33 | extern EventStringId EventInternGenString(size_t, const char *label); | 33 | extern EventStringId EventInternGenString(size_t, const char *label); |
| 34 | extern void EventLabelAddr(Addr addr, Word id); | 34 | extern void EventLabelAddr(Addr addr, Word id); |
| 35 | extern Res EventFlush(EventKind kind); | 35 | extern void EventFlush(EventKind kind); |
| 36 | extern Res EventDescribe(Event event, mps_lib_FILE *stream); | 36 | extern Res EventDescribe(Event event, mps_lib_FILE *stream); |
| 37 | extern Res EventWrite(Event event, mps_lib_FILE *stream); | 37 | extern Res EventWrite(Event event, mps_lib_FILE *stream); |
| 38 | extern void EventDump(mps_lib_FILE *stream); | 38 | extern void EventDump(mps_lib_FILE *stream); |
diff --git a/mps/code/eventdef.h b/mps/code/eventdef.h index 5c6c3b0f2e1..ca5609962f8 100644 --- a/mps/code/eventdef.h +++ b/mps/code/eventdef.h | |||
| @@ -38,7 +38,7 @@ | |||
| 38 | 38 | ||
| 39 | #define EVENT_VERSION_MAJOR ((unsigned)1) | 39 | #define EVENT_VERSION_MAJOR ((unsigned)1) |
| 40 | #define EVENT_VERSION_MEDIAN ((unsigned)1) | 40 | #define EVENT_VERSION_MEDIAN ((unsigned)1) |
| 41 | #define EVENT_VERSION_MINOR ((unsigned)3) | 41 | #define EVENT_VERSION_MINOR ((unsigned)4) |
| 42 | 42 | ||
| 43 | 43 | ||
| 44 | /* EVENT_LIST -- list of event types and general properties | 44 | /* EVENT_LIST -- list of event types and general properties |
| @@ -99,8 +99,8 @@ | |||
| 99 | EVENT(X, CBSInit , 0x0019, TRUE, Pool) \ | 99 | EVENT(X, CBSInit , 0x0019, TRUE, Pool) \ |
| 100 | EVENT(X, Intern , 0x001a, TRUE, User) \ | 100 | EVENT(X, Intern , 0x001a, TRUE, User) \ |
| 101 | EVENT(X, Label , 0x001b, TRUE, User) \ | 101 | EVENT(X, Label , 0x001b, TRUE, User) \ |
| 102 | /* EVENT(X, TraceStart , 0x001c, TRUE, Trace) */ \ | 102 | EVENT(X, TraceStart , 0x001c, TRUE, Trace) \ |
| 103 | /* EVENT(X, TraceCreate , 0x001d, TRUE, Trace) */ \ | 103 | EVENT(X, TraceCreate , 0x001d, TRUE, Trace) \ |
| 104 | EVENT(X, TraceDestroy , 0x001e, TRUE, Trace) \ | 104 | EVENT(X, TraceDestroy , 0x001e, TRUE, Trace) \ |
| 105 | EVENT(X, SegSetGrey , 0x001f, TRUE, Seg) \ | 105 | EVENT(X, SegSetGrey , 0x001f, TRUE, Seg) \ |
| 106 | EVENT(X, TraceFlipBegin , 0x0020, TRUE, Trace) \ | 106 | EVENT(X, TraceFlipBegin , 0x0020, TRUE, Trace) \ |
| @@ -653,6 +653,22 @@ | |||
| 653 | PARAM(X, 0, P, arena) \ | 653 | PARAM(X, 0, P, arena) \ |
| 654 | PARAM(X, 1, B, emergency) | 654 | PARAM(X, 1, B, emergency) |
| 655 | 655 | ||
| 656 | #define EVENT_TraceCreate_PARAMS(PARAM, X) \ | ||
| 657 | PARAM(X, 0, P, trace) /* trace that was created */ \ | ||
| 658 | PARAM(X, 1, P, arena) /* arena in which created */ \ | ||
| 659 | PARAM(X, 2, U, why) /* reason for creation */ | ||
| 660 | |||
| 661 | #define EVENT_TraceStart_PARAMS(PARAM, X) \ | ||
| 662 | PARAM(X, 0, P, trace) /* trace being started */ \ | ||
| 663 | PARAM(X, 1, D, mortality) /* as passed to TraceStart */ \ | ||
| 664 | PARAM(X, 2, D, finishingTime) /* as passed to TraceStart */ \ | ||
| 665 | PARAM(X, 3, W, condemned) /* condemned bytes */ \ | ||
| 666 | PARAM(X, 4, W, notCondemned) /* collectible but not condemned bytes */ \ | ||
| 667 | PARAM(X, 5, W, foundation) /* foundation size */ \ | ||
| 668 | PARAM(X, 6, W, white) /* white reference set */ \ | ||
| 669 | PARAM(X, 7, W, rate) /* segs to scan per increment */ | ||
| 670 | |||
| 671 | |||
| 656 | #endif /* eventdef_h */ | 672 | #endif /* eventdef_h */ |
| 657 | 673 | ||
| 658 | /* C. COPYRIGHT AND LICENSE | 674 | /* C. COPYRIGHT AND LICENSE |
diff --git a/mps/code/exposet0.c b/mps/code/exposet0.c index 6cbf57488d8..8bc0a190d73 100644 --- a/mps/code/exposet0.c +++ b/mps/code/exposet0.c | |||
| @@ -15,6 +15,7 @@ | |||
| 15 | #include "fmtdy.h" | 15 | #include "fmtdy.h" |
| 16 | #include "fmtdytst.h" | 16 | #include "fmtdytst.h" |
| 17 | #include "testlib.h" | 17 | #include "testlib.h" |
| 18 | #include "mpslib.h" | ||
| 18 | #include "mpscamc.h" | 19 | #include "mpscamc.h" |
| 19 | #include "mpsavm.h" | 20 | #include "mpsavm.h" |
| 20 | #include "mpstd.h" | 21 | #include "mpstd.h" |
| @@ -255,6 +256,7 @@ int main(int argc, char *argv[]) | |||
| 255 | void *r; | 256 | void *r; |
| 256 | 257 | ||
| 257 | randomize(argc, argv); | 258 | randomize(argc, argv); |
| 259 | mps_lib_assert_fail_install(assert_die); | ||
| 258 | 260 | ||
| 259 | die(mps_arena_create(&arena, mps_arena_class_vm(), 2*testArenaSIZE), | 261 | die(mps_arena_create(&arena, mps_arena_class_vm(), 2*testArenaSIZE), |
| 260 | "arena_create"); | 262 | "arena_create"); |
diff --git a/mps/code/expt825.c b/mps/code/expt825.c index 26e99aa63d8..9c7c4556d77 100644 --- a/mps/code/expt825.c +++ b/mps/code/expt825.c | |||
| @@ -27,6 +27,7 @@ | |||
| 27 | */ | 27 | */ |
| 28 | 28 | ||
| 29 | #include "testlib.h" | 29 | #include "testlib.h" |
| 30 | #include "mpslib.h" | ||
| 30 | #include "mps.h" | 31 | #include "mps.h" |
| 31 | #include "mpscamc.h" | 32 | #include "mpscamc.h" |
| 32 | #include "mpsavm.h" | 33 | #include "mpsavm.h" |
| @@ -198,6 +199,7 @@ static void *test(void *arg, size_t s) | |||
| 198 | obj = (mps_word_t)objaddr; | 199 | obj = (mps_word_t)objaddr; |
| 199 | mps_message_discard(arena, message); | 200 | mps_message_discard(arena, message); |
| 200 | ++ final_this_time; | 201 | ++ final_this_time; |
| 202 | testlib_unused(obj); | ||
| 201 | } | 203 | } |
| 202 | finals += final_this_time; | 204 | finals += final_this_time; |
| 203 | printf("%lu objects finalized: total %lu of %lu\n", | 205 | printf("%lu objects finalized: total %lu of %lu\n", |
| @@ -238,6 +240,7 @@ static void *test(void *arg, size_t s) | |||
| 238 | obj = (mps_word_t)objaddr; | 240 | obj = (mps_word_t)objaddr; |
| 239 | mps_message_discard(arena, message); | 241 | mps_message_discard(arena, message); |
| 240 | ++ final_this_time; | 242 | ++ final_this_time; |
| 243 | testlib_unused(obj); | ||
| 241 | } | 244 | } |
| 242 | finals += final_this_time; | 245 | finals += final_this_time; |
| 243 | printf("%lu objects finalized: total %lu of %lu\n", | 246 | printf("%lu objects finalized: total %lu of %lu\n", |
| @@ -259,6 +262,7 @@ int main(int argc, char *argv[]) | |||
| 259 | mps_arena_t arena; | 262 | mps_arena_t arena; |
| 260 | mps_thr_t thread; | 263 | mps_thr_t thread; |
| 261 | void *r; | 264 | void *r; |
| 265 | testlib_unused(argc); | ||
| 262 | 266 | ||
| 263 | die(mps_arena_create(&arena, mps_arena_class_vm(), testArenaSIZE), | 267 | die(mps_arena_create(&arena, mps_arena_class_vm(), testArenaSIZE), |
| 264 | "arena_create\n"); | 268 | "arena_create\n"); |
diff --git a/mps/code/finalcv.c b/mps/code/finalcv.c index 8380363350b..8236df4279b 100644 --- a/mps/code/finalcv.c +++ b/mps/code/finalcv.c | |||
| @@ -19,6 +19,7 @@ | |||
| 19 | */ | 19 | */ |
| 20 | 20 | ||
| 21 | #include "testlib.h" | 21 | #include "testlib.h" |
| 22 | #include "mpslib.h" | ||
| 22 | #include "mps.h" | 23 | #include "mps.h" |
| 23 | #include "mpscamc.h" | 24 | #include "mpscamc.h" |
| 24 | #include "mpsavm.h" | 25 | #include "mpsavm.h" |
| @@ -217,6 +218,7 @@ int main(int argc, char *argv[]) | |||
| 217 | void *r; | 218 | void *r; |
| 218 | 219 | ||
| 219 | randomize(argc, argv); | 220 | randomize(argc, argv); |
| 221 | mps_lib_assert_fail_install(assert_die); | ||
| 220 | 222 | ||
| 221 | die(mps_arena_create(&arena, mps_arena_class_vm(), testArenaSIZE), | 223 | die(mps_arena_create(&arena, mps_arena_class_vm(), testArenaSIZE), |
| 222 | "arena_create\n"); | 224 | "arena_create\n"); |
diff --git a/mps/code/finaltest.c b/mps/code/finaltest.c index 38acb455d0f..f5ef8a9a99f 100644 --- a/mps/code/finaltest.c +++ b/mps/code/finaltest.c | |||
| @@ -17,6 +17,7 @@ | |||
| 17 | */ | 17 | */ |
| 18 | 18 | ||
| 19 | #include "testlib.h" | 19 | #include "testlib.h" |
| 20 | #include "mpslib.h" | ||
| 20 | #include "mps.h" | 21 | #include "mps.h" |
| 21 | #include "mpscamc.h" | 22 | #include "mpscamc.h" |
| 22 | #include "mpsavm.h" | 23 | #include "mpsavm.h" |
diff --git a/mps/code/fmtdytst.c b/mps/code/fmtdytst.c index c98fc4b9f73..83ab1f4b81a 100644 --- a/mps/code/fmtdytst.c +++ b/mps/code/fmtdytst.c | |||
| @@ -10,6 +10,7 @@ | |||
| 10 | #include "fmtdytst.h" | 10 | #include "fmtdytst.h" |
| 11 | #include "mps.h" | 11 | #include "mps.h" |
| 12 | #include "testlib.h" | 12 | #include "testlib.h" |
| 13 | #include "mpslib.h" | ||
| 13 | #include <assert.h> | 14 | #include <assert.h> |
| 14 | #include <string.h> | 15 | #include <string.h> |
| 15 | #include <stdlib.h> | 16 | #include <stdlib.h> |
diff --git a/mps/code/global.c b/mps/code/global.c index a1204332d9c..1ba7db30d86 100644 --- a/mps/code/global.c +++ b/mps/code/global.c | |||
| @@ -381,8 +381,27 @@ void GlobalsFinish(Globals arenaGlobals) | |||
| 381 | Arena arena; | 381 | Arena arena; |
| 382 | Rank rank; | 382 | Rank rank; |
| 383 | 383 | ||
| 384 | AVERT(Globals, arenaGlobals); | 384 | /* The client may have failed to destroy all data structures |
| 385 | * associated with the arena. If this happens we must assert (and | ||
| 386 | * not crash). But at this point in the code the control pool has | ||
| 387 | * been destroyed and so the address space containing these rings | ||
| 388 | * has potentially been unmapped. GlobalsCheck calls RingCheck, | ||
| 389 | * which (if the ring is not single) will dereference a pointer into | ||
| 390 | * the space formerly occupied by the control pool and so crash. | ||
| 391 | * Hence we must check that these rings are single *before* calling | ||
| 392 | * GlobalsCheck via the AVERT. See job000652. | ||
| 393 | */ | ||
| 385 | arena = GlobalsArena(arenaGlobals); | 394 | arena = GlobalsArena(arenaGlobals); |
| 395 | AVER(RingIsSingle(&arena->formatRing)); | ||
| 396 | AVER(RingIsSingle(&arena->chainRing)); | ||
| 397 | AVER(RingIsSingle(&arena->messageRing)); | ||
| 398 | AVER(RingIsSingle(&arena->threadRing)); | ||
| 399 | for(rank = 0; rank < RankLIMIT; ++rank) | ||
| 400 | AVER(RingIsSingle(&arena->greyRing[rank])); | ||
| 401 | AVER(RingIsSingle(&arenaGlobals->poolRing)); | ||
| 402 | AVER(RingIsSingle(&arenaGlobals->rootRing)); | ||
| 403 | |||
| 404 | AVERT(Globals, arenaGlobals); | ||
| 386 | 405 | ||
| 387 | STATISTIC_STAT(EVENT2(ArenaWriteFaults, arena, | 406 | STATISTIC_STAT(EVENT2(ArenaWriteFaults, arena, |
| 388 | arena->writeBarrierHitCount)); | 407 | arena->writeBarrierHitCount)); |
| @@ -390,6 +409,7 @@ void GlobalsFinish(Globals arenaGlobals) | |||
| 390 | arenaGlobals->sig = SigInvalid; | 409 | arenaGlobals->sig = SigInvalid; |
| 391 | 410 | ||
| 392 | RingFinish(&arena->formatRing); | 411 | RingFinish(&arena->formatRing); |
| 412 | RingFinish(&arena->chainRing); | ||
| 393 | RingFinish(&arena->messageRing); | 413 | RingFinish(&arena->messageRing); |
| 394 | RingFinish(&arena->threadRing); | 414 | RingFinish(&arena->threadRing); |
| 395 | for(rank = 0; rank < RankLIMIT; ++rank) | 415 | for(rank = 0; rank < RankLIMIT; ++rank) |
diff --git a/mps/code/libcbt.c b/mps/code/libcbt.c index 7c9897ec2e4..4c7bb3698b0 100644 --- a/mps/code/libcbt.c +++ b/mps/code/libcbt.c | |||
| @@ -12,6 +12,7 @@ | |||
| 12 | #include "mpslibcb.h" | 12 | #include "mpslibcb.h" |
| 13 | 13 | ||
| 14 | #include "testlib.h" | 14 | #include "testlib.h" |
| 15 | #include "mpslib.h" | ||
| 15 | 16 | ||
| 16 | #include <stdio.h> | 17 | #include <stdio.h> |
| 17 | #include <stdlib.h> | 18 | #include <stdlib.h> |
diff --git a/mps/code/locbwcss.c b/mps/code/locbwcss.c index 221d1cca856..a731bc47198 100644 --- a/mps/code/locbwcss.c +++ b/mps/code/locbwcss.c | |||
| @@ -8,6 +8,7 @@ | |||
| 8 | #include "mpslib.h" | 8 | #include "mpslib.h" |
| 9 | #include "mpsavm.h" | 9 | #include "mpsavm.h" |
| 10 | #include "testlib.h" | 10 | #include "testlib.h" |
| 11 | #include "mpslib.h" | ||
| 11 | #include "mps.h" | 12 | #include "mps.h" |
| 12 | 13 | ||
| 13 | #include <stdlib.h> | 14 | #include <stdlib.h> |
| @@ -193,6 +194,7 @@ int main(int argc, char *argv[]) | |||
| 193 | mps_arena_t arena; | 194 | mps_arena_t arena; |
| 194 | 195 | ||
| 195 | randomize(argc, argv); | 196 | randomize(argc, argv); |
| 197 | mps_lib_assert_fail_install(assert_die); | ||
| 196 | 198 | ||
| 197 | die(mps_arena_create(&arena, mps_arena_class_vmnz(), testArenaSIZE), | 199 | die(mps_arena_create(&arena, mps_arena_class_vmnz(), testArenaSIZE), |
| 198 | "mps_arena_create"); | 200 | "mps_arena_create"); |
diff --git a/mps/code/lockcov.c b/mps/code/lockcov.c index 45aeb1189a0..28c398e4bba 100644 --- a/mps/code/lockcov.c +++ b/mps/code/lockcov.c | |||
| @@ -6,6 +6,7 @@ | |||
| 6 | 6 | ||
| 7 | #include "mpm.h" | 7 | #include "mpm.h" |
| 8 | #include "testlib.h" | 8 | #include "testlib.h" |
| 9 | #include "mpslib.h" | ||
| 9 | #include <stdlib.h> /* for malloc & free */ | 10 | #include <stdlib.h> /* for malloc & free */ |
| 10 | 11 | ||
| 11 | 12 | ||
diff --git a/mps/code/lockutw3.c b/mps/code/lockutw3.c index 51a1206a37d..c66db7edd77 100644 --- a/mps/code/lockutw3.c +++ b/mps/code/lockutw3.c | |||
| @@ -6,6 +6,7 @@ | |||
| 6 | 6 | ||
| 7 | #include "mpm.h" | 7 | #include "mpm.h" |
| 8 | #include "testlib.h" | 8 | #include "testlib.h" |
| 9 | #include "mpslib.h" | ||
| 9 | 10 | ||
| 10 | #include "mpswin.h" | 11 | #include "mpswin.h" |
| 11 | 12 | ||
diff --git a/mps/code/locusss.c b/mps/code/locusss.c index 81053608fbf..c9a86fa37dc 100644 --- a/mps/code/locusss.c +++ b/mps/code/locusss.c | |||
| @@ -9,6 +9,7 @@ | |||
| 9 | #include "mpslib.h" | 9 | #include "mpslib.h" |
| 10 | #include "mpsavm.h" | 10 | #include "mpsavm.h" |
| 11 | #include "testlib.h" | 11 | #include "testlib.h" |
| 12 | #include "mpslib.h" | ||
| 12 | #include "mps.h" | 13 | #include "mps.h" |
| 13 | 14 | ||
| 14 | #include <stdlib.h> | 15 | #include <stdlib.h> |
| @@ -233,6 +234,7 @@ int main(int argc, char *argv[]) | |||
| 233 | { | 234 | { |
| 234 | 235 | ||
| 235 | randomize(argc, argv); | 236 | randomize(argc, argv); |
| 237 | mps_lib_assert_fail_install(assert_die); | ||
| 236 | 238 | ||
| 237 | printf("\nRunning test with no information about peak usage.\n"); | 239 | printf("\nRunning test with no information about peak usage.\n"); |
| 238 | runArenaTest(smallArenaSize, FALSE, FALSE); | 240 | runArenaTest(smallArenaSize, FALSE, FALSE); |
diff --git a/mps/code/locv.c b/mps/code/locv.c index 2e906093e3f..29881f6c54e 100644 --- a/mps/code/locv.c +++ b/mps/code/locv.c | |||
| @@ -8,6 +8,7 @@ | |||
| 8 | */ | 8 | */ |
| 9 | 9 | ||
| 10 | #include "testlib.h" | 10 | #include "testlib.h" |
| 11 | #include "mpslib.h" | ||
| 11 | #include "mps.h" | 12 | #include "mps.h" |
| 12 | #include "mpsclo.h" | 13 | #include "mpsclo.h" |
| 13 | #include "mpsavm.h" | 14 | #include "mpsavm.h" |
diff --git a/mps/code/messtest.c b/mps/code/messtest.c index de60f93fdec..6382a54233f 100644 --- a/mps/code/messtest.c +++ b/mps/code/messtest.c | |||
| @@ -8,6 +8,7 @@ | |||
| 8 | #include "mpsavm.h" | 8 | #include "mpsavm.h" |
| 9 | #include "mps.h" | 9 | #include "mps.h" |
| 10 | #include "testlib.h" | 10 | #include "testlib.h" |
| 11 | #include "mpslib.h" | ||
| 11 | 12 | ||
| 12 | #include <stdlib.h> | 13 | #include <stdlib.h> |
| 13 | #include <stdarg.h> | 14 | #include <stdarg.h> |
diff --git a/mps/code/mpmss.c b/mps/code/mpmss.c index 4cc85712946..83056fce707 100644 --- a/mps/code/mpmss.c +++ b/mps/code/mpmss.c | |||
| @@ -10,6 +10,7 @@ | |||
| 10 | #include "mpslib.h" | 10 | #include "mpslib.h" |
| 11 | #include "mpsavm.h" | 11 | #include "mpsavm.h" |
| 12 | #include "testlib.h" | 12 | #include "testlib.h" |
| 13 | #include "mpslib.h" | ||
| 13 | #include "mps.h" | 14 | #include "mps.h" |
| 14 | #include <stdlib.h> | 15 | #include <stdlib.h> |
| 15 | #include <stdarg.h> | 16 | #include <stdarg.h> |
| @@ -188,6 +189,7 @@ int main(int argc, char *argv[]) | |||
| 188 | bothOptions = MPS_PF_ALIGN == 8 ? &bothOptions8 : &bothOptions16; | 189 | bothOptions = MPS_PF_ALIGN == 8 ? &bothOptions8 : &bothOptions16; |
| 189 | 190 | ||
| 190 | randomize(argc, argv); | 191 | randomize(argc, argv); |
| 192 | mps_lib_assert_fail_install(assert_die); | ||
| 191 | 193 | ||
| 192 | die(mps_arena_create(&arena, mps_arena_class_vm(), testArenaSIZE), | 194 | die(mps_arena_create(&arena, mps_arena_class_vm(), testArenaSIZE), |
| 193 | "mps_arena_create"); | 195 | "mps_arena_create"); |
diff --git a/mps/code/mps.xcodeproj/project.pbxproj b/mps/code/mps.xcodeproj/project.pbxproj index e2a83d5cf5e..87349c5ff94 100644 --- a/mps/code/mps.xcodeproj/project.pbxproj +++ b/mps/code/mps.xcodeproj/project.pbxproj | |||
| @@ -36,12 +36,14 @@ | |||
| 36 | 3114A600156E940A001E0AA3 /* PBXTargetDependency */, | 36 | 3114A600156E940A001E0AA3 /* PBXTargetDependency */, |
| 37 | 3104AFFC156D37C3000A585A /* PBXTargetDependency */, | 37 | 3104AFFC156D37C3000A585A /* PBXTargetDependency */, |
| 38 | 31D60022156D3CF200337B26 /* PBXTargetDependency */, | 38 | 31D60022156D3CF200337B26 /* PBXTargetDependency */, |
| 39 | 2291A5C0175CAB5F001D4920 /* PBXTargetDependency */, | ||
| 39 | 3114A677156E961C001E0AA3 /* PBXTargetDependency */, | 40 | 3114A677156E961C001E0AA3 /* PBXTargetDependency */, |
| 40 | 3114A612156E943B001E0AA3 /* PBXTargetDependency */, | 41 | 3114A612156E943B001E0AA3 /* PBXTargetDependency */, |
| 41 | 3114A65B156E95B4001E0AA3 /* PBXTargetDependency */, | 42 | 3114A65B156E95B4001E0AA3 /* PBXTargetDependency */, |
| 43 | 2291A5E6175CB207001D4920 /* PBXTargetDependency */, | ||
| 44 | 2291A5E8175CB20E001D4920 /* PBXTargetDependency */, | ||
| 42 | 3114A5CC156E932C001E0AA3 /* PBXTargetDependency */, | 45 | 3114A5CC156E932C001E0AA3 /* PBXTargetDependency */, |
| 43 | 3114A5EA156E93C4001E0AA3 /* PBXTargetDependency */, | 46 | 3114A5EA156E93C4001E0AA3 /* PBXTargetDependency */, |
| 44 | 228A22211759004C00270ECF /* PBXTargetDependency */, | ||
| 45 | 31D60034156D3D5A00337B26 /* PBXTargetDependency */, | 47 | 31D60034156D3D5A00337B26 /* PBXTargetDependency */, |
| 46 | 3114A5A0156E915A001E0AA3 /* PBXTargetDependency */, | 48 | 3114A5A0156E915A001E0AA3 /* PBXTargetDependency */, |
| 47 | 3114A6A7156E9739001E0AA3 /* PBXTargetDependency */, | 49 | 3114A6A7156E9739001E0AA3 /* PBXTargetDependency */, |
| @@ -67,10 +69,25 @@ | |||
| 67 | /* End PBXAggregateTarget section */ | 69 | /* End PBXAggregateTarget section */ |
| 68 | 70 | ||
| 69 | /* Begin PBXBuildFile section */ | 71 | /* Begin PBXBuildFile section */ |
| 70 | 22ABDC4E1758FD0C00965593 /* testlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 31EEAC9E156AB73400714D05 /* testlib.c */; }; | 72 | 2291A5B1175CAB2F001D4920 /* fmtdy.c in Sources */ = {isa = PBXBuildFile; fileRef = 3124CAC6156BE48D00753214 /* fmtdy.c */; }; |
| 71 | 22ABDC501758FD0C00965593 /* libmps.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 31EEABFB156AAF9D00714D05 /* libmps.a */; }; | 73 | 2291A5B2175CAB2F001D4920 /* fmtdytst.c in Sources */ = {isa = PBXBuildFile; fileRef = 3124CAC7156BE48D00753214 /* fmtdytst.c */; }; |
| 72 | 22ABDC581758FD4F00965593 /* fbmtest.c in Sources */ = {isa = PBXBuildFile; fileRef = 22ABDC571758FD3D00965593 /* fbmtest.c */; }; | 74 | 2291A5B3175CAB2F001D4920 /* fmthe.c in Sources */ = {isa = PBXBuildFile; fileRef = 3124CAE4156BE6D500753214 /* fmthe.c */; }; |
| 73 | 22ABDC5A1758FDD500965593 /* freelist.c in Sources */ = {isa = PBXBuildFile; fileRef = 22ABDC591758FDCD00965593 /* freelist.c */; }; | 75 | 2291A5B4175CAB2F001D4920 /* fmtno.c in Sources */ = {isa = PBXBuildFile; fileRef = 3124CACC156BE4C200753214 /* fmtno.c */; }; |
| 76 | 2291A5B5175CAB2F001D4920 /* testlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 31EEAC9E156AB73400714D05 /* testlib.c */; }; | ||
| 77 | 2291A5B7175CAB2F001D4920 /* libmps.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 31EEABFB156AAF9D00714D05 /* libmps.a */; }; | ||
| 78 | 2291A5BE175CAB4E001D4920 /* awlutth.c in Sources */ = {isa = PBXBuildFile; fileRef = 2291A5A9175CAA9B001D4920 /* awlutth.c */; }; | ||
| 79 | 2291A5C5175CAFCA001D4920 /* fmtdy.c in Sources */ = {isa = PBXBuildFile; fileRef = 3124CAC6156BE48D00753214 /* fmtdy.c */; }; | ||
| 80 | 2291A5C6175CAFCA001D4920 /* fmtdytst.c in Sources */ = {isa = PBXBuildFile; fileRef = 3124CAC7156BE48D00753214 /* fmtdytst.c */; }; | ||
| 81 | 2291A5C7175CAFCA001D4920 /* fmtno.c in Sources */ = {isa = PBXBuildFile; fileRef = 3124CACC156BE4C200753214 /* fmtno.c */; }; | ||
| 82 | 2291A5C8175CAFCA001D4920 /* testlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 31EEAC9E156AB73400714D05 /* testlib.c */; }; | ||
| 83 | 2291A5CB175CAFCA001D4920 /* libmps.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 31EEABFB156AAF9D00714D05 /* libmps.a */; }; | ||
| 84 | 2291A5D2175CAFF8001D4920 /* expt825.c in Sources */ = {isa = PBXBuildFile; fileRef = 2291A5AB175CAA9B001D4920 /* expt825.c */; }; | ||
| 85 | 2291A5D8175CB05F001D4920 /* fmtdy.c in Sources */ = {isa = PBXBuildFile; fileRef = 3124CAC6156BE48D00753214 /* fmtdy.c */; }; | ||
| 86 | 2291A5D9175CB05F001D4920 /* fmtdytst.c in Sources */ = {isa = PBXBuildFile; fileRef = 3124CAC7156BE48D00753214 /* fmtdytst.c */; }; | ||
| 87 | 2291A5DA175CB05F001D4920 /* fmtno.c in Sources */ = {isa = PBXBuildFile; fileRef = 3124CACC156BE4C200753214 /* fmtno.c */; }; | ||
| 88 | 2291A5DB175CB05F001D4920 /* testlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 31EEAC9E156AB73400714D05 /* testlib.c */; }; | ||
| 89 | 2291A5DD175CB05F001D4920 /* libmps.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 31EEABFB156AAF9D00714D05 /* libmps.a */; }; | ||
| 90 | 2291A5E4175CB076001D4920 /* exposet0.c in Sources */ = {isa = PBXBuildFile; fileRef = 2291A5AA175CAA9B001D4920 /* exposet0.c */; }; | ||
| 74 | 22FA176916E8D6FC0098B23F /* fmtdy.c in Sources */ = {isa = PBXBuildFile; fileRef = 3124CAC6156BE48D00753214 /* fmtdy.c */; }; | 91 | 22FA176916E8D6FC0098B23F /* fmtdy.c in Sources */ = {isa = PBXBuildFile; fileRef = 3124CAC6156BE48D00753214 /* fmtdy.c */; }; |
| 75 | 22FA176A16E8D6FC0098B23F /* fmtdytst.c in Sources */ = {isa = PBXBuildFile; fileRef = 3124CAC7156BE48D00753214 /* fmtdytst.c */; }; | 92 | 22FA176A16E8D6FC0098B23F /* fmtdytst.c in Sources */ = {isa = PBXBuildFile; fileRef = 3124CAC7156BE48D00753214 /* fmtdytst.c */; }; |
| 76 | 22FA176B16E8D6FC0098B23F /* fmthe.c in Sources */ = {isa = PBXBuildFile; fileRef = 3124CAE4156BE6D500753214 /* fmthe.c */; }; | 93 | 22FA176B16E8D6FC0098B23F /* fmthe.c in Sources */ = {isa = PBXBuildFile; fileRef = 3124CAE4156BE6D500753214 /* fmthe.c */; }; |
| @@ -142,6 +159,8 @@ | |||
| 142 | 3114A63E156E94EA001E0AA3 /* abqtest.c in Sources */ = {isa = PBXBuildFile; fileRef = 3114A63D156E94EA001E0AA3 /* abqtest.c */; }; | 159 | 3114A63E156E94EA001E0AA3 /* abqtest.c in Sources */ = {isa = PBXBuildFile; fileRef = 3114A63D156E94EA001E0AA3 /* abqtest.c */; }; |
| 143 | 3114A63F156E94F0001E0AA3 /* testlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 31EEAC9E156AB73400714D05 /* testlib.c */; }; | 160 | 3114A63F156E94F0001E0AA3 /* testlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 31EEAC9E156AB73400714D05 /* testlib.c */; }; |
| 144 | 3114A640156E94F0001E0AA3 /* libmps.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 31EEABFB156AAF9D00714D05 /* libmps.a */; }; | 161 | 3114A640156E94F0001E0AA3 /* libmps.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 31EEABFB156AAF9D00714D05 /* libmps.a */; }; |
| 162 | 3114A646156E9525001E0AA3 /* abq.c in Sources */ = {isa = PBXBuildFile; fileRef = 3114A645156E9525001E0AA3 /* abq.c */; }; | ||
| 163 | 3114A657156E95A6001E0AA3 /* cbstest.c in Sources */ = {isa = PBXBuildFile; fileRef = 3114A656156E95A6001E0AA3 /* cbstest.c */; }; | ||
| 145 | 3114A66E156E95F2001E0AA3 /* btcv.c in Sources */ = {isa = PBXBuildFile; fileRef = 3114A66C156E95EB001E0AA3 /* btcv.c */; }; | 164 | 3114A66E156E95F2001E0AA3 /* btcv.c in Sources */ = {isa = PBXBuildFile; fileRef = 3114A66C156E95EB001E0AA3 /* btcv.c */; }; |
| 146 | 3114A66F156E95F2001E0AA3 /* testlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 31EEAC9E156AB73400714D05 /* testlib.c */; }; | 165 | 3114A66F156E95F2001E0AA3 /* testlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 31EEAC9E156AB73400714D05 /* testlib.c */; }; |
| 147 | 3114A670156E95F2001E0AA3 /* libmps.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 31EEABFB156AAF9D00714D05 /* libmps.a */; }; | 166 | 3114A670156E95F2001E0AA3 /* libmps.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 31EEABFB156AAF9D00714D05 /* libmps.a */; }; |
| @@ -149,6 +168,8 @@ | |||
| 149 | 3114A673156E95F6001E0AA3 /* libmps.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 31EEABFB156AAF9D00714D05 /* libmps.a */; }; | 168 | 3114A673156E95F6001E0AA3 /* libmps.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 31EEABFB156AAF9D00714D05 /* libmps.a */; }; |
| 150 | 3114A687156E9674001E0AA3 /* mv2test.c in Sources */ = {isa = PBXBuildFile; fileRef = 3114A686156E9674001E0AA3 /* mv2test.c */; }; | 169 | 3114A687156E9674001E0AA3 /* mv2test.c in Sources */ = {isa = PBXBuildFile; fileRef = 3114A686156E9674001E0AA3 /* mv2test.c */; }; |
| 151 | 3114A688156E967C001E0AA3 /* testlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 31EEAC9E156AB73400714D05 /* testlib.c */; }; | 170 | 3114A688156E967C001E0AA3 /* testlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 31EEAC9E156AB73400714D05 /* testlib.c */; }; |
| 171 | 3114A68F156E96B6001E0AA3 /* poolmv2.c in Sources */ = {isa = PBXBuildFile; fileRef = 3114A68E156E96B6001E0AA3 /* poolmv2.c */; }; | ||
| 172 | 3114A690156E96CE001E0AA3 /* abq.c in Sources */ = {isa = PBXBuildFile; fileRef = 3114A645156E9525001E0AA3 /* abq.c */; }; | ||
| 152 | 3114A6A1156E9729001E0AA3 /* messtest.c in Sources */ = {isa = PBXBuildFile; fileRef = 3114A69F156E9725001E0AA3 /* messtest.c */; }; | 173 | 3114A6A1156E9729001E0AA3 /* messtest.c in Sources */ = {isa = PBXBuildFile; fileRef = 3114A69F156E9725001E0AA3 /* messtest.c */; }; |
| 153 | 3114A6A2156E972D001E0AA3 /* testlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 31EEAC9E156AB73400714D05 /* testlib.c */; }; | 174 | 3114A6A2156E972D001E0AA3 /* testlib.c in Sources */ = {isa = PBXBuildFile; fileRef = 31EEAC9E156AB73400714D05 /* testlib.c */; }; |
| 154 | 3114A6A3156E972D001E0AA3 /* libmps.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 31EEABFB156AAF9D00714D05 /* libmps.a */; }; | 175 | 3114A6A3156E972D001E0AA3 /* libmps.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 31EEABFB156AAF9D00714D05 /* libmps.a */; }; |
| @@ -231,20 +252,48 @@ | |||
| 231 | remoteGlobalIDString = 2D604B9B16514B1A003AAF46; | 252 | remoteGlobalIDString = 2D604B9B16514B1A003AAF46; |
| 232 | remoteInfo = mpseventtxt; | 253 | remoteInfo = mpseventtxt; |
| 233 | }; | 254 | }; |
| 234 | 228A22201759004C00270ECF /* PBXContainerItemProxy */ = { | 255 | 2291A5AE175CAB2F001D4920 /* PBXContainerItemProxy */ = { |
| 235 | isa = PBXContainerItemProxy; | 256 | isa = PBXContainerItemProxy; |
| 236 | containerPortal = 31EEABDA156AAE9E00714D05 /* Project object */; | 257 | containerPortal = 31EEABDA156AAE9E00714D05 /* Project object */; |
| 237 | proxyType = 1; | 258 | proxyType = 1; |
| 238 | remoteGlobalIDString = 22ABDC491758FD0C00965593; | 259 | remoteGlobalIDString = 31EEABFA156AAF9D00714D05; |
| 239 | remoteInfo = fbmtest; | 260 | remoteInfo = mps; |
| 261 | }; | ||
| 262 | 2291A5BF175CAB5F001D4920 /* PBXContainerItemProxy */ = { | ||
| 263 | isa = PBXContainerItemProxy; | ||
| 264 | containerPortal = 31EEABDA156AAE9E00714D05 /* Project object */; | ||
| 265 | proxyType = 1; | ||
| 266 | remoteGlobalIDString = 2291A5AC175CAB2F001D4920; | ||
| 267 | remoteInfo = awlutth; | ||
| 268 | }; | ||
| 269 | 2291A5C3175CAFCA001D4920 /* PBXContainerItemProxy */ = { | ||
| 270 | isa = PBXContainerItemProxy; | ||
| 271 | containerPortal = 31EEABDA156AAE9E00714D05 /* Project object */; | ||
| 272 | proxyType = 1; | ||
| 273 | remoteGlobalIDString = 31EEABFA156AAF9D00714D05; | ||
| 274 | remoteInfo = mps; | ||
| 240 | }; | 275 | }; |
| 241 | 22ABDC4B1758FD0C00965593 /* PBXContainerItemProxy */ = { | 276 | 2291A5D5175CB05F001D4920 /* PBXContainerItemProxy */ = { |
| 242 | isa = PBXContainerItemProxy; | 277 | isa = PBXContainerItemProxy; |
| 243 | containerPortal = 31EEABDA156AAE9E00714D05 /* Project object */; | 278 | containerPortal = 31EEABDA156AAE9E00714D05 /* Project object */; |
| 244 | proxyType = 1; | 279 | proxyType = 1; |
| 245 | remoteGlobalIDString = 31EEABFA156AAF9D00714D05; | 280 | remoteGlobalIDString = 31EEABFA156AAF9D00714D05; |
| 246 | remoteInfo = mps; | 281 | remoteInfo = mps; |
| 247 | }; | 282 | }; |
| 283 | 2291A5E5175CB207001D4920 /* PBXContainerItemProxy */ = { | ||
| 284 | isa = PBXContainerItemProxy; | ||
| 285 | containerPortal = 31EEABDA156AAE9E00714D05 /* Project object */; | ||
| 286 | proxyType = 1; | ||
| 287 | remoteGlobalIDString = 2291A5D3175CB05F001D4920; | ||
| 288 | remoteInfo = exposet0; | ||
| 289 | }; | ||
| 290 | 2291A5E7175CB20E001D4920 /* PBXContainerItemProxy */ = { | ||
| 291 | isa = PBXContainerItemProxy; | ||
| 292 | containerPortal = 31EEABDA156AAE9E00714D05 /* Project object */; | ||
| 293 | proxyType = 1; | ||
| 294 | remoteGlobalIDString = 2291A5C1175CAFCA001D4920; | ||
| 295 | remoteInfo = expt825; | ||
| 296 | }; | ||
| 248 | 22CDE92D16E9EB9300366D0A /* PBXContainerItemProxy */ = { | 297 | 22CDE92D16E9EB9300366D0A /* PBXContainerItemProxy */ = { |
| 249 | isa = PBXContainerItemProxy; | 298 | isa = PBXContainerItemProxy; |
| 250 | containerPortal = 31EEABDA156AAE9E00714D05 /* Project object */; | 299 | containerPortal = 31EEABDA156AAE9E00714D05 /* Project object */; |
| @@ -511,6 +560,13 @@ | |||
| 511 | remoteGlobalIDString = 31EEABFA156AAF9D00714D05; | 560 | remoteGlobalIDString = 31EEABFA156AAF9D00714D05; |
| 512 | remoteInfo = mps; | 561 | remoteInfo = mps; |
| 513 | }; | 562 | }; |
| 563 | 3114A65A156E95B4001E0AA3 /* PBXContainerItemProxy */ = { | ||
| 564 | isa = PBXContainerItemProxy; | ||
| 565 | containerPortal = 31EEABDA156AAE9E00714D05 /* Project object */; | ||
| 566 | proxyType = 1; | ||
| 567 | remoteGlobalIDString = 3114A64B156E9596001E0AA3; | ||
| 568 | remoteInfo = cbstest; | ||
| 569 | }; | ||
| 514 | 3114A674156E9619001E0AA3 /* PBXContainerItemProxy */ = { | 570 | 3114A674156E9619001E0AA3 /* PBXContainerItemProxy */ = { |
| 515 | isa = PBXContainerItemProxy; | 571 | isa = PBXContainerItemProxy; |
| 516 | containerPortal = 31EEABDA156AAE9E00714D05 /* Project object */; | 572 | containerPortal = 31EEABDA156AAE9E00714D05 /* Project object */; |
| @@ -696,7 +752,25 @@ | |||
| 696 | /* End PBXContainerItemProxy section */ | 752 | /* End PBXContainerItemProxy section */ |
| 697 | 753 | ||
| 698 | /* Begin PBXCopyFilesBuildPhase section */ | 754 | /* Begin PBXCopyFilesBuildPhase section */ |
| 699 | 22ABDC511758FD0C00965593 /* CopyFiles */ = { | 755 | 2291A5B8175CAB2F001D4920 /* CopyFiles */ = { |
| 756 | isa = PBXCopyFilesBuildPhase; | ||
| 757 | buildActionMask = 2147483647; | ||
| 758 | dstPath = /usr/share/man/man1/; | ||
| 759 | dstSubfolderSpec = 0; | ||
| 760 | files = ( | ||
| 761 | ); | ||
| 762 | runOnlyForDeploymentPostprocessing = 1; | ||
| 763 | }; | ||
| 764 | 2291A5CC175CAFCA001D4920 /* CopyFiles */ = { | ||
| 765 | isa = PBXCopyFilesBuildPhase; | ||
| 766 | buildActionMask = 2147483647; | ||
| 767 | dstPath = /usr/share/man/man1/; | ||
| 768 | dstSubfolderSpec = 0; | ||
| 769 | files = ( | ||
| 770 | ); | ||
| 771 | runOnlyForDeploymentPostprocessing = 1; | ||
| 772 | }; | ||
| 773 | 2291A5DE175CB05F001D4920 /* CopyFiles */ = { | ||
| 700 | isa = PBXCopyFilesBuildPhase; | 774 | isa = PBXCopyFilesBuildPhase; |
| 701 | buildActionMask = 2147483647; | 775 | buildActionMask = 2147483647; |
| 702 | dstPath = /usr/share/man/man1/; | 776 | dstPath = /usr/share/man/man1/; |
| @@ -1005,11 +1079,13 @@ | |||
| 1005 | /* End PBXCopyFilesBuildPhase section */ | 1079 | /* End PBXCopyFilesBuildPhase section */ |
| 1006 | 1080 | ||
| 1007 | /* Begin PBXFileReference section */ | 1081 | /* Begin PBXFileReference section */ |
| 1008 | 2219DEFF174BE51900F112E9 /* mpscmvt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mpscmvt.h; sourceTree = "<group>"; }; | 1082 | 2291A5A8175CAA51001D4920 /* poolmv2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = poolmv2.h; sourceTree = "<group>"; }; |
| 1009 | 226FDF2D174AC32C008E5B4F /* range.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = range.c; sourceTree = "<group>"; }; | 1083 | 2291A5A9175CAA9B001D4920 /* awlutth.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = awlutth.c; sourceTree = "<group>"; }; |
| 1010 | 22ABDC561758FD0C00965593 /* fbmtest */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = fbmtest; sourceTree = BUILT_PRODUCTS_DIR; }; | 1084 | 2291A5AA175CAA9B001D4920 /* exposet0.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = exposet0.c; sourceTree = "<group>"; }; |
| 1011 | 22ABDC571758FD3D00965593 /* fbmtest.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = fbmtest.c; sourceTree = "<group>"; }; | 1085 | 2291A5AB175CAA9B001D4920 /* expt825.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = expt825.c; sourceTree = "<group>"; }; |
| 1012 | 22ABDC591758FDCD00965593 /* freelist.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = freelist.c; sourceTree = "<group>"; }; | 1086 | 2291A5BD175CAB2F001D4920 /* awlutth */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = awlutth; sourceTree = BUILT_PRODUCTS_DIR; }; |
| 1087 | 2291A5D1175CAFCA001D4920 /* expt825 */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = expt825; sourceTree = BUILT_PRODUCTS_DIR; }; | ||
| 1088 | 2291A5E3175CB05F001D4920 /* exposet0 */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = exposet0; sourceTree = BUILT_PRODUCTS_DIR; }; | ||
| 1013 | 22FA177516E8D6FC0098B23F /* amcssth */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = amcssth; sourceTree = BUILT_PRODUCTS_DIR; }; | 1089 | 22FA177516E8D6FC0098B23F /* amcssth */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = amcssth; sourceTree = BUILT_PRODUCTS_DIR; }; |
| 1014 | 22FA177616E8D7A80098B23F /* amcssth.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = amcssth.c; sourceTree = "<group>"; }; | 1090 | 22FA177616E8D7A80098B23F /* amcssth.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = amcssth.c; sourceTree = "<group>"; }; |
| 1015 | 2D07B96C1636FC7200DB751B /* eventsql.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = eventsql.c; sourceTree = "<group>"; }; | 1091 | 2D07B96C1636FC7200DB751B /* eventsql.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = eventsql.c; sourceTree = "<group>"; }; |
| @@ -1047,6 +1123,8 @@ | |||
| 1047 | 3114A633156E94DB001E0AA3 /* abqtest */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = abqtest; sourceTree = BUILT_PRODUCTS_DIR; }; | 1123 | 3114A633156E94DB001E0AA3 /* abqtest */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = abqtest; sourceTree = BUILT_PRODUCTS_DIR; }; |
| 1048 | 3114A63D156E94EA001E0AA3 /* abqtest.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abqtest.c; sourceTree = "<group>"; }; | 1124 | 3114A63D156E94EA001E0AA3 /* abqtest.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abqtest.c; sourceTree = "<group>"; }; |
| 1049 | 3114A645156E9525001E0AA3 /* abq.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abq.c; sourceTree = "<group>"; }; | 1125 | 3114A645156E9525001E0AA3 /* abq.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = abq.c; sourceTree = "<group>"; }; |
| 1126 | 3114A64C156E9596001E0AA3 /* cbstest */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = cbstest; sourceTree = BUILT_PRODUCTS_DIR; }; | ||
| 1127 | 3114A656156E95A6001E0AA3 /* cbstest.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cbstest.c; sourceTree = "<group>"; }; | ||
| 1050 | 3114A662156E95D9001E0AA3 /* btcv */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = btcv; sourceTree = BUILT_PRODUCTS_DIR; }; | 1128 | 3114A662156E95D9001E0AA3 /* btcv */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = btcv; sourceTree = BUILT_PRODUCTS_DIR; }; |
| 1051 | 3114A66C156E95EB001E0AA3 /* btcv.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = btcv.c; sourceTree = "<group>"; }; | 1129 | 3114A66C156E95EB001E0AA3 /* btcv.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = btcv.c; sourceTree = "<group>"; }; |
| 1052 | 3114A67C156E9668001E0AA3 /* mv2test */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = mv2test; sourceTree = BUILT_PRODUCTS_DIR; }; | 1130 | 3114A67C156E9668001E0AA3 /* mv2test */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = mv2test; sourceTree = BUILT_PRODUCTS_DIR; }; |
| @@ -1122,7 +1200,7 @@ | |||
| 1122 | 31CD33BB173A9F1500524741 /* mpscams.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = mpscams.h; sourceTree = "<group>"; }; | 1200 | 31CD33BB173A9F1500524741 /* mpscams.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = mpscams.h; sourceTree = "<group>"; }; |
| 1123 | 31CD33BC173A9F1500524741 /* poolams.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = poolams.c; sourceTree = "<group>"; }; | 1201 | 31CD33BC173A9F1500524741 /* poolams.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = poolams.c; sourceTree = "<group>"; }; |
| 1124 | 31CD33BD173A9F1500524741 /* poolams.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = poolams.h; sourceTree = "<group>"; }; | 1202 | 31CD33BD173A9F1500524741 /* poolams.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = poolams.h; sourceTree = "<group>"; }; |
| 1125 | 31CD33BE173ABB3000524741 /* poolmv2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = poolmv2.h; sourceTree = "<group>"; }; | 1203 | 31D4D5FD1745058100BE84B5 /* poolmv2.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = poolmv2.c; sourceTree = "<group>"; }; |
| 1126 | 31D60006156D3C5F00337B26 /* segsmss.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = segsmss.c; sourceTree = "<group>"; }; | 1204 | 31D60006156D3C5F00337B26 /* segsmss.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = segsmss.c; sourceTree = "<group>"; }; |
| 1127 | 31D6000D156D3CB200337B26 /* awluthe */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = awluthe; sourceTree = BUILT_PRODUCTS_DIR; }; | 1205 | 31D6000D156D3CB200337B26 /* awluthe */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = awluthe; sourceTree = BUILT_PRODUCTS_DIR; }; |
| 1128 | 31D60017156D3CC300337B26 /* awluthe.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = awluthe.c; sourceTree = "<group>"; }; | 1206 | 31D60017156D3CC300337B26 /* awluthe.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = awluthe.c; sourceTree = "<group>"; }; |
| @@ -1198,11 +1276,27 @@ | |||
| 1198 | /* End PBXFileReference section */ | 1276 | /* End PBXFileReference section */ |
| 1199 | 1277 | ||
| 1200 | /* Begin PBXFrameworksBuildPhase section */ | 1278 | /* Begin PBXFrameworksBuildPhase section */ |
| 1201 | 22ABDC4F1758FD0C00965593 /* Frameworks */ = { | 1279 | 2291A5B6175CAB2F001D4920 /* Frameworks */ = { |
| 1280 | isa = PBXFrameworksBuildPhase; | ||
| 1281 | buildActionMask = 2147483647; | ||
| 1282 | files = ( | ||
| 1283 | 2291A5B7175CAB2F001D4920 /* libmps.a in Frameworks */, | ||
| 1284 | ); | ||
| 1285 | runOnlyForDeploymentPostprocessing = 0; | ||
| 1286 | }; | ||
| 1287 | 2291A5CA175CAFCA001D4920 /* Frameworks */ = { | ||
| 1202 | isa = PBXFrameworksBuildPhase; | 1288 | isa = PBXFrameworksBuildPhase; |
| 1203 | buildActionMask = 2147483647; | 1289 | buildActionMask = 2147483647; |
| 1204 | files = ( | 1290 | files = ( |
| 1205 | 22ABDC501758FD0C00965593 /* libmps.a in Frameworks */, | 1291 | 2291A5CB175CAFCA001D4920 /* libmps.a in Frameworks */, |
| 1292 | ); | ||
| 1293 | runOnlyForDeploymentPostprocessing = 0; | ||
| 1294 | }; | ||
| 1295 | 2291A5DC175CB05F001D4920 /* Frameworks */ = { | ||
| 1296 | isa = PBXFrameworksBuildPhase; | ||
| 1297 | buildActionMask = 2147483647; | ||
| 1298 | files = ( | ||
| 1299 | 2291A5DD175CB05F001D4920 /* libmps.a in Frameworks */, | ||
| 1206 | ); | 1300 | ); |
| 1207 | runOnlyForDeploymentPostprocessing = 0; | 1301 | runOnlyForDeploymentPostprocessing = 0; |
| 1208 | }; | 1302 | }; |
| @@ -1496,6 +1590,15 @@ | |||
| 1496 | name = mpseventtxt; | 1590 | name = mpseventtxt; |
| 1497 | sourceTree = "<group>"; | 1591 | sourceTree = "<group>"; |
| 1498 | }; | 1592 | }; |
| 1593 | 3114A647156E956C001E0AA3 /* Mysterious */ = { | ||
| 1594 | isa = PBXGroup; | ||
| 1595 | children = ( | ||
| 1596 | 3114A68E156E96B6001E0AA3 /* poolmv2.c */, | ||
| 1597 | 3114A645156E9525001E0AA3 /* abq.c */, | ||
| 1598 | ); | ||
| 1599 | name = Mysterious; | ||
| 1600 | sourceTree = "<group>"; | ||
| 1601 | }; | ||
| 1499 | 3114A6D6156E9846001E0AA3 /* Tools */ = { | 1602 | 3114A6D6156E9846001E0AA3 /* Tools */ = { |
| 1500 | isa = PBXGroup; | 1603 | isa = PBXGroup; |
| 1501 | children = ( | 1604 | children = ( |
| @@ -1528,11 +1631,14 @@ | |||
| 1528 | 3114A5FB156E93FC001E0AA3 /* arenacv.c */, | 1631 | 3114A5FB156E93FC001E0AA3 /* arenacv.c */, |
| 1529 | 3124CAC2156BE40100753214 /* awlut.c */, | 1632 | 3124CAC2156BE40100753214 /* awlut.c */, |
| 1530 | 31D60017156D3CC300337B26 /* awluthe.c */, | 1633 | 31D60017156D3CC300337B26 /* awluthe.c */, |
| 1634 | 2291A5A9175CAA9B001D4920 /* awlutth.c */, | ||
| 1531 | 3114A66C156E95EB001E0AA3 /* btcv.c */, | 1635 | 3114A66C156E95EB001E0AA3 /* btcv.c */, |
| 1532 | 3114A613156E944A001E0AA3 /* bttest.c */, | 1636 | 3114A613156E944A001E0AA3 /* bttest.c */, |
| 1637 | 3114A656156E95A6001E0AA3 /* cbstest.c */, | ||
| 1638 | 2291A5AA175CAA9B001D4920 /* exposet0.c */, | ||
| 1639 | 2291A5AB175CAA9B001D4920 /* expt825.c */, | ||
| 1533 | 3114A5CD156E9369001E0AA3 /* finalcv.c */, | 1640 | 3114A5CD156E9369001E0AA3 /* finalcv.c */, |
| 1534 | 3114A5E5156E93B9001E0AA3 /* finaltest.c */, | 1641 | 3114A5E5156E93B9001E0AA3 /* finaltest.c */, |
| 1535 | 22ABDC571758FD3D00965593 /* fbmtest.c */, | ||
| 1536 | 3124CAC6156BE48D00753214 /* fmtdy.c */, | 1642 | 3124CAC6156BE48D00753214 /* fmtdy.c */, |
| 1537 | 3124CAC7156BE48D00753214 /* fmtdytst.c */, | 1643 | 3124CAC7156BE48D00753214 /* fmtdytst.c */, |
| 1538 | 3124CAE4156BE6D500753214 /* fmthe.c */, | 1644 | 3124CAE4156BE6D500753214 /* fmthe.c */, |
| @@ -1590,6 +1696,7 @@ | |||
| 1590 | children = ( | 1696 | children = ( |
| 1591 | 2D07B97B163705E400DB751B /* libsqlite3.dylib */, | 1697 | 2D07B97B163705E400DB751B /* libsqlite3.dylib */, |
| 1592 | 3114A6D6156E9846001E0AA3 /* Tools */, | 1698 | 3114A6D6156E9846001E0AA3 /* Tools */, |
| 1699 | 3114A647156E956C001E0AA3 /* Mysterious */, | ||
| 1593 | 31A47BA8156C1E930039B1C2 /* MPS */, | 1700 | 31A47BA8156C1E930039B1C2 /* MPS */, |
| 1594 | 3124CAB3156BE1B700753214 /* Tests */, | 1701 | 3124CAB3156BE1B700753214 /* Tests */, |
| 1595 | 31EEABEF156AAF5C00714D05 /* Products */, | 1702 | 31EEABEF156AAF5C00714D05 /* Products */, |
| @@ -1624,6 +1731,7 @@ | |||
| 1624 | 3114A605156E9430001E0AA3 /* bttest */, | 1731 | 3114A605156E9430001E0AA3 /* bttest */, |
| 1625 | 3114A61C156E9485001E0AA3 /* teletest */, | 1732 | 3114A61C156E9485001E0AA3 /* teletest */, |
| 1626 | 3114A633156E94DB001E0AA3 /* abqtest */, | 1733 | 3114A633156E94DB001E0AA3 /* abqtest */, |
| 1734 | 3114A64C156E9596001E0AA3 /* cbstest */, | ||
| 1627 | 3114A662156E95D9001E0AA3 /* btcv */, | 1735 | 3114A662156E95D9001E0AA3 /* btcv */, |
| 1628 | 3114A67C156E9668001E0AA3 /* mv2test */, | 1736 | 3114A67C156E9668001E0AA3 /* mv2test */, |
| 1629 | 3114A695156E971B001E0AA3 /* messtest */, | 1737 | 3114A695156E971B001E0AA3 /* messtest */, |
| @@ -1632,7 +1740,9 @@ | |||
| 1632 | 2D07B9711636FC9900DB751B /* mpseventsql */, | 1740 | 2D07B9711636FC9900DB751B /* mpseventsql */, |
| 1633 | 2D604B9C16514B1A003AAF46 /* mpseventtxt */, | 1741 | 2D604B9C16514B1A003AAF46 /* mpseventtxt */, |
| 1634 | 22FA177516E8D6FC0098B23F /* amcssth */, | 1742 | 22FA177516E8D6FC0098B23F /* amcssth */, |
| 1635 | 22ABDC561758FD0C00965593 /* fbmtest */, | 1743 | 2291A5BD175CAB2F001D4920 /* awlutth */, |
| 1744 | 2291A5D1175CAFCA001D4920 /* expt825 */, | ||
| 1745 | 2291A5E3175CB05F001D4920 /* exposet0 */, | ||
| 1636 | ); | 1746 | ); |
| 1637 | name = Products; | 1747 | name = Products; |
| 1638 | sourceTree = "<group>"; | 1748 | sourceTree = "<group>"; |
| @@ -1640,7 +1750,6 @@ | |||
| 1640 | 31EEABF4156AAF6500714D05 /* MPM Core */ = { | 1750 | 31EEABF4156AAF6500714D05 /* MPM Core */ = { |
| 1641 | isa = PBXGroup; | 1751 | isa = PBXGroup; |
| 1642 | children = ( | 1752 | children = ( |
| 1643 | 3114A645156E9525001E0AA3 /* abq.c */, | ||
| 1644 | 31EEAC05156AB27B00714D05 /* arena.c */, | 1753 | 31EEAC05156AB27B00714D05 /* arena.c */, |
| 1645 | 31EEAC06156AB27B00714D05 /* arenacl.c */, | 1754 | 31EEAC06156AB27B00714D05 /* arenacl.c */, |
| 1646 | 31EEAC03156AB23A00714D05 /* arenavm.c */, | 1755 | 31EEAC03156AB23A00714D05 /* arenavm.c */, |
| @@ -1668,7 +1777,6 @@ | |||
| 1668 | 311F2F5B17398AE900C15B6A /* eventpro.h */, | 1777 | 311F2F5B17398AE900C15B6A /* eventpro.h */, |
| 1669 | 311F2F5C17398AE900C15B6A /* eventrep.h */, | 1778 | 311F2F5C17398AE900C15B6A /* eventrep.h */, |
| 1670 | 31EEAC1A156AB2B200714D05 /* format.c */, | 1779 | 31EEAC1A156AB2B200714D05 /* format.c */, |
| 1671 | 22ABDC591758FDCD00965593 /* freelist.c */, | ||
| 1672 | 31EEAC07156AB27B00714D05 /* global.c */, | 1780 | 31EEAC07156AB27B00714D05 /* global.c */, |
| 1673 | 31EEAC2B156AB2F200714D05 /* ld.c */, | 1781 | 31EEAC2B156AB2F200714D05 /* ld.c */, |
| 1674 | 311F2F5E17398B0E00C15B6A /* lock.h */, | 1782 | 311F2F5E17398B0E00C15B6A /* lock.h */, |
| @@ -1696,6 +1804,7 @@ | |||
| 1696 | 31EEAC0A156AB27B00714D05 /* poolabs.c */, | 1804 | 31EEAC0A156AB27B00714D05 /* poolabs.c */, |
| 1697 | 31EEAC2D156AB2F200714D05 /* poolmfs.c */, | 1805 | 31EEAC2D156AB2F200714D05 /* poolmfs.c */, |
| 1698 | 31EEAC2E156AB2F200714D05 /* poolmrg.c */, | 1806 | 31EEAC2E156AB2F200714D05 /* poolmrg.c */, |
| 1807 | 31EEAC2F156AB2F200714D05 /* poolmv.c */, | ||
| 1699 | 311F2F7B17398E7600C15B6A /* poolmv.h */, | 1808 | 311F2F7B17398E7600C15B6A /* poolmv.h */, |
| 1700 | 311F2F6D17398B6300C15B6A /* prmci3.h */, | 1809 | 311F2F6D17398B6300C15B6A /* prmci3.h */, |
| 1701 | 311F2F6E17398B6300C15B6A /* prmci6.h */, | 1810 | 311F2F6E17398B6300C15B6A /* prmci6.h */, |
| @@ -1704,7 +1813,6 @@ | |||
| 1704 | 31EEAC0B156AB27B00714D05 /* protocol.c */, | 1813 | 31EEAC0B156AB27B00714D05 /* protocol.c */, |
| 1705 | 311F2F7117398B7100C15B6A /* protocol.h */, | 1814 | 311F2F7117398B7100C15B6A /* protocol.h */, |
| 1706 | 311F2F7217398B7100C15B6A /* pthrdext.h */, | 1815 | 311F2F7217398B7100C15B6A /* pthrdext.h */, |
| 1707 | 226FDF2D174AC32C008E5B4F /* range.c */, | ||
| 1708 | 31EEAC1B156AB2B200714D05 /* ref.c */, | 1816 | 31EEAC1B156AB2B200714D05 /* ref.c */, |
| 1709 | 31EEAC0C156AB27B00714D05 /* reserv.c */, | 1817 | 31EEAC0C156AB27B00714D05 /* reserv.c */, |
| 1710 | 31EEAC30156AB2F200714D05 /* ring.c */, | 1818 | 31EEAC30156AB2F200714D05 /* ring.c */, |
| @@ -1755,16 +1863,14 @@ | |||
| 1755 | 31F6CCAA1739B0CF00C48748 /* mpscawl.h */, | 1863 | 31F6CCAA1739B0CF00C48748 /* mpscawl.h */, |
| 1756 | 31F6CCAB1739B0CF00C48748 /* mpsclo.h */, | 1864 | 31F6CCAB1739B0CF00C48748 /* mpsclo.h */, |
| 1757 | 31F6CCAC1739B0CF00C48748 /* mpscmvff.h */, | 1865 | 31F6CCAC1739B0CF00C48748 /* mpscmvff.h */, |
| 1758 | 2219DEFF174BE51900F112E9 /* mpscmvt.h */, | ||
| 1759 | 31F6CCAD1739B0CF00C48748 /* mpscsnc.h */, | 1866 | 31F6CCAD1739B0CF00C48748 /* mpscsnc.h */, |
| 1760 | 31EEAC5B156AB41900714D05 /* poolamc.c */, | 1867 | 31EEAC5B156AB41900714D05 /* poolamc.c */, |
| 1761 | 31CD33BC173A9F1500524741 /* poolams.c */, | 1868 | 31CD33BC173A9F1500524741 /* poolams.c */, |
| 1762 | 31CD33BD173A9F1500524741 /* poolams.h */, | 1869 | 31CD33BD173A9F1500524741 /* poolams.h */, |
| 1763 | 3124CACE156BE4CF00753214 /* poolawl.c */, | 1870 | 3124CACE156BE4CF00753214 /* poolawl.c */, |
| 1764 | 3124CACA156BE4A300753214 /* poollo.c */, | 1871 | 3124CACA156BE4A300753214 /* poollo.c */, |
| 1765 | 31EEAC2F156AB2F200714D05 /* poolmv.c */, | 1872 | 31D4D5FD1745058100BE84B5 /* poolmv2.c */, |
| 1766 | 31CD33BE173ABB3000524741 /* poolmv2.h */, | 1873 | 2291A5A8175CAA51001D4920 /* poolmv2.h */, |
| 1767 | 3114A68E156E96B6001E0AA3 /* poolmv2.c */, | ||
| 1768 | 31EEAC5F156AB44D00714D05 /* poolmvff.c */, | 1874 | 31EEAC5F156AB44D00714D05 /* poolmvff.c */, |
| 1769 | 31EEAC5D156AB43F00714D05 /* poolsnc.c */, | 1875 | 31EEAC5D156AB43F00714D05 /* poolsnc.c */, |
| 1770 | ); | 1876 | ); |
| @@ -1793,22 +1899,58 @@ | |||
| 1793 | /* End PBXHeadersBuildPhase section */ | 1899 | /* End PBXHeadersBuildPhase section */ |
| 1794 | 1900 | ||
| 1795 | /* Begin PBXNativeTarget section */ | 1901 | /* Begin PBXNativeTarget section */ |
| 1796 | 22ABDC491758FD0C00965593 /* fbmtest */ = { | 1902 | 2291A5AC175CAB2F001D4920 /* awlutth */ = { |
| 1903 | isa = PBXNativeTarget; | ||
| 1904 | buildConfigurationList = 2291A5B9175CAB2F001D4920 /* Build configuration list for PBXNativeTarget "awlutth" */; | ||
| 1905 | buildPhases = ( | ||
| 1906 | 2291A5AF175CAB2F001D4920 /* Sources */, | ||
| 1907 | 2291A5B6175CAB2F001D4920 /* Frameworks */, | ||
| 1908 | 2291A5B8175CAB2F001D4920 /* CopyFiles */, | ||
| 1909 | ); | ||
| 1910 | buildRules = ( | ||
| 1911 | ); | ||
| 1912 | dependencies = ( | ||
| 1913 | 2291A5AD175CAB2F001D4920 /* PBXTargetDependency */, | ||
| 1914 | ); | ||
| 1915 | name = awlutth; | ||
| 1916 | productName = awluthe; | ||
| 1917 | productReference = 2291A5BD175CAB2F001D4920 /* awlutth */; | ||
| 1918 | productType = "com.apple.product-type.tool"; | ||
| 1919 | }; | ||
| 1920 | 2291A5C1175CAFCA001D4920 /* expt825 */ = { | ||
| 1797 | isa = PBXNativeTarget; | 1921 | isa = PBXNativeTarget; |
| 1798 | buildConfigurationList = 22ABDC521758FD0C00965593 /* Build configuration list for PBXNativeTarget "fbmtest" */; | 1922 | buildConfigurationList = 2291A5CD175CAFCA001D4920 /* Build configuration list for PBXNativeTarget "expt825" */; |
| 1799 | buildPhases = ( | 1923 | buildPhases = ( |
| 1800 | 22ABDC4C1758FD0C00965593 /* Sources */, | 1924 | 2291A5C4175CAFCA001D4920 /* Sources */, |
| 1801 | 22ABDC4F1758FD0C00965593 /* Frameworks */, | 1925 | 2291A5CA175CAFCA001D4920 /* Frameworks */, |
| 1802 | 22ABDC511758FD0C00965593 /* CopyFiles */, | 1926 | 2291A5CC175CAFCA001D4920 /* CopyFiles */, |
| 1803 | ); | 1927 | ); |
| 1804 | buildRules = ( | 1928 | buildRules = ( |
| 1805 | ); | 1929 | ); |
| 1806 | dependencies = ( | 1930 | dependencies = ( |
| 1807 | 22ABDC4A1758FD0C00965593 /* PBXTargetDependency */, | 1931 | 2291A5C2175CAFCA001D4920 /* PBXTargetDependency */, |
| 1808 | ); | 1932 | ); |
| 1809 | name = fbmtest; | 1933 | name = expt825; |
| 1810 | productName = fbmtest; | 1934 | productName = finaltest; |
| 1811 | productReference = 22ABDC561758FD0C00965593 /* fbmtest */; | 1935 | productReference = 2291A5D1175CAFCA001D4920 /* expt825 */; |
| 1936 | productType = "com.apple.product-type.tool"; | ||
| 1937 | }; | ||
| 1938 | 2291A5D3175CB05F001D4920 /* exposet0 */ = { | ||
| 1939 | isa = PBXNativeTarget; | ||
| 1940 | buildConfigurationList = 2291A5DF175CB05F001D4920 /* Build configuration list for PBXNativeTarget "exposet0" */; | ||
| 1941 | buildPhases = ( | ||
| 1942 | 2291A5D6175CB05F001D4920 /* Sources */, | ||
| 1943 | 2291A5DC175CB05F001D4920 /* Frameworks */, | ||
| 1944 | 2291A5DE175CB05F001D4920 /* CopyFiles */, | ||
| 1945 | ); | ||
| 1946 | buildRules = ( | ||
| 1947 | ); | ||
| 1948 | dependencies = ( | ||
| 1949 | 2291A5D4175CB05F001D4920 /* PBXTargetDependency */, | ||
| 1950 | ); | ||
| 1951 | name = exposet0; | ||
| 1952 | productName = finaltest; | ||
| 1953 | productReference = 2291A5E3175CB05F001D4920 /* exposet0 */; | ||
| 1812 | productType = "com.apple.product-type.tool"; | 1954 | productType = "com.apple.product-type.tool"; |
| 1813 | }; | 1955 | }; |
| 1814 | 22FA176416E8D6FC0098B23F /* amcssth */ = { | 1956 | 22FA176416E8D6FC0098B23F /* amcssth */ = { |
| @@ -2115,6 +2257,24 @@ | |||
| 2115 | productReference = 3114A633156E94DB001E0AA3 /* abqtest */; | 2257 | productReference = 3114A633156E94DB001E0AA3 /* abqtest */; |
| 2116 | productType = "com.apple.product-type.tool"; | 2258 | productType = "com.apple.product-type.tool"; |
| 2117 | }; | 2259 | }; |
| 2260 | 3114A64B156E9596001E0AA3 /* cbstest */ = { | ||
| 2261 | isa = PBXNativeTarget; | ||
| 2262 | buildConfigurationList = 3114A653156E9596001E0AA3 /* Build configuration list for PBXNativeTarget "cbstest" */; | ||
| 2263 | buildPhases = ( | ||
| 2264 | 3114A648156E9596001E0AA3 /* Sources */, | ||
| 2265 | 3114A649156E9596001E0AA3 /* Frameworks */, | ||
| 2266 | 3114A64A156E9596001E0AA3 /* CopyFiles */, | ||
| 2267 | ); | ||
| 2268 | buildRules = ( | ||
| 2269 | ); | ||
| 2270 | dependencies = ( | ||
| 2271 | 3114A659156E95B1001E0AA3 /* PBXTargetDependency */, | ||
| 2272 | ); | ||
| 2273 | name = cbstest; | ||
| 2274 | productName = cbstest; | ||
| 2275 | productReference = 3114A64C156E9596001E0AA3 /* cbstest */; | ||
| 2276 | productType = "com.apple.product-type.tool"; | ||
| 2277 | }; | ||
| 2118 | 3114A661156E95D9001E0AA3 /* btcv */ = { | 2278 | 3114A661156E95D9001E0AA3 /* btcv */ = { |
| 2119 | isa = PBXNativeTarget; | 2279 | isa = PBXNativeTarget; |
| 2120 | buildConfigurationList = 3114A669156E95D9001E0AA3 /* Build configuration list for PBXNativeTarget "btcv" */; | 2280 | buildConfigurationList = 3114A669156E95D9001E0AA3 /* Build configuration list for PBXNativeTarget "btcv" */; |
| @@ -2434,11 +2594,14 @@ | |||
| 2434 | 3114A5EE156E93E7001E0AA3 /* arenacv */, | 2594 | 3114A5EE156E93E7001E0AA3 /* arenacv */, |
| 2435 | 3124CAB7156BE3EC00753214 /* awlut */, | 2595 | 3124CAB7156BE3EC00753214 /* awlut */, |
| 2436 | 31D6000C156D3CB200337B26 /* awluthe */, | 2596 | 31D6000C156D3CB200337B26 /* awluthe */, |
| 2597 | 2291A5AC175CAB2F001D4920 /* awlutth */, | ||
| 2437 | 3114A661156E95D9001E0AA3 /* btcv */, | 2598 | 3114A661156E95D9001E0AA3 /* btcv */, |
| 2438 | 3114A604156E9430001E0AA3 /* bttest */, | 2599 | 3114A604156E9430001E0AA3 /* bttest */, |
| 2600 | 3114A64B156E9596001E0AA3 /* cbstest */, | ||
| 2601 | 2291A5D3175CB05F001D4920 /* exposet0 */, | ||
| 2602 | 2291A5C1175CAFCA001D4920 /* expt825 */, | ||
| 2439 | 3114A5BC156E9315001E0AA3 /* finalcv */, | 2603 | 3114A5BC156E9315001E0AA3 /* finalcv */, |
| 2440 | 3114A5D5156E93A0001E0AA3 /* finaltest */, | 2604 | 3114A5D5156E93A0001E0AA3 /* finaltest */, |
| 2441 | 22ABDC491758FD0C00965593 /* fbmtest */, | ||
| 2442 | 31D60026156D3D3E00337B26 /* lockcov */, | 2605 | 31D60026156D3D3E00337B26 /* lockcov */, |
| 2443 | 3114A58F156E913C001E0AA3 /* locv */, | 2606 | 3114A58F156E913C001E0AA3 /* locv */, |
| 2444 | 3114A694156E971B001E0AA3 /* messtest */, | 2607 | 3114A694156E971B001E0AA3 /* messtest */, |
| @@ -2474,19 +2637,46 @@ | |||
| 2474 | ); | 2637 | ); |
| 2475 | runOnlyForDeploymentPostprocessing = 0; | 2638 | runOnlyForDeploymentPostprocessing = 0; |
| 2476 | shellPath = /bin/sh; | 2639 | shellPath = /bin/sh; |
| 2477 | shellScript = "# bttest and teletest are not listed here because they cannot be run\n# unattended.\nTESTCASES=\"abqtest amcss amcsshe amcssth amsss amssshe apss arenacv \\\n awlut awluthe btcv fbmtest finalcv finaltest lockcov locv \\\n messtest mpmss mpsicv mv2test poolncv qs sacss segsmss \\\n steptest walkt0\"\n../tool/testrun.sh $(for TEST in $TESTCASES; do echo $TARGET_BUILD_DIR/$TEST; done)\n\n# Coverage\nif [ \"$CONFIGURATION\" == \"Debug\" ]; then\n (cd xc/$PROJECT.build/$CONFIGURATION/$PROJECT.build/Objects-normal/x86_64 &&\n gcov mps.c 2> /dev/null) | ../tool/gcovfmt.py\nfi"; | 2640 | shellScript = "# Not listed here:\n# awlutth -- fails (job003506).\n# bttest and teletest -- interactive and so cannot be run unattended.\n# zcoll -- takes too long to be useful as a regularly run smoke test.\nTESTCASES=\"abqtest amcss amcsshe amcssth amsss amssshe apss arenacv \\\n awlut awluthe btcv cbstest expt825 exposet0 finalcv \\\n finaltest lockcov locv messtest mpmss mpsicv mv2test \\\n poolncv qs sacss segsmss steptest walkt0 zmess\"\n\n../tool/testrun.sh $(for TEST in $TESTCASES; do echo $TARGET_BUILD_DIR/$TEST; done)\n\n# Coverage\nif [ \"$CONFIGURATION\" == \"Debug\" ]; then\n (cd xc/$PROJECT.build/$CONFIGURATION/$PROJECT.build/Objects-normal/x86_64 &&\n gcov mps.c 2> /dev/null) | ../tool/gcovfmt.py\nfi"; |
| 2478 | showEnvVarsInLog = 0; | 2641 | showEnvVarsInLog = 0; |
| 2479 | }; | 2642 | }; |
| 2480 | /* End PBXShellScriptBuildPhase section */ | 2643 | /* End PBXShellScriptBuildPhase section */ |
| 2481 | 2644 | ||
| 2482 | /* Begin PBXSourcesBuildPhase section */ | 2645 | /* Begin PBXSourcesBuildPhase section */ |
| 2483 | 22ABDC4C1758FD0C00965593 /* Sources */ = { | 2646 | 2291A5AF175CAB2F001D4920 /* Sources */ = { |
| 2647 | isa = PBXSourcesBuildPhase; | ||
| 2648 | buildActionMask = 2147483647; | ||
| 2649 | files = ( | ||
| 2650 | 2291A5BE175CAB4E001D4920 /* awlutth.c in Sources */, | ||
| 2651 | 2291A5B1175CAB2F001D4920 /* fmtdy.c in Sources */, | ||
| 2652 | 2291A5B2175CAB2F001D4920 /* fmtdytst.c in Sources */, | ||
| 2653 | 2291A5B3175CAB2F001D4920 /* fmthe.c in Sources */, | ||
| 2654 | 2291A5B4175CAB2F001D4920 /* fmtno.c in Sources */, | ||
| 2655 | 2291A5B5175CAB2F001D4920 /* testlib.c in Sources */, | ||
| 2656 | ); | ||
| 2657 | runOnlyForDeploymentPostprocessing = 0; | ||
| 2658 | }; | ||
| 2659 | 2291A5C4175CAFCA001D4920 /* Sources */ = { | ||
| 2484 | isa = PBXSourcesBuildPhase; | 2660 | isa = PBXSourcesBuildPhase; |
| 2485 | buildActionMask = 2147483647; | 2661 | buildActionMask = 2147483647; |
| 2486 | files = ( | 2662 | files = ( |
| 2487 | 22ABDC5A1758FDD500965593 /* freelist.c in Sources */, | 2663 | 2291A5D2175CAFF8001D4920 /* expt825.c in Sources */, |
| 2488 | 22ABDC581758FD4F00965593 /* fbmtest.c in Sources */, | 2664 | 2291A5C5175CAFCA001D4920 /* fmtdy.c in Sources */, |
| 2489 | 22ABDC4E1758FD0C00965593 /* testlib.c in Sources */, | 2665 | 2291A5C6175CAFCA001D4920 /* fmtdytst.c in Sources */, |
| 2666 | 2291A5C7175CAFCA001D4920 /* fmtno.c in Sources */, | ||
| 2667 | 2291A5C8175CAFCA001D4920 /* testlib.c in Sources */, | ||
| 2668 | ); | ||
| 2669 | runOnlyForDeploymentPostprocessing = 0; | ||
| 2670 | }; | ||
| 2671 | 2291A5D6175CB05F001D4920 /* Sources */ = { | ||
| 2672 | isa = PBXSourcesBuildPhase; | ||
| 2673 | buildActionMask = 2147483647; | ||
| 2674 | files = ( | ||
| 2675 | 2291A5E4175CB076001D4920 /* exposet0.c in Sources */, | ||
| 2676 | 2291A5D8175CB05F001D4920 /* fmtdy.c in Sources */, | ||
| 2677 | 2291A5D9175CB05F001D4920 /* fmtdytst.c in Sources */, | ||
| 2678 | 2291A5DA175CB05F001D4920 /* fmtno.c in Sources */, | ||
| 2679 | 2291A5DB175CB05F001D4920 /* testlib.c in Sources */, | ||
| 2490 | ); | 2680 | ); |
| 2491 | runOnlyForDeploymentPostprocessing = 0; | 2681 | runOnlyForDeploymentPostprocessing = 0; |
| 2492 | }; | 2682 | }; |
| @@ -2662,6 +2852,16 @@ | |||
| 2662 | files = ( | 2852 | files = ( |
| 2663 | 3114A63E156E94EA001E0AA3 /* abqtest.c in Sources */, | 2853 | 3114A63E156E94EA001E0AA3 /* abqtest.c in Sources */, |
| 2664 | 3114A63F156E94F0001E0AA3 /* testlib.c in Sources */, | 2854 | 3114A63F156E94F0001E0AA3 /* testlib.c in Sources */, |
| 2855 | 3114A646156E9525001E0AA3 /* abq.c in Sources */, | ||
| 2856 | ); | ||
| 2857 | runOnlyForDeploymentPostprocessing = 0; | ||
| 2858 | }; | ||
| 2859 | 3114A648156E9596001E0AA3 /* Sources */ = { | ||
| 2860 | isa = PBXSourcesBuildPhase; | ||
| 2861 | buildActionMask = 2147483647; | ||
| 2862 | files = ( | ||
| 2863 | 3114A657156E95A6001E0AA3 /* cbstest.c in Sources */, | ||
| 2864 | 3114A672156E95F6001E0AA3 /* testlib.c in Sources */, | ||
| 2665 | ); | 2865 | ); |
| 2666 | runOnlyForDeploymentPostprocessing = 0; | 2866 | runOnlyForDeploymentPostprocessing = 0; |
| 2667 | }; | 2867 | }; |
| @@ -2680,6 +2880,8 @@ | |||
| 2680 | files = ( | 2880 | files = ( |
| 2681 | 3114A687156E9674001E0AA3 /* mv2test.c in Sources */, | 2881 | 3114A687156E9674001E0AA3 /* mv2test.c in Sources */, |
| 2682 | 3114A688156E967C001E0AA3 /* testlib.c in Sources */, | 2882 | 3114A688156E967C001E0AA3 /* testlib.c in Sources */, |
| 2883 | 3114A68F156E96B6001E0AA3 /* poolmv2.c in Sources */, | ||
| 2884 | 3114A690156E96CE001E0AA3 /* abq.c in Sources */, | ||
| 2683 | ); | 2885 | ); |
| 2684 | runOnlyForDeploymentPostprocessing = 0; | 2886 | runOnlyForDeploymentPostprocessing = 0; |
| 2685 | }; | 2887 | }; |
| @@ -2845,15 +3047,35 @@ | |||
| 2845 | target = 2D604B9B16514B1A003AAF46 /* mpseventtxt */; | 3047 | target = 2D604B9B16514B1A003AAF46 /* mpseventtxt */; |
| 2846 | targetProxy = 2275798816C5422900B662B0 /* PBXContainerItemProxy */; | 3048 | targetProxy = 2275798816C5422900B662B0 /* PBXContainerItemProxy */; |
| 2847 | }; | 3049 | }; |
| 2848 | 228A22211759004C00270ECF /* PBXTargetDependency */ = { | 3050 | 2291A5AD175CAB2F001D4920 /* PBXTargetDependency */ = { |
| 3051 | isa = PBXTargetDependency; | ||
| 3052 | target = 31EEABFA156AAF9D00714D05 /* mps */; | ||
| 3053 | targetProxy = 2291A5AE175CAB2F001D4920 /* PBXContainerItemProxy */; | ||
| 3054 | }; | ||
| 3055 | 2291A5C0175CAB5F001D4920 /* PBXTargetDependency */ = { | ||
| 3056 | isa = PBXTargetDependency; | ||
| 3057 | target = 2291A5AC175CAB2F001D4920 /* awlutth */; | ||
| 3058 | targetProxy = 2291A5BF175CAB5F001D4920 /* PBXContainerItemProxy */; | ||
| 3059 | }; | ||
| 3060 | 2291A5C2175CAFCA001D4920 /* PBXTargetDependency */ = { | ||
| 2849 | isa = PBXTargetDependency; | 3061 | isa = PBXTargetDependency; |
| 2850 | target = 22ABDC491758FD0C00965593 /* fbmtest */; | 3062 | target = 31EEABFA156AAF9D00714D05 /* mps */; |
| 2851 | targetProxy = 228A22201759004C00270ECF /* PBXContainerItemProxy */; | 3063 | targetProxy = 2291A5C3175CAFCA001D4920 /* PBXContainerItemProxy */; |
| 2852 | }; | 3064 | }; |
| 2853 | 22ABDC4A1758FD0C00965593 /* PBXTargetDependency */ = { | 3065 | 2291A5D4175CB05F001D4920 /* PBXTargetDependency */ = { |
| 2854 | isa = PBXTargetDependency; | 3066 | isa = PBXTargetDependency; |
| 2855 | target = 31EEABFA156AAF9D00714D05 /* mps */; | 3067 | target = 31EEABFA156AAF9D00714D05 /* mps */; |
| 2856 | targetProxy = 22ABDC4B1758FD0C00965593 /* PBXContainerItemProxy */; | 3068 | targetProxy = 2291A5D5175CB05F001D4920 /* PBXContainerItemProxy */; |
| 3069 | }; | ||
| 3070 | 2291A5E6175CB207001D4920 /* PBXTargetDependency */ = { | ||
| 3071 | isa = PBXTargetDependency; | ||
| 3072 | target = 2291A5D3175CB05F001D4920 /* exposet0 */; | ||
| 3073 | targetProxy = 2291A5E5175CB207001D4920 /* PBXContainerItemProxy */; | ||
| 3074 | }; | ||
| 3075 | 2291A5E8175CB20E001D4920 /* PBXTargetDependency */ = { | ||
| 3076 | isa = PBXTargetDependency; | ||
| 3077 | target = 2291A5C1175CAFCA001D4920 /* expt825 */; | ||
| 3078 | targetProxy = 2291A5E7175CB20E001D4920 /* PBXContainerItemProxy */; | ||
| 2857 | }; | 3079 | }; |
| 2858 | 22CDE92E16E9EB9300366D0A /* PBXTargetDependency */ = { | 3080 | 22CDE92E16E9EB9300366D0A /* PBXTargetDependency */ = { |
| 2859 | isa = PBXTargetDependency; | 3081 | isa = PBXTargetDependency; |
| @@ -3045,6 +3267,11 @@ | |||
| 3045 | target = 31EEABFA156AAF9D00714D05 /* mps */; | 3267 | target = 31EEABFA156AAF9D00714D05 /* mps */; |
| 3046 | targetProxy = 3114A658156E95B1001E0AA3 /* PBXContainerItemProxy */; | 3268 | targetProxy = 3114A658156E95B1001E0AA3 /* PBXContainerItemProxy */; |
| 3047 | }; | 3269 | }; |
| 3270 | 3114A65B156E95B4001E0AA3 /* PBXTargetDependency */ = { | ||
| 3271 | isa = PBXTargetDependency; | ||
| 3272 | target = 3114A64B156E9596001E0AA3 /* cbstest */; | ||
| 3273 | targetProxy = 3114A65A156E95B4001E0AA3 /* PBXContainerItemProxy */; | ||
| 3274 | }; | ||
| 3048 | 3114A675156E9619001E0AA3 /* PBXTargetDependency */ = { | 3275 | 3114A675156E9619001E0AA3 /* PBXTargetDependency */ = { |
| 3049 | isa = PBXTargetDependency; | 3276 | isa = PBXTargetDependency; |
| 3050 | target = 31EEABFA156AAF9D00714D05 /* mps */; | 3277 | target = 31EEABFA156AAF9D00714D05 /* mps */; |
| @@ -3178,30 +3405,84 @@ | |||
| 3178 | /* End PBXTargetDependency section */ | 3405 | /* End PBXTargetDependency section */ |
| 3179 | 3406 | ||
| 3180 | /* Begin XCBuildConfiguration section */ | 3407 | /* Begin XCBuildConfiguration section */ |
| 3181 | 22ABDC531758FD0C00965593 /* Debug */ = { | 3408 | 2291A5BA175CAB2F001D4920 /* Debug */ = { |
| 3182 | isa = XCBuildConfiguration; | 3409 | isa = XCBuildConfiguration; |
| 3183 | buildSettings = { | 3410 | buildSettings = { |
| 3184 | GCC_GENERATE_TEST_COVERAGE_FILES = YES; | 3411 | GCC_GENERATE_TEST_COVERAGE_FILES = YES; |
| 3185 | GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; | 3412 | GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; |
| 3186 | PRODUCT_NAME = fbmtest; | 3413 | PRODUCT_NAME = awlutth; |
| 3187 | }; | 3414 | }; |
| 3188 | name = Debug; | 3415 | name = Debug; |
| 3189 | }; | 3416 | }; |
| 3190 | 22ABDC541758FD0C00965593 /* Release */ = { | 3417 | 2291A5BB175CAB2F001D4920 /* Release */ = { |
| 3191 | isa = XCBuildConfiguration; | 3418 | isa = XCBuildConfiguration; |
| 3192 | buildSettings = { | 3419 | buildSettings = { |
| 3193 | GCC_GENERATE_TEST_COVERAGE_FILES = NO; | 3420 | GCC_GENERATE_TEST_COVERAGE_FILES = NO; |
| 3194 | GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; | 3421 | GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; |
| 3195 | PRODUCT_NAME = fbmtest; | 3422 | PRODUCT_NAME = awlutth; |
| 3196 | }; | 3423 | }; |
| 3197 | name = Release; | 3424 | name = Release; |
| 3198 | }; | 3425 | }; |
| 3199 | 22ABDC551758FD0C00965593 /* WE */ = { | 3426 | 2291A5BC175CAB2F001D4920 /* WE */ = { |
| 3200 | isa = XCBuildConfiguration; | 3427 | isa = XCBuildConfiguration; |
| 3201 | buildSettings = { | 3428 | buildSettings = { |
| 3202 | GCC_GENERATE_TEST_COVERAGE_FILES = NO; | 3429 | GCC_GENERATE_TEST_COVERAGE_FILES = NO; |
| 3203 | GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; | 3430 | GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; |
| 3204 | PRODUCT_NAME = fbmtest; | 3431 | PRODUCT_NAME = awlutth; |
| 3432 | }; | ||
| 3433 | name = WE; | ||
| 3434 | }; | ||
| 3435 | 2291A5CE175CAFCA001D4920 /* Debug */ = { | ||
| 3436 | isa = XCBuildConfiguration; | ||
| 3437 | buildSettings = { | ||
| 3438 | GCC_GENERATE_TEST_COVERAGE_FILES = YES; | ||
| 3439 | GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; | ||
| 3440 | PRODUCT_NAME = expt825; | ||
| 3441 | }; | ||
| 3442 | name = Debug; | ||
| 3443 | }; | ||
| 3444 | 2291A5CF175CAFCA001D4920 /* Release */ = { | ||
| 3445 | isa = XCBuildConfiguration; | ||
| 3446 | buildSettings = { | ||
| 3447 | GCC_GENERATE_TEST_COVERAGE_FILES = NO; | ||
| 3448 | GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; | ||
| 3449 | PRODUCT_NAME = expt825; | ||
| 3450 | }; | ||
| 3451 | name = Release; | ||
| 3452 | }; | ||
| 3453 | 2291A5D0175CAFCA001D4920 /* WE */ = { | ||
| 3454 | isa = XCBuildConfiguration; | ||
| 3455 | buildSettings = { | ||
| 3456 | GCC_GENERATE_TEST_COVERAGE_FILES = NO; | ||
| 3457 | GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; | ||
| 3458 | PRODUCT_NAME = expt825; | ||
| 3459 | }; | ||
| 3460 | name = WE; | ||
| 3461 | }; | ||
| 3462 | 2291A5E0175CB05F001D4920 /* Debug */ = { | ||
| 3463 | isa = XCBuildConfiguration; | ||
| 3464 | buildSettings = { | ||
| 3465 | GCC_GENERATE_TEST_COVERAGE_FILES = YES; | ||
| 3466 | GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; | ||
| 3467 | PRODUCT_NAME = exposet0; | ||
| 3468 | }; | ||
| 3469 | name = Debug; | ||
| 3470 | }; | ||
| 3471 | 2291A5E1175CB05F001D4920 /* Release */ = { | ||
| 3472 | isa = XCBuildConfiguration; | ||
| 3473 | buildSettings = { | ||
| 3474 | GCC_GENERATE_TEST_COVERAGE_FILES = NO; | ||
| 3475 | GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; | ||
| 3476 | PRODUCT_NAME = exposet0; | ||
| 3477 | }; | ||
| 3478 | name = Release; | ||
| 3479 | }; | ||
| 3480 | 2291A5E2175CB05F001D4920 /* WE */ = { | ||
| 3481 | isa = XCBuildConfiguration; | ||
| 3482 | buildSettings = { | ||
| 3483 | GCC_GENERATE_TEST_COVERAGE_FILES = NO; | ||
| 3484 | GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; | ||
| 3485 | PRODUCT_NAME = exposet0; | ||
| 3205 | }; | 3486 | }; |
| 3206 | name = WE; | 3487 | name = WE; |
| 3207 | }; | 3488 | }; |
| @@ -4330,12 +4611,32 @@ | |||
| 4330 | /* End XCBuildConfiguration section */ | 4611 | /* End XCBuildConfiguration section */ |
| 4331 | 4612 | ||
| 4332 | /* Begin XCConfigurationList section */ | 4613 | /* Begin XCConfigurationList section */ |
| 4333 | 22ABDC521758FD0C00965593 /* Build configuration list for PBXNativeTarget "fbmtest" */ = { | 4614 | 2291A5B9175CAB2F001D4920 /* Build configuration list for PBXNativeTarget "awlutth" */ = { |
| 4615 | isa = XCConfigurationList; | ||
| 4616 | buildConfigurations = ( | ||
| 4617 | 2291A5BA175CAB2F001D4920 /* Debug */, | ||
| 4618 | 2291A5BB175CAB2F001D4920 /* Release */, | ||
| 4619 | 2291A5BC175CAB2F001D4920 /* WE */, | ||
| 4620 | ); | ||
| 4621 | defaultConfigurationIsVisible = 0; | ||
| 4622 | defaultConfigurationName = Release; | ||
| 4623 | }; | ||
| 4624 | 2291A5CD175CAFCA001D4920 /* Build configuration list for PBXNativeTarget "expt825" */ = { | ||
| 4625 | isa = XCConfigurationList; | ||
| 4626 | buildConfigurations = ( | ||
| 4627 | 2291A5CE175CAFCA001D4920 /* Debug */, | ||
| 4628 | 2291A5CF175CAFCA001D4920 /* Release */, | ||
| 4629 | 2291A5D0175CAFCA001D4920 /* WE */, | ||
| 4630 | ); | ||
| 4631 | defaultConfigurationIsVisible = 0; | ||
| 4632 | defaultConfigurationName = Release; | ||
| 4633 | }; | ||
| 4634 | 2291A5DF175CB05F001D4920 /* Build configuration list for PBXNativeTarget "exposet0" */ = { | ||
| 4334 | isa = XCConfigurationList; | 4635 | isa = XCConfigurationList; |
| 4335 | buildConfigurations = ( | 4636 | buildConfigurations = ( |
| 4336 | 22ABDC531758FD0C00965593 /* Debug */, | 4637 | 2291A5E0175CB05F001D4920 /* Debug */, |
| 4337 | 22ABDC541758FD0C00965593 /* Release */, | 4638 | 2291A5E1175CB05F001D4920 /* Release */, |
| 4338 | 22ABDC551758FD0C00965593 /* WE */, | 4639 | 2291A5E2175CB05F001D4920 /* WE */, |
| 4339 | ); | 4640 | ); |
| 4340 | defaultConfigurationIsVisible = 0; | 4641 | defaultConfigurationIsVisible = 0; |
| 4341 | defaultConfigurationName = Release; | 4642 | defaultConfigurationName = Release; |
| @@ -4530,6 +4831,16 @@ | |||
| 4530 | defaultConfigurationIsVisible = 0; | 4831 | defaultConfigurationIsVisible = 0; |
| 4531 | defaultConfigurationName = Release; | 4832 | defaultConfigurationName = Release; |
| 4532 | }; | 4833 | }; |
| 4834 | 3114A653156E9596001E0AA3 /* Build configuration list for PBXNativeTarget "cbstest" */ = { | ||
| 4835 | isa = XCConfigurationList; | ||
| 4836 | buildConfigurations = ( | ||
| 4837 | 3114A654156E9596001E0AA3 /* Debug */, | ||
| 4838 | 3114A655156E9596001E0AA3 /* Release */, | ||
| 4839 | 3183880615DC30CC008E4EA0 /* WE */, | ||
| 4840 | ); | ||
| 4841 | defaultConfigurationIsVisible = 0; | ||
| 4842 | defaultConfigurationName = Release; | ||
| 4843 | }; | ||
| 4533 | 3114A669156E95D9001E0AA3 /* Build configuration list for PBXNativeTarget "btcv" */ = { | 4844 | 3114A669156E95D9001E0AA3 /* Build configuration list for PBXNativeTarget "btcv" */ = { |
| 4534 | isa = XCConfigurationList; | 4845 | isa = XCConfigurationList; |
| 4535 | buildConfigurations = ( | 4846 | buildConfigurations = ( |
diff --git a/mps/code/mpsicv.c b/mps/code/mpsicv.c index 2ddd4344c59..4a3c95abe83 100644 --- a/mps/code/mpsicv.c +++ b/mps/code/mpsicv.c | |||
| @@ -6,6 +6,7 @@ | |||
| 6 | */ | 6 | */ |
| 7 | 7 | ||
| 8 | #include "testlib.h" | 8 | #include "testlib.h" |
| 9 | #include "mpslib.h" | ||
| 9 | #include "mpscamc.h" | 10 | #include "mpscamc.h" |
| 10 | #include "mpsavm.h" | 11 | #include "mpsavm.h" |
| 11 | #include "mpscmv.h" | 12 | #include "mpscmv.h" |
| @@ -582,6 +583,7 @@ int main(int argc, char *argv[]) | |||
| 582 | void *marker = ▮ | 583 | void *marker = ▮ |
| 583 | 584 | ||
| 584 | randomize(argc, argv); | 585 | randomize(argc, argv); |
| 586 | mps_lib_assert_fail_install(assert_die); | ||
| 585 | 587 | ||
| 586 | die(mps_arena_create(&arena, mps_arena_class_vm(), TEST_ARENA_SIZE), | 588 | die(mps_arena_create(&arena, mps_arena_class_vm(), TEST_ARENA_SIZE), |
| 587 | "arena_create"); | 589 | "arena_create"); |
diff --git a/mps/code/mpsioan.c b/mps/code/mpsioan.c index 966847575fb..77b27ee1712 100644 --- a/mps/code/mpsioan.c +++ b/mps/code/mpsioan.c | |||
| @@ -1,16 +1,27 @@ | |||
| 1 | /* mpsioan.c: RAVENBROOK MEMORY POOL SYSTEM I/O IMPLEMENTATION (ANSI) | 1 | /* mpsioan.c: RAVENBROOK MEMORY POOL SYSTEM I/O IMPLEMENTATION (ANSI) |
| 2 | * | 2 | * |
| 3 | * $Id$ | 3 | * $Id$ |
| 4 | * Copyright (c) 2001 Ravenbrook Limited. See end of file for license. | 4 | * Copyright (c) 2001-2013 Ravenbrook Limited. See end of file for license. |
| 5 | * | 5 | * |
| 6 | * .readership: For MPS client application developers and MPS developers. | 6 | * .readership: For MPS client application developers and MPS developers. |
| 7 | * .sources: <design/io/> | 7 | * .sources: <design/io/> |
| 8 | */ | 8 | */ |
| 9 | 9 | ||
| 10 | #include "mpsio.h" | 10 | #include "mpsio.h" |
| 11 | |||
| 12 | #include "mpstd.h" | 11 | #include "mpstd.h" |
| 13 | 12 | ||
| 13 | /* We don't want to use the ANSI assert() to check that the interface | ||
| 14 | * is being used correctly, because it's not controlled by the MPS | ||
| 15 | * variety mechanism: we might end up with assertions being turned on | ||
| 16 | * in the HOT variety or turned off in the COOL variety (depending on | ||
| 17 | * whether or not the client program compiles the MPS with NDEBUG | ||
| 18 | * defined). So we include "check.h" and use AVER() instead. See | ||
| 19 | * job003504. If you are developing your own plinth, you should | ||
| 20 | * consider whether to use your own preferred assertion mechanism | ||
| 21 | * instead. | ||
| 22 | */ | ||
| 23 | #include "check.h" | ||
| 24 | |||
| 14 | #ifdef MPS_OS_XC | 25 | #ifdef MPS_OS_XC |
| 15 | #include "osxc.h" | 26 | #include "osxc.h" |
| 16 | #endif | 27 | #endif |
| @@ -53,15 +64,20 @@ mps_res_t mps_io_create(mps_io_t *mps_io_r) | |||
| 53 | void mps_io_destroy(mps_io_t mps_io) | 64 | void mps_io_destroy(mps_io_t mps_io) |
| 54 | { | 65 | { |
| 55 | FILE *f = (FILE *)mps_io; | 66 | FILE *f = (FILE *)mps_io; |
| 56 | ioFile = NULL; /* Should check f == ioFile */ | 67 | AVER(f == ioFile); |
| 68 | AVER(f != NULL); | ||
| 69 | |||
| 70 | ioFile = NULL; | ||
| 57 | (void)fclose(f); | 71 | (void)fclose(f); |
| 58 | } | 72 | } |
| 59 | 73 | ||
| 60 | 74 | ||
| 61 | mps_res_t mps_io_write(mps_io_t mps_io, void *buf, size_t size) | 75 | mps_res_t mps_io_write(mps_io_t mps_io, void *buf, size_t size) |
| 62 | { | 76 | { |
| 63 | FILE *f = (FILE *)mps_io; /* Should check f == ioFile */ | 77 | FILE *f = (FILE *)mps_io; |
| 64 | size_t n; | 78 | size_t n; |
| 79 | AVER(f == ioFile); | ||
| 80 | AVER(f != NULL); | ||
| 65 | 81 | ||
| 66 | n = fwrite(buf, size, 1, f); | 82 | n = fwrite(buf, size, 1, f); |
| 67 | if(n != 1) | 83 | if(n != 1) |
| @@ -73,8 +89,10 @@ mps_res_t mps_io_write(mps_io_t mps_io, void *buf, size_t size) | |||
| 73 | 89 | ||
| 74 | mps_res_t mps_io_flush(mps_io_t mps_io) | 90 | mps_res_t mps_io_flush(mps_io_t mps_io) |
| 75 | { | 91 | { |
| 76 | FILE *f = (FILE *)mps_io; /* Should check f == ioFile */ | 92 | FILE *f = (FILE *)mps_io; |
| 77 | int e; | 93 | int e; |
| 94 | AVER(f == ioFile); | ||
| 95 | AVER(f != NULL); | ||
| 78 | 96 | ||
| 79 | e = fflush(f); | 97 | e = fflush(f); |
| 80 | if(e == EOF) | 98 | if(e == EOF) |
| @@ -86,7 +104,7 @@ mps_res_t mps_io_flush(mps_io_t mps_io) | |||
| 86 | 104 | ||
| 87 | /* C. COPYRIGHT AND LICENSE | 105 | /* C. COPYRIGHT AND LICENSE |
| 88 | * | 106 | * |
| 89 | * Copyright (C) 2001-2002 Ravenbrook Limited <http://www.ravenbrook.com/>. | 107 | * Copyright (C) 2001-2013 Ravenbrook Limited <http://www.ravenbrook.com/>. |
| 90 | * All rights reserved. This is an open source license. Contact | 108 | * All rights reserved. This is an open source license. Contact |
| 91 | * Ravenbrook for commercial licensing options. | 109 | * Ravenbrook for commercial licensing options. |
| 92 | * | 110 | * |
diff --git a/mps/code/mpslib.h b/mps/code/mpslib.h index f74bd986fa6..323cfa55f5c 100644 --- a/mps/code/mpslib.h +++ b/mps/code/mpslib.h | |||
| @@ -16,30 +16,60 @@ | |||
| 16 | #include <stddef.h> | 16 | #include <stddef.h> |
| 17 | #include "mps.h" /* mps_clock_t */ | 17 | #include "mps.h" /* mps_clock_t */ |
| 18 | 18 | ||
| 19 | /* Return the token that will be returned by I/O functions when the end | ||
| 20 | of file is reached. Analogous to `EOF` from stdio.h. */ | ||
| 19 | extern int mps_lib_get_EOF(void); | 21 | extern int mps_lib_get_EOF(void); |
| 20 | #define mps_lib_EOF (mps_lib_get_EOF()) | 22 | #define mps_lib_EOF (mps_lib_get_EOF()) |
| 21 | 23 | ||
| 24 | /* An anonymous structure type used to represent files. Analagous to | ||
| 25 | `FILE *` from stdio.h. */ | ||
| 22 | typedef struct mps_lib_stream_s mps_lib_FILE; | 26 | typedef struct mps_lib_stream_s mps_lib_FILE; |
| 23 | 27 | ||
| 28 | /* Return the standard output and standard error streams. Analagous to | ||
| 29 | `stdout` and `stderr` from stdio.h. */ | ||
| 24 | extern mps_lib_FILE *mps_lib_get_stderr(void); | 30 | extern mps_lib_FILE *mps_lib_get_stderr(void); |
| 25 | extern mps_lib_FILE *mps_lib_get_stdout(void); | 31 | extern mps_lib_FILE *mps_lib_get_stdout(void); |
| 26 | #define mps_lib_stderr (mps_lib_get_stderr()) | 32 | #define mps_lib_stderr (mps_lib_get_stderr()) |
| 27 | #define mps_lib_stdout (mps_lib_get_stdout()) | 33 | #define mps_lib_stdout (mps_lib_get_stdout()) |
| 28 | 34 | ||
| 35 | /* Send a character or string to a stream. Analagous to `fputc` and `fputs` | ||
| 36 | from stdio.h. */ | ||
| 29 | extern int mps_lib_fputc(int, mps_lib_FILE *); | 37 | extern int mps_lib_fputc(int, mps_lib_FILE *); |
| 30 | extern int mps_lib_fputs(const char *, mps_lib_FILE *); | 38 | extern int mps_lib_fputs(const char *, mps_lib_FILE *); |
| 31 | 39 | ||
| 32 | extern void mps_lib_assert_fail(const char *); | 40 | /* Assertion handler. When the MPS detects an illegal condition, it calls |
| 33 | 41 | `mps_lib_assert_fail` with the source code filename, line number, and | |
| 42 | a string representing the condition. That function should log or report | ||
| 43 | the condition, and preferably allow for debugging, though in a production | ||
| 44 | environment it can return and the MPS will attempt to continue, though | ||
| 45 | this may cause failure of the process soon after. */ | ||
| 46 | extern void mps_lib_assert_fail(const char *, unsigned, const char *); | ||
| 47 | |||
| 48 | /* The default ANSI plinth in mpsliban.c allows the assertion handler to be | ||
| 49 | replaced by passing a replacement to `mps_lib_assert_fail_install`, | ||
| 50 | which returns the previous handler. This is for convenience so that | ||
| 51 | a complete replacement plinth need not be supplied just to achieve the | ||
| 52 | same thing. The MPS itself does not use `mps_lib_assert_fail_install` | ||
| 53 | and so it need not be supplied by the plinth. */ | ||
| 54 | typedef void (*mps_lib_assert_fail_t)(const char *, unsigned, const char *); | ||
| 55 | extern mps_lib_assert_fail_t mps_lib_assert_fail_install(mps_lib_assert_fail_t); | ||
| 56 | |||
| 57 | |||
| 58 | /* Set, copy, or compare memory. Analagous to `memset`, `memcpy`, and | ||
| 59 | `memcmp` from string.h. */ | ||
| 34 | extern void *(mps_lib_memset)(void *, int, size_t); | 60 | extern void *(mps_lib_memset)(void *, int, size_t); |
| 35 | extern void *(mps_lib_memcpy)(void *, const void *, size_t); | 61 | extern void *(mps_lib_memcpy)(void *, const void *, size_t); |
| 36 | extern int (mps_lib_memcmp)(const void *, const void *, size_t); | 62 | extern int (mps_lib_memcmp)(const void *, const void *, size_t); |
| 37 | 63 | ||
| 38 | 64 | /* Return a measure of time since process start. Equivalent to `clock` | |
| 65 | from time.h. */ | ||
| 39 | extern mps_clock_t mps_clock(void); | 66 | extern mps_clock_t mps_clock(void); |
| 40 | extern mps_clock_t mps_clocks_per_sec(void); | 67 | extern mps_clock_t mps_clocks_per_sec(void); |
| 41 | 68 | ||
| 42 | 69 | ||
| 70 | /* Return a telemetry control word from somewhere. This controls which kinds | ||
| 71 | of events get output to the telemetry stream. Each bit in the word | ||
| 72 | switches on the corresponding EventKind defined in eventcom.h. */ | ||
| 43 | extern unsigned long mps_lib_telemetry_control(void); | 73 | extern unsigned long mps_lib_telemetry_control(void); |
| 44 | 74 | ||
| 45 | 75 | ||
diff --git a/mps/code/mpsliban.c b/mps/code/mpsliban.c index deca56d630f..4ca88a7c7ed 100644 --- a/mps/code/mpsliban.c +++ b/mps/code/mpsliban.c | |||
| @@ -66,13 +66,30 @@ int mps_lib_fputs(const char *s, mps_lib_FILE *stream) | |||
| 66 | } | 66 | } |
| 67 | 67 | ||
| 68 | 68 | ||
| 69 | void mps_lib_assert_fail(const char *message) | 69 | static void mps_lib_assert_fail_default(const char *file, |
| 70 | unsigned line, | ||
| 71 | const char *condition) | ||
| 70 | { | 72 | { |
| 71 | fflush(stdout); /* synchronize */ | 73 | fflush(stdout); /* synchronize */ |
| 72 | fprintf(stderr, "\nMPS ASSERTION FAILURE: %s\n\nRECENT EVENTS:\n", message); | 74 | fprintf(stderr, "%s:%u: MPS ASSERTION FAILED: %s\n", file, line, condition); |
| 73 | EventDump((mps_lib_FILE *)stderr); | ||
| 74 | fflush(stderr); /* make sure the message is output */ | 75 | fflush(stderr); /* make sure the message is output */ |
| 75 | abort(); | 76 | ASSERT_ABORT(); /* see config.h */ |
| 77 | } | ||
| 78 | |||
| 79 | static mps_lib_assert_fail_t mps_lib_assert_handler = mps_lib_assert_fail_default; | ||
| 80 | |||
| 81 | void mps_lib_assert_fail(const char *file, | ||
| 82 | unsigned line, | ||
| 83 | const char *condition) | ||
| 84 | { | ||
| 85 | mps_lib_assert_handler(file, line, condition); | ||
| 86 | } | ||
| 87 | |||
| 88 | mps_lib_assert_fail_t mps_lib_assert_fail_install(mps_lib_assert_fail_t handler) | ||
| 89 | { | ||
| 90 | mps_lib_assert_fail_t old_handler = mps_lib_assert_handler; | ||
| 91 | mps_lib_assert_handler = handler; | ||
| 92 | return old_handler; | ||
| 76 | } | 93 | } |
| 77 | 94 | ||
| 78 | 95 | ||
| @@ -181,6 +198,7 @@ unsigned long mps_lib_telemetry_control(void) | |||
| 181 | if (striequal(word, #name)) \ | 198 | if (striequal(word, #name)) \ |
| 182 | mask |= (1ul << EventKind##name); | 199 | mask |= (1ul << EventKind##name); |
| 183 | EventKindENUM(TELEMATCH, X) | 200 | EventKindENUM(TELEMATCH, X) |
| 201 | #undef TELEMATCH | ||
| 184 | } | 202 | } |
| 185 | 203 | ||
| 186 | return mask; | 204 | return mask; |
diff --git a/mps/code/poolamc.c b/mps/code/poolamc.c index 823455abbd2..1558c9c18f2 100644 --- a/mps/code/poolamc.c +++ b/mps/code/poolamc.c | |||
| @@ -1146,6 +1146,7 @@ static Res AMCBufferFill(Addr *baseReturn, Addr *limitReturn, | |||
| 1146 | amcGen gen; | 1146 | amcGen gen; |
| 1147 | Serial genNr; | 1147 | Serial genNr; |
| 1148 | SegPrefStruct segPrefStruct; | 1148 | SegPrefStruct segPrefStruct; |
| 1149 | PoolGen pgen; | ||
| 1149 | 1150 | ||
| 1150 | AVERT(Pool, pool); | 1151 | AVERT(Pool, pool); |
| 1151 | amc = Pool2AMC(pool); | 1152 | amc = Pool2AMC(pool); |
| @@ -1161,6 +1162,8 @@ static Res AMCBufferFill(Addr *baseReturn, Addr *limitReturn, | |||
| 1161 | gen = amcBufGen(buffer); | 1162 | gen = amcBufGen(buffer); |
| 1162 | AVERT(amcGen, gen); | 1163 | AVERT(amcGen, gen); |
| 1163 | 1164 | ||
| 1165 | pgen = &gen->pgen; | ||
| 1166 | |||
| 1164 | /* Create and attach segment. The location of this segment is */ | 1167 | /* Create and attach segment. The location of this segment is */ |
| 1165 | /* expressed as a generation number. We rely on the arena to */ | 1168 | /* expressed as a generation number. We rely on the arena to */ |
| 1166 | /* organize locations appropriately. */ | 1169 | /* organize locations appropriately. */ |
| @@ -1168,7 +1171,7 @@ static Res AMCBufferFill(Addr *baseReturn, Addr *limitReturn, | |||
| 1168 | alignedSize = SizeAlignUp(size, ArenaAlign(arena)); | 1171 | alignedSize = SizeAlignUp(size, ArenaAlign(arena)); |
| 1169 | segPrefStruct = *SegPrefDefault(); | 1172 | segPrefStruct = *SegPrefDefault(); |
| 1170 | SegPrefExpress(&segPrefStruct, SegPrefCollected, NULL); | 1173 | SegPrefExpress(&segPrefStruct, SegPrefCollected, NULL); |
| 1171 | genNr = PoolGenNr(&gen->pgen); | 1174 | genNr = PoolGenNr(pgen); |
| 1172 | SegPrefExpress(&segPrefStruct, SegPrefGen, &genNr); | 1175 | SegPrefExpress(&segPrefStruct, SegPrefGen, &genNr); |
| 1173 | MPS_ARGS_BEGIN(args) { | 1176 | MPS_ARGS_BEGIN(args) { |
| 1174 | MPS_ARGS_ADD_FIELD(args, amcKeySegType, p, &gen->type); /* .segtype */ | 1177 | MPS_ARGS_ADD_FIELD(args, amcKeySegType, p, &gen->type); /* .segtype */ |
| @@ -1188,17 +1191,25 @@ static Res AMCBufferFill(Addr *baseReturn, Addr *limitReturn, | |||
| 1188 | 1191 | ||
| 1189 | /* Put the segment in the generation indicated by the buffer. */ | 1192 | /* Put the segment in the generation indicated by the buffer. */ |
| 1190 | ++gen->segs; | 1193 | ++gen->segs; |
| 1191 | gen->pgen.totalSize += alignedSize; | 1194 | pgen->totalSize += alignedSize; |
| 1192 | /* If ramping, don't count survivors in newSize. */ | 1195 | |
| 1193 | if(amc->rampMode != RampRAMPING | 1196 | /* If ramping, or if the buffer is a large proportion of the |
| 1194 | || buffer != amc->rampGen->forward | 1197 | * generation size, don't count it towards newSize. */ |
| 1195 | || gen != amc->rampGen) | 1198 | |
| 1199 | /* TODO: Find a better hack for this, which is really a work-around | ||
| 1200 | * for a nasty problem in the collection scheduling strategy. | ||
| 1201 | * See job003435. NB 2013-03-07. */ | ||
| 1202 | |||
| 1203 | if((size < (pgen->chain->gens[genNr].capacity * 1024.0 / 4.0)) && | ||
| 1204 | (amc->rampMode != RampRAMPING | ||
| 1205 | || buffer != amc->rampGen->forward | ||
| 1206 | || gen != amc->rampGen)) | ||
| 1196 | { | 1207 | { |
| 1197 | gen->pgen.newSize += alignedSize; | 1208 | pgen->newSize += alignedSize; |
| 1198 | } else { | 1209 | } else { |
| 1199 | Seg2amcSeg(seg)->new = FALSE; | 1210 | Seg2amcSeg(seg)->new = FALSE; |
| 1200 | } | 1211 | } |
| 1201 | PoolGenUpdateZones(&gen->pgen, seg); | 1212 | PoolGenUpdateZones(pgen, seg); |
| 1202 | 1213 | ||
| 1203 | base = SegBase(seg); | 1214 | base = SegBase(seg); |
| 1204 | *baseReturn = base; | 1215 | *baseReturn = base; |
diff --git a/mps/code/poolawl.c b/mps/code/poolawl.c index 68675722aa8..652a2ce52d3 100644 --- a/mps/code/poolawl.c +++ b/mps/code/poolawl.c | |||
| @@ -351,7 +351,7 @@ static Bool AWLCanTrySingleAccess(Arena arena, AWL awl, Seg seg, Addr addr) | |||
| 351 | if(AWLHaveTotalSALimit) { | 351 | if(AWLHaveTotalSALimit) { |
| 352 | if(awl->succAccesses >= AWLTotalSALimit) { | 352 | if(awl->succAccesses >= AWLTotalSALimit) { |
| 353 | STATISTIC(awl->stats.declined++); | 353 | STATISTIC(awl->stats.declined++); |
| 354 | EVENT2(AWLDeclineTotal, seg, awl->succAccesses); | 354 | EVENT2(AWLDeclineTotal, seg, (EventFU)awl->succAccesses); |
| 355 | return FALSE; /* decline single access because of total limit */ | 355 | return FALSE; /* decline single access because of total limit */ |
| 356 | } | 356 | } |
| 357 | } | 357 | } |
| @@ -362,7 +362,7 @@ static Bool AWLCanTrySingleAccess(Arena arena, AWL awl, Seg seg, Addr addr) | |||
| 362 | if(AWLHaveSegSALimit) { | 362 | if(AWLHaveSegSALimit) { |
| 363 | if(awlseg->singleAccesses >= AWLSegSALimit) { | 363 | if(awlseg->singleAccesses >= AWLSegSALimit) { |
| 364 | STATISTIC(awl->stats.declined++); | 364 | STATISTIC(awl->stats.declined++); |
| 365 | EVENT2(AWLDeclineSeg, seg, awlseg->singleAccesses); | 365 | EVENT2(AWLDeclineSeg, seg, (EventFU)awlseg->singleAccesses); |
| 366 | return FALSE; /* decline single access because of segment limit */ | 366 | return FALSE; /* decline single access because of segment limit */ |
| 367 | } | 367 | } |
| 368 | } | 368 | } |
diff --git a/mps/code/poolmfs.c b/mps/code/poolmfs.c index b26bdc9d05c..3f596c5d251 100644 --- a/mps/code/poolmfs.c +++ b/mps/code/poolmfs.c | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | /* poolmfs.c: MANUAL FIXED SMALL UNIT POOL | 1 | /* poolmfs.c: MANUAL FIXED SMALL UNIT POOL |
| 2 | * | 2 | * |
| 3 | * $Id$ | 3 | * $Id$ |
| 4 | * Copyright (c) 2001-2012 Ravenbrook Limited. See end of file for license. | 4 | * Copyright (c) 2001-2013 Ravenbrook Limited. See end of file for license. |
| 5 | * | 5 | * |
| 6 | * This is the implementation of the MFS pool class. | 6 | * This is the implementation of the MFS pool class. |
| 7 | * | 7 | * |
| @@ -111,7 +111,6 @@ static Res MFSInit(Pool pool, ArgList args) | |||
| 111 | extendBy = unitSize; | 111 | extendBy = unitSize; |
| 112 | } | 112 | } |
| 113 | 113 | ||
| 114 | AVER(unitSize >= UNIT_MIN); | ||
| 115 | AVER(extendBy >= unitSize); | 114 | AVER(extendBy >= unitSize); |
| 116 | 115 | ||
| 117 | mfs = PoolPoolMFS(pool); | 116 | mfs = PoolPoolMFS(pool); |
| @@ -119,6 +118,8 @@ static Res MFSInit(Pool pool, ArgList args) | |||
| 119 | 118 | ||
| 120 | mfs->unroundedUnitSize = unitSize; | 119 | mfs->unroundedUnitSize = unitSize; |
| 121 | 120 | ||
| 121 | if (unitSize < UNIT_MIN) | ||
| 122 | unitSize = UNIT_MIN; | ||
| 122 | unitSize = SizeAlignUp(unitSize, MPS_PF_ALIGN); | 123 | unitSize = SizeAlignUp(unitSize, MPS_PF_ALIGN); |
| 123 | extendBy = SizeAlignUp(extendBy, ArenaAlign(arena)); | 124 | extendBy = SizeAlignUp(extendBy, ArenaAlign(arena)); |
| 124 | 125 | ||
| @@ -336,7 +337,7 @@ Bool MFSCheck(MFS mfs) | |||
| 336 | 337 | ||
| 337 | /* C. COPYRIGHT AND LICENSE | 338 | /* C. COPYRIGHT AND LICENSE |
| 338 | * | 339 | * |
| 339 | * Copyright (C) 2001-2012 Ravenbrook Limited <http://www.ravenbrook.com/>. | 340 | * Copyright (C) 2001-2013 Ravenbrook Limited <http://www.ravenbrook.com/>. |
| 340 | * All rights reserved. This is an open source license. Contact | 341 | * All rights reserved. This is an open source license. Contact |
| 341 | * Ravenbrook for commercial licensing options. | 342 | * Ravenbrook for commercial licensing options. |
| 342 | * | 343 | * |
diff --git a/mps/code/poolncv.c b/mps/code/poolncv.c index ef0b67eb75e..3df734a3df8 100644 --- a/mps/code/poolncv.c +++ b/mps/code/poolncv.c | |||
| @@ -8,6 +8,7 @@ | |||
| 8 | #include "pooln.h" | 8 | #include "pooln.h" |
| 9 | #include "mpsavm.h" | 9 | #include "mpsavm.h" |
| 10 | #include "testlib.h" | 10 | #include "testlib.h" |
| 11 | #include "mpslib.h" | ||
| 11 | 12 | ||
| 12 | 13 | ||
| 13 | static void testit(ArenaClass class, ArgList args) | 14 | static void testit(ArenaClass class, ArgList args) |
diff --git a/mps/code/poolsnc.c b/mps/code/poolsnc.c index 85e822bb396..49cdceeb25d 100644 --- a/mps/code/poolsnc.c +++ b/mps/code/poolsnc.c | |||
| @@ -359,6 +359,17 @@ static Bool sncFindFreeSeg(Seg *segReturn, SNC snc, Size size) | |||
| 359 | } | 359 | } |
| 360 | 360 | ||
| 361 | 361 | ||
| 362 | /* SNCVarargs -- decode obsolete varargs */ | ||
| 363 | |||
| 364 | static void SNCVarargs(ArgStruct args[MPS_ARGS_MAX], va_list varargs) | ||
| 365 | { | ||
| 366 | args[0].key = MPS_KEY_FORMAT; | ||
| 367 | args[0].val.format = va_arg(varargs, Format); | ||
| 368 | args[1].key = MPS_KEY_ARGS_END; | ||
| 369 | AVER(ArgListCheck(args)); | ||
| 370 | } | ||
| 371 | |||
| 372 | |||
| 362 | /* SNCInit -- initialize an SNC pool */ | 373 | /* SNCInit -- initialize an SNC pool */ |
| 363 | 374 | ||
| 364 | static Res SNCInit(Pool pool, ArgList args) | 375 | static Res SNCInit(Pool pool, ArgList args) |
| @@ -664,6 +675,7 @@ DEFINE_POOL_CLASS(SNCPoolClass, this) | |||
| 664 | this->name = "SNC"; | 675 | this->name = "SNC"; |
| 665 | this->size = sizeof(SNCStruct); | 676 | this->size = sizeof(SNCStruct); |
| 666 | this->offset = offsetof(SNCStruct, poolStruct); | 677 | this->offset = offsetof(SNCStruct, poolStruct); |
| 678 | this->varargs = SNCVarargs; | ||
| 667 | this->init = SNCInit; | 679 | this->init = SNCInit; |
| 668 | this->finish = SNCFinish; | 680 | this->finish = SNCFinish; |
| 669 | this->bufferFill = SNCBufferFill; | 681 | this->bufferFill = SNCBufferFill; |
diff --git a/mps/code/protw3.c b/mps/code/protw3.c index 72235a763a5..37d886644f6 100644 --- a/mps/code/protw3.c +++ b/mps/code/protw3.c | |||
| @@ -44,7 +44,6 @@ void ProtSet(Addr base, Addr limit, AccessSet mode) | |||
| 44 | LONG WINAPI ProtSEHfilter(LPEXCEPTION_POINTERS info) | 44 | LONG WINAPI ProtSEHfilter(LPEXCEPTION_POINTERS info) |
| 45 | { | 45 | { |
| 46 | LPEXCEPTION_RECORD er; | 46 | LPEXCEPTION_RECORD er; |
| 47 | ULONG_PTR iswrite; | ||
| 48 | ULONG_PTR address; | 47 | ULONG_PTR address; |
| 49 | AccessSet mode; | 48 | AccessSet mode; |
| 50 | Addr base, limit; | 49 | Addr base, limit; |
| @@ -68,15 +67,22 @@ LONG WINAPI ProtSEHfilter(LPEXCEPTION_POINTERS info) | |||
| 68 | 67 | ||
| 69 | AVER(er->NumberParameters >= 2); | 68 | AVER(er->NumberParameters >= 2); |
| 70 | 69 | ||
| 71 | iswrite = er->ExceptionInformation[0]; /* 0 read; 1 write */ | 70 | switch (er->ExceptionInformation[0]) { |
| 72 | AVER(iswrite == 0 || iswrite == 1); | 71 | case 0: /* read */ |
| 73 | 72 | case 8: /* execute */ | |
| 74 | /* Pages cannot be made write-only, so an attempt to write must | ||
| 75 | * also cause a read-access if necessary */ | ||
| 76 | if(iswrite) | ||
| 77 | mode = AccessREAD | AccessWRITE; | ||
| 78 | else | ||
| 79 | mode = AccessREAD; | 73 | mode = AccessREAD; |
| 74 | break; | ||
| 75 | case 1: /* write */ | ||
| 76 | /* Pages cannot be made write-only, so an attempt to write must | ||
| 77 | also cause a read-access if necessary */ | ||
| 78 | mode = AccessREAD | AccessWRITE; | ||
| 79 | break; | ||
| 80 | default: | ||
| 81 | /* <http://msdn.microsoft.com/en-us/library/aa363082%28VS.85%29.aspx> */ | ||
| 82 | NOTREACHED; | ||
| 83 | mode = AccessREAD | AccessWRITE; | ||
| 84 | break; | ||
| 85 | } | ||
| 80 | 86 | ||
| 81 | address = er->ExceptionInformation[1]; | 87 | address = er->ExceptionInformation[1]; |
| 82 | 88 | ||
diff --git a/mps/code/qs.c b/mps/code/qs.c index 2bf41c4c8f4..13b2070da19 100644 --- a/mps/code/qs.c +++ b/mps/code/qs.c | |||
| @@ -23,6 +23,7 @@ | |||
| 23 | */ | 23 | */ |
| 24 | 24 | ||
| 25 | #include "testlib.h" | 25 | #include "testlib.h" |
| 26 | #include "mpslib.h" | ||
| 26 | #include "mps.h" | 27 | #include "mps.h" |
| 27 | #include "mpsavm.h" | 28 | #include "mpsavm.h" |
| 28 | #include "mpscamc.h" | 29 | #include "mpscamc.h" |
| @@ -528,6 +529,7 @@ int main(int argc, char *argv[]) | |||
| 528 | void *r; | 529 | void *r; |
| 529 | 530 | ||
| 530 | randomize(argc, argv); | 531 | randomize(argc, argv); |
| 532 | mps_lib_assert_fail_install(assert_die); | ||
| 531 | 533 | ||
| 532 | die(mps_arena_create(&arena, mps_arena_class_vm(), testArenaSIZE), | 534 | die(mps_arena_create(&arena, mps_arena_class_vm(), testArenaSIZE), |
| 533 | "mps_arena_create"); | 535 | "mps_arena_create"); |
diff --git a/mps/code/sacss.c b/mps/code/sacss.c index 6501a12e952..1241caff19c 100644 --- a/mps/code/sacss.c +++ b/mps/code/sacss.c | |||
| @@ -12,6 +12,7 @@ | |||
| 12 | #include "mps.h" | 12 | #include "mps.h" |
| 13 | 13 | ||
| 14 | #include "testlib.h" | 14 | #include "testlib.h" |
| 15 | #include "mpslib.h" | ||
| 15 | 16 | ||
| 16 | #include <stdio.h> | 17 | #include <stdio.h> |
| 17 | #include "mpstd.h" | 18 | #include "mpstd.h" |
| @@ -191,6 +192,7 @@ int main(int argc, char *argv[]) | |||
| 191 | mps_arena_t arena; | 192 | mps_arena_t arena; |
| 192 | 193 | ||
| 193 | randomize(argc, argv); | 194 | randomize(argc, argv); |
| 195 | mps_lib_assert_fail_install(assert_die); | ||
| 194 | 196 | ||
| 195 | die(mps_arena_create(&arena, mps_arena_class_vmnz(), testArenaSIZE), | 197 | die(mps_arena_create(&arena, mps_arena_class_vmnz(), testArenaSIZE), |
| 196 | "mps_arena_create"); | 198 | "mps_arena_create"); |
diff --git a/mps/code/segsmss.c b/mps/code/segsmss.c index 5f325a30e8f..f5f064cc59f 100644 --- a/mps/code/segsmss.c +++ b/mps/code/segsmss.c | |||
| @@ -16,6 +16,7 @@ | |||
| 16 | #include "fmtdy.h" | 16 | #include "fmtdy.h" |
| 17 | #include "fmtdytst.h" | 17 | #include "fmtdytst.h" |
| 18 | #include "testlib.h" | 18 | #include "testlib.h" |
| 19 | #include "mpslib.h" | ||
| 19 | #include "chain.h" | 20 | #include "chain.h" |
| 20 | #include "mpscams.h" | 21 | #include "mpscams.h" |
| 21 | #include "mpsavm.h" | 22 | #include "mpsavm.h" |
| @@ -855,6 +856,7 @@ int main(int argc, char *argv[]) | |||
| 855 | void *r; | 856 | void *r; |
| 856 | 857 | ||
| 857 | randomize(argc, argv); | 858 | randomize(argc, argv); |
| 859 | mps_lib_assert_fail_install(assert_die); | ||
| 858 | 860 | ||
| 859 | die(mps_arena_create(&arena, mps_arena_class_vm(), testArenaSIZE), | 861 | die(mps_arena_create(&arena, mps_arena_class_vm(), testArenaSIZE), |
| 860 | "arena_create"); | 862 | "arena_create"); |
diff --git a/mps/code/steptest.c b/mps/code/steptest.c index 61ec888801b..159ecda4096 100644 --- a/mps/code/steptest.c +++ b/mps/code/steptest.c | |||
| @@ -9,6 +9,7 @@ | |||
| 9 | #include "fmtdy.h" | 9 | #include "fmtdy.h" |
| 10 | #include "fmtdytst.h" | 10 | #include "fmtdytst.h" |
| 11 | #include "testlib.h" | 11 | #include "testlib.h" |
| 12 | #include "mpslib.h" | ||
| 12 | #include "mpm.h" | 13 | #include "mpm.h" |
| 13 | #include "mpscamc.h" | 14 | #include "mpscamc.h" |
| 14 | #include "mpsavm.h" | 15 | #include "mpsavm.h" |
| @@ -492,6 +493,7 @@ int main(int argc, char *argv[]) | |||
| 492 | prepare_clock(); | 493 | prepare_clock(); |
| 493 | 494 | ||
| 494 | randomize(argc, argv); | 495 | randomize(argc, argv); |
| 496 | mps_lib_assert_fail_install(assert_die); | ||
| 495 | 497 | ||
| 496 | while (test_number < TESTS) { | 498 | while (test_number < TESTS) { |
| 497 | mps_arena_t arena; | 499 | mps_arena_t arena; |
diff --git a/mps/code/teletest.c b/mps/code/teletest.c index b857494da73..5b74a2a8908 100644 --- a/mps/code/teletest.c +++ b/mps/code/teletest.c | |||
| @@ -10,6 +10,7 @@ | |||
| 10 | #include "mps.h" | 10 | #include "mps.h" |
| 11 | #include "mpsavm.h" | 11 | #include "mpsavm.h" |
| 12 | #include "testlib.h" | 12 | #include "testlib.h" |
| 13 | #include "mpslib.h" | ||
| 13 | 14 | ||
| 14 | #include <stdlib.h> | 15 | #include <stdlib.h> |
| 15 | 16 | ||
diff --git a/mps/code/testlib.c b/mps/code/testlib.c index b55e2876ac5..7634fcf181c 100644 --- a/mps/code/testlib.c +++ b/mps/code/testlib.c | |||
| @@ -327,6 +327,7 @@ void verror(const char *format, va_list args) | |||
| 327 | fflush(stdout); /* synchronize */ | 327 | fflush(stdout); /* synchronize */ |
| 328 | vfprintf(stderr, format, args); | 328 | vfprintf(stderr, format, args); |
| 329 | fprintf(stderr, "\n"); | 329 | fprintf(stderr, "\n"); |
| 330 | fflush(stderr); /* make sure the message is output */ | ||
| 330 | exit(1); | 331 | exit(1); |
| 331 | } | 332 | } |
| 332 | 333 | ||
| @@ -373,6 +374,15 @@ void cdie(int res, const char *s) | |||
| 373 | } | 374 | } |
| 374 | 375 | ||
| 375 | 376 | ||
| 377 | /* assert_die -- always die on assertion */ | ||
| 378 | |||
| 379 | void assert_die(const char *file, unsigned line, const char *condition) | ||
| 380 | { | ||
| 381 | error("%s:%u: MPS ASSERTION FAILED: %s\n", file, line, condition); | ||
| 382 | } | ||
| 383 | |||
| 384 | |||
| 385 | |||
| 376 | /* C. COPYRIGHT AND LICENSE | 386 | /* C. COPYRIGHT AND LICENSE |
| 377 | * | 387 | * |
| 378 | * Copyright (c) 2001-2013 Ravenbrook Limited <http://www.ravenbrook.com/>. | 388 | * Copyright (c) 2001-2013 Ravenbrook Limited <http://www.ravenbrook.com/>. |
diff --git a/mps/code/testlib.h b/mps/code/testlib.h index 1d0ee79289b..9df253d797e 100644 --- a/mps/code/testlib.h +++ b/mps/code/testlib.h | |||
| @@ -159,6 +159,15 @@ extern void die_expect(mps_res_t res, mps_res_t expected, const char *s); | |||
| 159 | extern void cdie(int res, const char *s); | 159 | extern void cdie(int res, const char *s); |
| 160 | 160 | ||
| 161 | 161 | ||
| 162 | /* assert_die -- always die on assertion | ||
| 163 | * | ||
| 164 | * The MPS assertion handler may not stop in the HOT variety, | ||
| 165 | * preventing tests from detecting defects. This one does. | ||
| 166 | */ | ||
| 167 | |||
| 168 | void assert_die(const char *file, unsigned line, const char *condition); | ||
| 169 | |||
| 170 | |||
| 162 | /* error, verror -- die with message */ | 171 | /* error, verror -- die with message */ |
| 163 | 172 | ||
| 164 | extern void error(const char *format, ...); | 173 | extern void error(const char *format, ...); |
diff --git a/mps/code/trace.c b/mps/code/trace.c index 9401696ba2d..041b136711f 100644 --- a/mps/code/trace.c +++ b/mps/code/trace.c | |||
| @@ -732,6 +732,8 @@ found: | |||
| 732 | arena->busyTraces = TraceSetAdd(arena->busyTraces, trace); | 732 | arena->busyTraces = TraceSetAdd(arena->busyTraces, trace); |
| 733 | AVERT(Trace, trace); | 733 | AVERT(Trace, trace); |
| 734 | 734 | ||
| 735 | EVENT3(TraceCreate, trace, arena, (EventFU)why); | ||
| 736 | |||
| 735 | /* We suspend the mutator threads so that the PoolWhiten methods */ | 737 | /* We suspend the mutator threads so that the PoolWhiten methods */ |
| 736 | /* can calculate white sets without the mutator allocating in */ | 738 | /* can calculate white sets without the mutator allocating in */ |
| 737 | /* buffers under our feet. */ | 739 | /* buffers under our feet. */ |
| @@ -1681,7 +1683,7 @@ Res TraceStart(Trace trace, double mortality, double finishingTime) | |||
| 1681 | AVER(finishingTime >= 0.0); | 1683 | AVER(finishingTime >= 0.0); |
| 1682 | 1684 | ||
| 1683 | arena = trace->arena; | 1685 | arena = trace->arena; |
| 1684 | 1686 | ||
| 1685 | /* From the already set up white set, derive a grey set. */ | 1687 | /* From the already set up white set, derive a grey set. */ |
| 1686 | 1688 | ||
| 1687 | /* @@@@ Instead of iterating over all the segments, we could */ | 1689 | /* @@@@ Instead of iterating over all the segments, we could */ |
| @@ -1789,6 +1791,11 @@ Res TraceStart(Trace trace, double mortality, double finishingTime) | |||
| 1789 | 1791 | ||
| 1790 | /* @@ DIAG for rate of scanning here. */ | 1792 | /* @@ DIAG for rate of scanning here. */ |
| 1791 | 1793 | ||
| 1794 | EVENT8(TraceStart, trace, mortality, finishingTime, | ||
| 1795 | trace->condemned, trace->notCondemned, | ||
| 1796 | trace->foundation, trace->white, | ||
| 1797 | trace->rate); | ||
| 1798 | |||
| 1792 | STATISTIC_STAT(EVENT7(TraceStatCondemn, trace, | 1799 | STATISTIC_STAT(EVENT7(TraceStatCondemn, trace, |
| 1793 | trace->condemned, trace->notCondemned, | 1800 | trace->condemned, trace->notCondemned, |
| 1794 | trace->foundation, trace->rate, | 1801 | trace->foundation, trace->rate, |
diff --git a/mps/code/walkt0.c b/mps/code/walkt0.c index 83170ec4929..3e8c8ce8293 100644 --- a/mps/code/walkt0.c +++ b/mps/code/walkt0.c | |||
| @@ -9,6 +9,7 @@ | |||
| 9 | #include "fmtdy.h" | 9 | #include "fmtdy.h" |
| 10 | #include "fmtdytst.h" | 10 | #include "fmtdytst.h" |
| 11 | #include "testlib.h" | 11 | #include "testlib.h" |
| 12 | #include "mpslib.h" | ||
| 12 | #include "mpscamc.h" | 13 | #include "mpscamc.h" |
| 13 | #include "mpsavm.h" | 14 | #include "mpsavm.h" |
| 14 | #include "mpstd.h" | 15 | #include "mpstd.h" |
| @@ -201,6 +202,7 @@ int main(int argc, char *argv[]) | |||
| 201 | void *r; | 202 | void *r; |
| 202 | 203 | ||
| 203 | randomize(argc, argv); | 204 | randomize(argc, argv); |
| 205 | mps_lib_assert_fail_install(assert_die); | ||
| 204 | 206 | ||
| 205 | die(mps_arena_create(&arena, mps_arena_class_vm(), | 207 | die(mps_arena_create(&arena, mps_arena_class_vm(), |
| 206 | testArenaSIZE), | 208 | testArenaSIZE), |
diff --git a/mps/code/zcoll.c b/mps/code/zcoll.c index ad2f272ceb4..66b4d268b8d 100644 --- a/mps/code/zcoll.c +++ b/mps/code/zcoll.c | |||
| @@ -55,6 +55,7 @@ | |||
| 55 | */ | 55 | */ |
| 56 | 56 | ||
| 57 | #include "testlib.h" | 57 | #include "testlib.h" |
| 58 | #include "mpslib.h" | ||
| 58 | #include "mps.h" | 59 | #include "mps.h" |
| 59 | #include "mpscamc.h" | 60 | #include "mpscamc.h" |
| 60 | #include "mpsavm.h" | 61 | #include "mpsavm.h" |
| @@ -838,6 +839,7 @@ static void testscriptA(const char *script) | |||
| 838 | int main(int argc, char *argv[]) | 839 | int main(int argc, char *argv[]) |
| 839 | { | 840 | { |
| 840 | randomize(argc, argv); | 841 | randomize(argc, argv); |
| 842 | mps_lib_assert_fail_install(assert_die); | ||
| 841 | 843 | ||
| 842 | /* 1<<19 == 524288 == 1/2 Mebibyte */ | 844 | /* 1<<19 == 524288 == 1/2 Mebibyte */ |
| 843 | /* 16<<20 == 16777216 == 16 Mebibyte */ | 845 | /* 16<<20 == 16777216 == 16 Mebibyte */ |
diff --git a/mps/code/zmess.c b/mps/code/zmess.c index cd4ef83dd7c..6a117eb985b 100644 --- a/mps/code/zmess.c +++ b/mps/code/zmess.c | |||
| @@ -100,6 +100,7 @@ | |||
| 100 | */ | 100 | */ |
| 101 | 101 | ||
| 102 | #include "testlib.h" | 102 | #include "testlib.h" |
| 103 | #include "mpslib.h" | ||
| 103 | #include "mps.h" | 104 | #include "mps.h" |
| 104 | #include "mpscamc.h" | 105 | #include "mpscamc.h" |
| 105 | #include "mpsavm.h" | 106 | #include "mpsavm.h" |
| @@ -490,6 +491,7 @@ int main(int argc, char *argv[]) | |||
| 490 | { | 491 | { |
| 491 | 492 | ||
| 492 | randomize(argc, argv); | 493 | randomize(argc, argv); |
| 494 | mps_lib_assert_fail_install(assert_die); | ||
| 493 | 495 | ||
| 494 | /* Scripts that should fail (uncomment to show failure is detected) */ | 496 | /* Scripts that should fail (uncomment to show failure is detected) */ |
| 495 | /*testscriptA("C.");*/ | 497 | /*testscriptA("C.");*/ |