diff -ruN klic-3.003-2002-02-20e/include/klic/g_basic.h klic-3.003-2002-02-20f/include/klic/g_basic.h
--- klic-3.003-2002-02-20e/include/klic/g_basic.h	Sun Feb 17 15:14:05 2002
+++ klic-3.003-2002-02-20f/include/klic/g_basic.h	Wed Feb 20 15:15:22 2002
@@ -16,46 +16,30 @@
 extern const struct predicate name
 
 /* type judgement. */
-#define G_ISATOMIC(x) isatomic(x)
 #define G_ISCONS(x) iscons(x)
 #define G_ISFUNCTOR(x) isfunctor(x)
 #define G_ISREF(x) isref(x)
-#define G_ISSTRUCT(x) isstruct(x)
-#define G_FUNCTNOTCONS(x) functnotcons(x)
-#define G_ATOMICNOTREF(x) atomicnotref(x)
 #define G_ISINT(x) isint(x)
 #define G_ISSYM(x) issym(x)
 #define G_ISGOBJ(x) (isfunctor(x) && isref(functor_of(x)))
-#define G_EQATOM(x, y) eqatom(x, y)
 
 /* data manipulation macro. */
 #define G_FUNCTOR_OF(s) functor_of(s)
 #define G_ARG(s, k) arg(s, k)
 #define G_CAR_OF(x) car_of(x)
 #define G_CDR_OF(x) cdr_of(x)
-#define G_PCAR_OF(x) pcar_of(x)
-#define G_PCDR_OF(x) pcdr_of(x)
 #define G_DEREFONE(x) derefone(x)
 
 /* convertion. C->KLIC. */
 #define G_MAKEINT(n) makeint(n)
-#define G_MAKECINT(n) makecint(n)
-#define G_MAKESYM(n) makesym(n)
 #define G_MAKEREF(x) makeref(x)
-#define G_MAKEATOMIC(adr) makeatomic(adr) /* for non-heap addr */
-#define G_MAKEPF(x) makepf(x) /* for principal functors */
 #define G_MAKECONS(x) makecons(x)
 #define G_MAKEFUNCTOR(x) makefunctor(x)
 
 /* convertion. KLIC->C. */
 #define G_INTVAL(x) intval(x)
 #define G_SYMVAL(x) symval(x)
-#define G_REFP(x) refp(x)
-#define G_CONSP(x) consp(x)
 #define G_FUNCTORP(x) functorp(x)
-#define G_GOALP(x) goalp(x)
-#define G_SUSPP(x) suspp(x)
-#define G_PREDP(x) predp(x)
 
 #define G_functor(fa)  CONCATENATE(functor_, fa)
 #define G_atom(fa)     CONCATENATE(atom_, fa)
diff -ruN klic-3.003-2002-02-20e/include/klic/struct.h klic-3.003-2002-02-20f/include/klic/struct.h
--- klic-3.003-2002-02-20e/include/klic/struct.h	Wed Feb 20 13:22:46 2002
+++ klic-3.003-2002-02-20f/include/klic/struct.h	Wed Feb 20 15:48:34 2002
@@ -51,10 +51,6 @@
      ..1110: Reserved
 ****************************************/
 
-#define VALUEMASK	(~3L)
-#define ADDRESSMASK	(~3L)
-
-#define PTAGBITS	2L
 #define PTAGMASK	0x3
 #define	VARREF		0x0
 #define CONS		0x1
@@ -66,7 +62,6 @@
 #define ATOMNOTREF	0x2
 
 #define ptagof(x)	((unsigned long)(x) & PTAGMASK)
-#define addressof(x)	((unsigned long)(x) & ADDRESSMASK)
 
 #define isatomic(x)	(ptagof(x) == ATOMIC)
 #define iscons(x)	(ptagof(x) == CONS)
@@ -108,9 +103,6 @@
 #define car_of(x)		(consp(x)->car)
 #define cdr_of(x)		(consp(x)->cdr)
 
-#define pcar_of(x)              (makeref(consp(x)+1))
-#define pcdr_of(x)              (makeref(consp(x)))
-
 /****************************************
   GOAL MANAGEMENT STRUCTURES
 ****************************************/
@@ -160,8 +152,6 @@
 #define refp(x)		((q*) ((unsigned long)(x) - VARREF))
 #define consp(x)	((struct cons*) ((unsigned long)(x) - CONS))
 #define functorp(x)	((struct functor*) ((unsigned long)(x) - FUNCTOR))
-#define goalp(x)	((struct goalrec*) ((unsigned long)(x) - ATOMIC))
-#define predp(x)	((struct predicate*) ((unsigned long)(x) - ATOMIC))
 
 /* Variables */
 
@@ -174,17 +164,11 @@
 #define symval(x)	((unsigned long)(x) >> ATAGBITS)
 
 #define makeint(n)	((q)(((long)(n) << ATAGBITS) + INT))
-#define makecint(n)	((long)makeint(n))
 #define makesym(n)	((q)(((unsigned long)(n) << ATAGBITS) + SYM))
 
-#define eqatom(x, y)	((x) == (y))
-
 /* for non-heap addr */
 #define makeatomic(adr) ((q)((unsigned long)(adr) + ATOMIC))
 
-/* for principal functors */
-#define makepf(x)	makesym(x)
-
 /* Conses */
 #define makecons(x)	((q)((unsigned long)(x) + CONS))
 
@@ -192,31 +176,6 @@
 
 #define makefunctor(x) 	((q)((unsigned long)(x) + FUNCTOR))
 
-Extern struct funcdesc {
-  q name;			/* atom */
-  unsigned long arity;		/* number of args */
-} functab[1];
-
-/* Structures for linkage */
-
-struct ext_atom {
-  char* name;			/* name string */
-  q value;			/* its value with symbol tag */
-};
-
-struct ext_funct {
-  char* name;			/* name string */
-  long arity;			/* arity */
-  q value;			/* functor id with atomic tag */
-};
-
-struct ext_pred {
-  char* module;			/* module name string */
-  char* name;			/* predicate name */
-  long arity;			/* arity */
-  q value;			/* pred id with atomic tag */
-};
-
 /* Special Atoms */
 
 #define NILATOM		(makesym(0))
@@ -228,7 +187,6 @@
 #define resumed_goals	(glbl->resumed_goals0)
 #define prioq		(glbl->prioq0)
 #define current_prio	(glbl->current_prio0)
-#define top_prio	(glbl->top_prio0)
 #define heaptop		(glbl->heaptop0)
 #define heaplimit	(glbl->heaplimit0)
 #define real_heaplimit	(glbl->real_heaplimit0)
@@ -242,21 +200,16 @@
 #define gcstack		(glbl->gcstack0)
 #define gcsp		(glbl->gcsp0)
 #define gcmax		(glbl->gcmax0)
-#define gcstack_size	(glbl->gcstack_size0)
 #define interrupt_off   (glbl->interrupt_off0)
-#define interrupt_qp    (glbl->interrupt_qp0)
-#define program_name	(glbl->program_name0)
 #define command_argc	(glbl->command_argc0)
 #define command_argv	(glbl->command_argv0)
 #define suspensions	(glbl->suspensions0)
 #define	resumes		(glbl->resumes0)
-#define copied_susp	(glbl->copied_susp0)
 #define cum_susps	(glbl->cum_susps0)
 #define	cum_resumps	(glbl->cum_resumps0)
 #define suspended_goal_list (glbl->suspended_goal_list0)
 #define postmortem_pred (glbl->postmortem_pred0)
 #define postmortem_args (glbl->postmortem_args0)
-#define generic_argc	(glbl->generic_argc0)
 #define generic_arg	(glbl->generic_arg0)
 #define reasons		(glbl->reasons0)
 #if ( defined(DIST) && defined(USE_REDUCTION_COUNT) )
@@ -271,7 +224,6 @@
   struct goalrec* current_queue0; /* queue for current priority */
   struct goalrec* resumed_goals0; /* spontaneous goals during reduction */
   unsigned long current_prio0;	/* current priority */
-  unsigned long top_prio0;	/* highest priority with ready goal */
   /* The rest are not accessed as often */
   struct prioqrec prioq0;	/* priority queue head */
   q* heaptop0;			/* top of the current heap */
@@ -284,9 +236,7 @@
   q** gcstack0;
   q** gcsp0;
   q** gcmax0;
-  unsigned long gcstack_size0;
   volatile long interrupt_off0;
-  struct goalrec* interrupt_qp0;
 
   struct {
    /* parallel comm Imp. */
@@ -308,14 +258,12 @@
     } aux;
   } par;
 
-  char* program_name0;
   int command_argc0;
   char** command_argv0;
-  unsigned long suspensions0, resumes0, copied_susp0, cum_susps0, cum_resumps0;
+  unsigned long suspensions0, resumes0, cum_susps0, cum_resumps0;
   struct suspended_goal_rec* suspended_goal_list0;
   const struct predicate* postmortem_pred0;
   q postmortem_args0;
-  long generic_argc0;		/* number of arguments to generic methods */
   q generic_arg0[MAXGENERICARGS]; /* arguments of generic methods */
   q reasons0[MAXSUSPENSION];	/* suspension reasons */
 #if ( defined(DIST) && defined(USE_REDUCTION_COUNT) )
diff -ruN klic-3.003-2002-02-20e/runtime/gc.c klic-3.003-2002-02-20f/runtime/gc.c
--- klic-3.003-2002-02-20e/runtime/gc.c	Wed Feb 20 10:20:16 2002
+++ klic-3.003-2002-02-20f/runtime/gc.c	Wed Feb 20 15:43:24 2002
@@ -44,6 +44,9 @@
 
 extern struct goalrec goal_queue_tail;
 
+static unsigned long gcstack_size;
+static unsigned long copied_susp;
+
 static struct goalrec* collect_garbage(struct goalrec* qp);
 
 static Inline void
diff -ruN klic-3.003-2002-02-20e/runtime/kmain.c klic-3.003-2002-02-20f/runtime/kmain.c
--- klic-3.003-2002-02-20e/runtime/kmain.c	Tue Feb 19 15:17:45 2002
+++ klic-3.003-2002-02-20f/runtime/kmain.c	Wed Feb 20 15:44:56 2002
@@ -183,6 +183,7 @@
      char **argv;
 {
   declare_globals;
+  char* program_name;
 #ifdef USESIG
   void init_klic_signal_handling();
 #endif
