Index: collector.c
===================================================================
RCS file: /var/lib/cvs/fundev/Sources/lib/run-time/collector.c,v
retrieving revision 1.3
diff -u -r1.3 collector.c
--- collector.c	3 Apr 2004 03:32:40 -0000	1.3
+++ collector.c	14 May 2004 17:51:24 -0000
@@ -98,6 +98,7 @@
 
 #include "mm.h"        /* Dylan Interface */
 #include "mps.h"        /* MPS Interface */
+#include "mpslib.h"
 #include "mpscmv.h"     /* MPS pool class MV */
 #include "mpscamc.h"    /* MPS pool class AMC */
 #include "mpsavm.h"     /* MPS arena class */
@@ -189,6 +190,18 @@
   report_runtime_error("\nDylan runtime error: ", message);
 }
 
+#define unused(param)   ((void)param)
+
+mps_bool_t dylan_check(mps_addr_t addr)
+{
+  assert(addr != 0);
+  assert(((mps_word_t)addr & (ALIGN-1)) == 0);
+  assert(dylan_wrapper_check((mps_word_t *)((mps_word_t *)addr)[0]));
+  /* .assert.unused: Asserts throw away their conditions */
+  /* in hot varieties, so UNUSED is needed. */
+  unused(addr);
+  return 1;
+}
 
 
 /* Default Error Handler
@@ -1055,6 +1068,7 @@
 void *MMReserveObject(size_t size, void *wrapper, gc_teb_t gc_teb)
 {
 #ifndef BOEHM_GC
+  assert(dylan_wrapper_check(wrapper));
 
   reserve_memory_for_object(size, wrapper, gc_teb, gc_teb_main_ap, main_handler, "MMReserveObject");
 
@@ -1086,6 +1100,7 @@
 void *MMReserveLeaf(size_t size, void *wrapper, gc_teb_t gc_teb)
 {
 #ifndef BOEHM_GC
+  assert(dylan_wrapper_check(wrapper));
 
   reserve_memory_for_object(size, wrapper, gc_teb, gc_teb_leaf_ap, leaf_handler, "MMReserveLeaf");
 
@@ -1123,6 +1138,7 @@
 void *MMReserveExactAWL(size_t size, void *wrapper, gc_teb_t gc_teb)
 {
 #ifndef BOEHM_GC
+  assert(dylan_wrapper_check(wrapper));
 
   reserve_memory_for_object(size, wrapper, gc_teb, gc_teb_exact_awl_ap, exact_awl_handler, "MMReserveExactAWL");
 
@@ -1160,6 +1176,7 @@
 void *MMReserveWeakAWL(size_t size, void *wrapper, gc_teb_t gc_teb)
 {
 #ifndef BOEHM_GC
+  assert(dylan_wrapper_check(wrapper));
 
   reserve_memory_for_object(size, wrapper, gc_teb, gc_teb_weak_awl_ap, weak_awl_handler, "MMReserveWeakAWL");
 
@@ -1240,6 +1257,7 @@
 
   assert(gc_teb->gc_teb_inside_tramp);
   assert(dylan_check(p));
+  assert(dylan_wrapper_check(p));
 
   res = mps_root_create_fmt(&root, arena, MPS_RANK_EXACT,
                              (mps_rm_t)0, fmt_A->scan, p, (char *)p + size);

Index: linux-support.c
===================================================================
RCS file: /var/lib/cvs/fundev/Sources/lib/run-time/linux-support.c,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 linux-support.c
--- linux-support.c	12 Mar 2004 00:08:54 -0000	1.1.1.1
+++ linux-support.c	14 May 2004 17:51:24 -0000
@@ -6,6 +6,11 @@
 #include <sys/time.h>
 #include <sys/resource.h>
 
+void mps_lib_abort(void)
+{ 
+  fflush(stdout);
+  abort();
+}
 
 /* Support for Dylan timer primitives */
 
Index: pentium-linux/GNUmakefile
===================================================================
RCS file: /var/lib/cvs/fundev/Sources/lib/run-time/pentium-linux/GNUmakefile,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 GNUmakefile
--- pentium-linux/GNUmakefile	12 Mar 2004 00:08:55 -0000	1.1.1.1
+++ pentium-linux/GNUmakefile	14 May 2004 17:51:24 -0000
@@ -7,7 +7,7 @@
 
 AS = as -L -o
 AR = ar -q
-CC = gcc -DGC_LINUX_THREADS=1 -D_REENTRANT=1 -O2 -g -DEXPIRATION=$(EXPIRATION)
+CFLAGS = -DGC_LINUX_THREADS=1 -D_REENTRANT=1 -O -g -DEXPIRATION=$(EXPIRATION) -I/home/housel/src/mps-kit/code
 
 OBJS	 = x86-linux-collector.o runtime.o x86-linux-threads-primitives.o linux-spy-interfaces.o linux-support.o
 
Index: pentium-linux/elf-linker.script
===================================================================
RCS file: /var/lib/cvs/fundev/Sources/lib/run-time/pentium-linux/elf-linker.script,v
retrieving revision 1.2
diff -u -r1.2 elf-linker.script
--- pentium-linux/elf-linker.script	7 May 2004 06:44:22 -0000	1.2
+++ pentium-linux/elf-linker.script	14 May 2004 17:51:24 -0000
@@ -44,7 +44,7 @@
 -lpthread -ldl -lc
 
 libgc
--lgc
+-lmmdw
 
 guilflags
 
Index: pentium-linux/mmdw.a
===================================================================
RCS file: /var/lib/cvs/fundev/Sources/lib/run-time/pentium-linux/mmdw.a,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 mmdw.a
Binary files /tmp/cvs2zwSNc and mmdw.a differ
Index: pentium-linux/mpsplan.a
===================================================================
RCS file: /var/lib/cvs/fundev/Sources/lib/run-time/pentium-linux/mpsplan.a,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 mpsplan.a
Binary files /tmp/cvsuiFrN0 and mpsplan.a differ
Index: pentium-linux/x86-linux-collector.c
===================================================================
RCS file: /var/lib/cvs/fundev/Sources/lib/run-time/pentium-linux/x86-linux-collector.c,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 x86-linux-collector.c
--- pentium-linux/x86-linux-collector.c	12 Mar 2004 00:09:07 -0000	1.1.1.1
+++ pentium-linux/x86-linux-collector.c	14 May 2004 17:52:14 -0000
@@ -9,7 +9,7 @@
 /* flag to select Linux */
 #define LINUX_PLATFORM
 #define X86_LINUX_PLATFORM
-#define BOEHM_GC
+//#define BOEHM_GC
 
 
 #include "collector.c"
Index: pentium-linux/x86-linux-exceptions.c
===================================================================
RCS file: /var/lib/cvs/fundev/Sources/lib/run-time/pentium-linux/x86-linux-exceptions.c,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 x86-linux-exceptions.c
--- pentium-linux/x86-linux-exceptions.c	12 Mar 2004 00:09:07 -0000	1.1.1.1
+++ pentium-linux/x86-linux-exceptions.c	14 May 2004 17:52:14 -0000
@@ -54,6 +54,7 @@
   struct sigaction newFPEHandler;
   struct sigaction newSEGVHandler;
 
+#if 0
   newFPEHandler.sa_handler = oldFPEHandler->sa_handler;
   sigemptyset(&newFPEHandler.sa_mask);
   newFPEHandler.sa_flags = 0;
@@ -63,13 +64,16 @@
   sigemptyset(&newSEGVHandler.sa_mask);
   newSEGVHandler.sa_flags = 0;
   sigaction(SIGSEGV, &newSEGVHandler, oldSEGVHandler);
+#endif
 }
 
 static void RemoveDylanExceptionHandlers (struct sigaction * oldFPEHandler,
 					  struct sigaction * oldSEGVHandler)
 {
+#if 0
   sigaction(SIGFPE, oldFPEHandler, NULL);
   sigaction(SIGSEGV, oldSEGVHandler, NULL);
+#endif
 }
 
 
Index: pentium-linux/x86-linux-threads-primitives.c
===================================================================
RCS file: /var/lib/cvs/fundev/Sources/lib/run-time/pentium-linux/x86-linux-threads-primitives.c,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 x86-linux-threads-primitives.c
--- pentium-linux/x86-linux-threads-primitives.c	12 Mar 2004 00:09:07 -0000	1.1.1.1
+++ pentium-linux/x86-linux-threads-primitives.c	14 May 2004 17:52:14 -0000
@@ -3,7 +3,7 @@
 /* flag to select Linux */
 #define LINUX_PLATFORM
 #define X86_LINUX_PLATFORM
-#define BOEHM_GC
+//#define BOEHM_GC
 
 
 #include "linux-threads-primitives.c"
