gcl-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gcl-devel] 2.5.4 candidate


From: Camm Maguire
Subject: [Gcl-devel] 2.5.4 candidate
Date: 17 Jul 2003 14:19:35 -0400
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2

Greetings!  I've setup a Version_2_5_4 tag with what I think are the
bugfix only changes from cvs head against 2.5.3.  Please check it out
-- i.e. co or export the source with -r Version_2_5_4, and run your
favorite stuff against it.  I've included below the diff against
2.5.3, as well as the diff against CVS head.

BTW, I've noticed with great satisfaction that a number of
contributors are checking in changes against the core files in o/,
etc.  This is good, as I think GCL needs a diversity of contributors
to thrive.  Some of the patches are quite large though, and difficult
to sort through, consisting of many changes in whitespace, etc.  This
makes it difficult for me to read and certify for release.  May I
please suggest that patches against these core files, and which are
not escaped with arch-specific ifdef's, not touch the formatting, and
be as terse as possible.  We should prettify the code in one step at a
future point, IMHO.  It does seem like some of the changes which I
have not incorporated into 2.5.4 remove global variable
initializations, e.g. in gbc.c and main.c -- why is this?  Mike, I
think these are your mods?

I will also consider any ansi fixes which are immediate in the bugfix
category for consideration in 2.5.4.

Take care,

=============================================================================
against HEAD
=============================================================================
Index: h/gclincl.h.in
===================================================================
RCS file: /cvsroot/gcl/gcl/h/gclincl.h.in,v
retrieving revision 1.28
retrieving revision 1.27
diff -u -r1.28 -r1.27
--- h/gclincl.h.in      1 Jul 2003 07:32:16 -0000       1.28
+++ h/gclincl.h.in      26 Feb 2003 23:26:41 -0000      1.27
@@ -182,8 +182,6 @@
 
 #undef HAVE_JAPI_H
 
-#undef HAVE_XDR
-
 /* The number of bytes in a long *.  */
 #undef SIZEOF_LONG_P
 
Index: h/mingw.defs
===================================================================
RCS file: /cvsroot/gcl/gcl/h/mingw.defs,v
retrieving revision 1.29
retrieving revision 1.26
diff -u -r1.29 -r1.26
--- h/mingw.defs        7 Jul 2003 04:40:46 -0000       1.29
+++ h/mingw.defs        18 Feb 2003 02:32:03 -0000      1.26
@@ -7,7 +7,7 @@
 SHELL        = sh
 
 OFLAG       = -O 
-LIBS       += -lws2_32
+LIBS       += -lwsock32
 LIBC        =
 
 ODIR_DEBUG   = -g
@@ -20,8 +20,8 @@
 # MPIOBJS      = $(MPIDIR)/mpi_glue.o
 # LIBS        += -L$(MPICHDIR)/lib -lmpich
 
-CFLAGS       = -mms-bitfields -Wall -fwritable-strings -DVOL=volatile 
-fsigned-char $(PROCESSOR_FLAGS) $(ODIR_DEBUG) -I$(GCLDIR)/o 
-FINAL_CFLAGS = -mms-bitfields -Wall -fwritable-strings -DVOL=volatile 
-fsigned-char $(PROCESSOR_FLAGS) $(ODIR_DEBUG)
+CFLAGS       = -Wall -fwritable-strings -DVOL=volatile -fsigned-char 
$(PROCESSOR_FLAGS) -I$(GCLDIR)/o 
+FINAL_CFLAGS = -Wall -fwritable-strings -DVOL=volatile -fsigned-char 
$(PROCESSOR_FLAGS)
 O3FLAGS      = -O2 -fomit-frame-pointer
 O2FLAGS      = -O
 
@@ -29,6 +29,13 @@
 
 UNIX_SAVE_DEP  = unexnt.c
 
+# CFLAGS         = -g -Wall -DVOL=volatile -fsigned-char -fwritable-strings 
$(PROCESSOR_FLAGS) -I$(GCLDIR)/o 
+# FINAL_CFLAGS   = -g -Wall -DVOL=volatile -fsigned-char -fwritable-strings 
$(PROCESSOR_FLAGS)
+# O3FLAGS        = 
+# O2FLAGS        = 
+
+#CC             = ${CROSS_PREFIX}gcc
+
 AS             = ${CROSS_PREFIX}as
 AR             = ${CROSS_PREFIX}ar q
 RANLIB         = ${CROSS_PREFIX}ranlib
@@ -79,11 +86,10 @@
 TK_LISP_LIB=
 TCL_EXES=
 
-# Don't do dvi on Windows
-GCL_DVI=
+# Don't do dvi and html
 
-# Use MSYS makeinfo
-HTML_CMD=makeinfo --html --no-split
+GCL_DVI=
+GCL_HTML=
 
 #
 # End h/mingw.defs
Index: h/mingw.h
===================================================================
RCS file: /cvsroot/gcl/gcl/h/mingw.h,v
retrieving revision 1.19
retrieving revision 1.17
diff -u -r1.19 -r1.17
--- h/mingw.h   11 Jul 2003 06:30:06 -0000      1.19
+++ h/mingw.h   27 Feb 2003 00:32:59 -0000      1.17
@@ -45,15 +45,7 @@
 
 #undef DBEGIN_TY
 #define DBEGIN_TY unsigned int
-extern DBEGIN_TY _dbegin;
-
-#define AV
-#ifdef AV
-#  define _stacktop cs_limit
-#  define _stackbottom cs_org
-#else
-extern DBEGIN_TY _stacktop, _stackbottom;
-#endif
+extern DBEGIN_TY _stacktop, _stackbottom, _dbegin;
 
 /* define if there is no _cleanup,   do here what needs
    to be done before calling unexec
@@ -111,16 +103,10 @@
    if the pointe/r is on the C stack or the 0 pointer
    in winnt our heap starts at DBEGIN
    */
-#ifdef AV
-#define NULL_OR_ON_C_STACK(y) \
-    ((y) == 0 || \
-    ((y) > _stacktop && (y) < _stackbottom))     
-#else
 #define NULL_OR_ON_C_STACK(y) \
     (((unsigned int)(y)) == 0 || \
     (((unsigned int)(y)) > _stacktop && ((unsigned int)(y)) < _stackbottom))   
  
-#endif
-
+      
 #if defined ( IN_FILE ) || defined ( IN_SOCKETS )
 #  define HAVE_NSOCKET
 #endif
@@ -194,6 +180,7 @@
        if (core_end != (sbrk(PAGESIZE*(n - m))))
 
 #define USE_INTERNAL_REAL_TIME_FOR_RUNTIME
+#define SHARP_EQ_CONTEXT_SIZE 1024
 
 /* Use this pending test in configure */
 #define NO_MKSTEMP
Index: o/alloc.c
===================================================================
RCS file: /cvsroot/gcl/gcl/o/alloc.c,v
retrieving revision 1.20
retrieving revision 1.19
diff -u -r1.20 -r1.19
--- o/alloc.c   11 Jul 2003 06:33:53 -0000      1.20
+++ o/alloc.c   1 Mar 2003 22:37:37 -0000       1.19
@@ -62,7 +62,7 @@
 #endif /* DEBUG_SBRK */
 
 long real_maxpage = MAXPAGE;
-long new_holepage = 0;
+long new_holepage;
 
 #define        available_pages \
        (real_maxpage-page(heap_end)-new_holepage-2*nrbpage-real_maxpage/32)
Index: o/funlink.c
===================================================================
RCS file: /cvsroot/gcl/gcl/o/funlink.c,v
retrieving revision 1.17
retrieving revision 1.16
diff -u -r1.17 -r1.16
--- o/funlink.c 7 Jul 2003 04:53:14 -0000       1.17
+++ o/funlink.c 1 Mar 2003 22:37:37 -0000       1.16
@@ -10,8 +10,6 @@
 #include "sfun_argd.h"
 #include "page.h"
 
-#undef DO_FUNLINK_DEBUG
-
 static int
 clean_link_array(object *,object *);
 
@@ -27,106 +25,65 @@
 /* cleanup link */
 void
 call_or_link(object sym, void **link )
-{
-    object fun;
-    fun = sym->s.s_gfdef;
-#ifdef DO_FUNLINK_DEBUG
-    fprintf ( stderr, "call_or_link: fun %x START\n", fun );
-#endif 
-    if (fun == OBJNULL) {
-        FEinvalid_function(sym);
-#ifdef DO_FUNLINK_DEBUG
-        fprintf ( stderr, "call_or_link: fun %x ERROR END\n", fun );
-#endif 
-        return;
-    }
-    if ( type_of ( fun ) == t_cclosure && (fun->cc.cc_turbo) ) {
-        if ( Rset ==0 ) {
-            MMccall ( fun, fun->cc.cc_turbo );
-        } else {
-            (*(fun)->cf.cf_self)(fun->cc.cc_turbo);
-        }
-#ifdef DO_FUNLINK_DEBUG
-        fprintf ( stderr, "call_or_link: fun %x END 1\n", fun );
+{object fun;
+ fun = sym->s.s_gfdef;
+#if 0
+ fprintf ( stderr, "call_or_link: fun %x\n", fun );
 #endif 
-    return;
-    }
-    if ( Rset == 0 ) {
-        funcall(fun);
-    } else {
-        if ( type_of(fun) == t_cfun ) {
-            (void) vpush_extend ( link,sLAlink_arrayA->s.s_dbind );
-            (void) vpush_extend ( *link,sLAlink_arrayA->s.s_dbind );    
-            *link = (void *) (fun->cf.cf_self);
+ if (fun == OBJNULL) {FEinvalid_function(sym); return;}
+ if (type_of(fun) == t_cclosure
+     && (fun->cc.cc_turbo))
+   {if (Rset==0) {MMccall(fun, fun->cc.cc_turbo);}
+    else (*(fun)->cf.cf_self)(fun->cc.cc_turbo);
+    return;}
+ if (Rset==0) funcall(fun);
+   else
+   if (type_of(fun) == t_cfun)
+       { (void) vpush_extend( link,sLAlink_arrayA->s.s_dbind);
+         (void) vpush_extend( *link,sLAlink_arrayA->s.s_dbind);         
+         *link = (void *) (fun->cf.cf_self);
 #if 0
-            fprintf ( stderr, "call_or_link: cf %x\n", fun->cf );
-            fprintf ( stderr, "call_or_link: cf_name %x\n", fun->cf.cf_name );
-            fprintf ( stderr, "call_or_link: cf_data %x\n", fun->cf.cf_data );
-            fprintf ( stderr, "call_or_link: cf_self %x\n", fun->cf.cf_self );
-            fflush ( stderr );
-            fprintf ( stderr, "call_or_link: staddr %x\n", 
fun->cf.cf_name->st.st_self );
-            fprintf ( stderr, "call_or_link: ststring %s\n", 
fun->cf.cf_name->st.st_self );
-            fflush ( stderr );
+         fprintf ( stderr, "call_or_link: cf %x\n", fun->cf );
+         fprintf ( stderr, "call_or_link: cf_name %x\n", fun->cf.cf_name );
+         fprintf ( stderr, "call_or_link: cf_data %x\n", fun->cf.cf_data );
+         fprintf ( stderr, "call_or_link: cf_self %x\n", fun->cf.cf_self );
+         fflush ( stderr );
+         fprintf ( stderr, "call_or_link: staddr %x\n", 
fun->cf.cf_name->st.st_self );
+         fprintf ( stderr, "call_or_link: ststring %s\n", 
fun->cf.cf_name->st.st_self );
+         fflush ( stderr );
 #endif         
-            ( *(void (*)()) (fun->cf.cf_self)) ();
-        } else {
-            funcall(fun);
-        }
-    }
-#ifdef DO_FUNLINK_DEBUG
-    fprintf ( stderr, "call_or_link: fun %x END 2\n", fun );
-#endif 
-}
+        (*(void (*)())(fun->cf.cf_self))();
+       }
+   else funcall(fun);}
 
 void
-call_or_link_closure ( object sym, void **link, void **ptr )
-{
-    object fun;
-#ifdef DO_FUNLINK_DEBUG
-    fprintf ( stderr, "call_or_link_closure: fun %x START\n", fun );
-#endif 
-    fun = sym->s.s_gfdef;
-    if (fun == OBJNULL) {
-#ifdef DO_FUNLINK_DEBUG
-        fprintf ( stderr, "call_or_link: fun %x ERROR END\n", fun );
-#endif 
-        FEinvalid_function(sym);
-        return;
-    }
-    if ( type_of ( fun ) == t_cclosure && ( fun->cc.cc_turbo ) ) {
-        if ( Rset ) {
-            (void) vpush_extend ( link, sLAlink_arrayA->s.s_dbind );
-            (void) vpush_extend ( *link, sLAlink_arrayA->s.s_dbind );
-            *ptr = (void *) ( fun->cc.cc_turbo );
-            *link = (void *) ( fun->cf.cf_self );
-            MMccall (fun, fun->cc.cc_turbo);
-        } else {
-            MMccall ( fun, fun->cc.cc_turbo );
-        }
-#ifdef DO_FUNLINK_DEBUG
-        fprintf ( stderr, "call_or_link: fun %x END 1\n", fun );
-#endif 
-        return;
-    }
-    if ( Rset == 0 ) {
-        funcall ( fun );
-    } else {
-        /* can't do this if invoking foo(a) is illegal when foo is not defined
-           to take any arguments.   In the majority of C's this is legal */
-        
-        if ( type_of ( fun ) == t_cfun ) {
-            (void) vpush_extend ( link, sLAlink_arrayA->s.s_dbind );
-            (void) vpush_extend ( *link, sLAlink_arrayA->s.s_dbind );   
-            *link = (void *) (fun->cf.cf_self);
-            ( *(void (*)()) (fun->cf.cf_self) ) ();
-        } else {
-            funcall(fun);
-        }
-    }
-#ifdef DO_FUNLINK_DEBUG
-    fprintf ( stderr, "call_or_link: fun %x END 2\n", fun );
-#endif 
-}
+call_or_link_closure(object sym, void **link, void **ptr)
+{object fun;
+ fun = sym->s.s_gfdef;
+ if (fun == OBJNULL) {FEinvalid_function(sym); return;}
+ if (type_of(fun) == t_cclosure
+     && (fun->cc.cc_turbo))
+   {if (Rset) {
+     (void) vpush_extend( link,sLAlink_arrayA->s.s_dbind);
+     (void) vpush_extend( *link,sLAlink_arrayA->s.s_dbind);
+     *ptr = (void *)(fun->cc.cc_turbo);
+     *link = (void *) (fun->cf.cf_self);
+     MMccall(fun, fun->cc.cc_turbo);}
+    else
+      {MMccall(fun, fun->cc.cc_turbo);}
+    return;}
+ if (Rset==0) funcall(fun);
+   else
+     /* can't do this if invoking foo(a) is illegal when foo is not defined
+       to take any arguments.   In the majority of C's this is legal */
+     
+   if (type_of(fun) == t_cfun)
+       { (void) vpush_extend( link,sLAlink_arrayA->s.s_dbind);
+         (void) vpush_extend( *link,sLAlink_arrayA->s.s_dbind);         
+         *link = (void *) (fun->cf.cf_self);
+        (*(void (*)())(fun->cf.cf_self))();
+       }
+   else funcall(fun);}
 
 /* for pushing item into an array, where item is an address if array-type = t
 or a fixnum if array-type = fixnum */
@@ -134,11 +91,7 @@
 #define SET_ITEM(ar,ind,val) (*((object *)(&((ar)->ust.ust_self[ind]))))= val
 static int     
 vpush_extend(void *item, object ar)
-{ register int ind;
-#ifdef DO_FUNLINK_DEBUG
- fprintf ( stderr, "vpush_extend: item %x, ar %x\n", item, ar );
-#endif 
- ind = ar->ust.ust_fillp;  
+{ register int ind = ar->ust.ust_fillp;
  AGAIN:
   if (ind < ar->ust.ust_dim)
    {SET_ITEM(ar,ind,item);
@@ -153,11 +106,7 @@
       ar->ust.ust_dim=newdim;
       ar->ust.ust_self=newself;
       goto AGAIN;
-    }
-#ifdef DO_FUNLINK_DEBUG
- fprintf ( stderr, "vpush_extend: item %x, ar %x END\n", item, ar );
-#endif 
-}
+    }}
 
 
 /* if we unlink a bunch of functions, this will mean there are some
@@ -168,9 +117,6 @@
 static void
 delete_link(void *address, object link_ar)
 {object *ar,*ar_end,*p;
-#ifdef DO_FUNLINK_DEBUG
- fprintf ( stderr, "delete_link: address %x, link_ar %x START\n", address, 
link_ar );
-#endif 
  p=0;
  ar = link_ar->v.v_self;
  ar_end = (object *)&(link_ar->ust.ust_self[link_ar->v.v_fillp]);
@@ -183,11 +129,7 @@
      ar=ar+2;}
  if (number_unlinked > 40)
    link_ar->v.v_fillp=
-     clean_link_array(link_ar->v.v_self,ar_end);
-#ifdef DO_FUNLINK_DEBUG
- fprintf ( stderr, "delete_link: address %x, link_ar %x END\n", address, 
link_ar );
-#endif 
-}
+     clean_link_array(link_ar->v.v_self,ar_end); }
 
 
 
DEFUN_NEW("USE-FAST-LINKS",object,fSuse_fast_links,SI,1,2,NONE,OO,OO,OO,OO,(object
 flag,...),
@@ -277,9 +219,6 @@
 clean_link_array(object *ar, object *ar_end)
 {int i=0;
  object *orig;
-#ifdef DO_FUNLINK_DEBUG
- fprintf ( stderr, "clean_link_array: ar %x, ar_end %x START\n", ar, ar_end );
-#endif 
  orig=ar;
  number_unlinked=0;
   while( ar<ar_end)
@@ -289,9 +228,6 @@
        }
    else ar=ar+2;       
     }
-#ifdef DO_FUNLINK_DEBUG
- fprintf ( stderr, "clean_link_array: ar %x, ar_end %x END\n", ar, ar_end );
-#endif 
  return(i*sizeof(object *));
  }
 
@@ -310,9 +246,6 @@
 object
 c_apply_n(object (*fn)(), int n, object *x)
 {object res=Cnil;
-#ifdef DO_FUNLINK_DEBUG
-    fprintf ( stderr, "c_apply_n: n %d, x %x START\n", n, x );
-#endif 
  switch(n){
     case 0:  res=LCAST(fn)();break;
     case 1:  res=LCAST(fn)(x[0]);break;
@@ -634,9 +567,6 @@
   default: FEerror("Exceeded call-arguments-limit ",0);
   } 
 
-#ifdef DO_FUNLINK_DEBUG
-    fprintf ( stderr, "c_apply_n: res %x END\n", n, res );
-#endif 
  return res;
 }
   
@@ -648,9 +578,6 @@
 call_proc(object sym, void **link, int argd, va_list ll)
 {object fun;
  int nargs;
-#ifdef DO_FUNLINK_DEBUG
-    fprintf ( stderr, "call_proc: sym %x START\n", sym );
-#endif 
  check_type_symbol(&sym);
  fun=sym->s.s_gfdef;
  if (fun && (type_of(fun)==t_sfun
@@ -778,9 +705,6 @@
 call_proc_new(object sym, void **link, int argd, object first, va_list ll)
 {object fun;
  int nargs;
-#ifdef DO_FUNLINK_DEBUG
-    fprintf ( stderr, "call_proc_new: sym %x START\n", sym );
-#endif 
  check_type_symbol(&sym);
  fun=sym->s.s_gfdef;
  if (fun && (type_of(fun)==t_sfun
Index: o/gbc.c
===================================================================
RCS file: /cvsroot/gcl/gcl/o/gbc.c,v
retrieving revision 1.14
retrieving revision 1.13
diff -u -r1.14 -r1.13
--- o/gbc.c     11 Jul 2003 06:33:53 -0000      1.14
+++ o/gbc.c     15 Feb 2003 00:38:28 -0000      1.13
@@ -93,21 +93,28 @@
 #endif
 
 
-static int gc_time         = -1;
-static int gc_start        = 0;
-int sgc_enabled            = 0;
-int first_protectable_page = 0;
-
+bool saving_system;
+static int gc_time = -1;
+static int gc_start = 0;
 int runtime(void);
+int sgc_enabled=0;
+int  first_protectable_page =0;
+
 
 
 static char *copy_relblock(char *p, int s);
 
 #include "page.h"
 
-extern bool saving_system;
-extern long real_maxpage;
-extern long new_holepage;
+
+#ifdef MV
+
+
+#endif
+
+
+long real_maxpage;
+long new_holepage;
 
 #define        available_pages \
        (real_maxpage-page(heap_end)-new_holepage-2*nrbpage-real_maxpage/32)
@@ -659,7 +666,7 @@
   object x;
   struct typemanager *tm;
   register long *j;
-  long *top = (long *) topv, *bottom = (long *) bottomv;
+  long *top=topv,*bottom=bottomv;
   
   /* if either of these happens we are marking the C stack
      and need to use a local */
@@ -672,7 +679,7 @@
   */
   
   if (offset) 
-    mark_stack_carefully ( (((char *) top) +offset), bottom, 0 );
+    mark_stack_carefully((((char *) top) +offset),bottom,0);
 
   for (j=top ; j >= bottom ; j--) {
     if (VALID_DATA_ADDRESS_P(*j)
Index: o/main.c
===================================================================
RCS file: /cvsroot/gcl/gcl/o/main.c,v
retrieving revision 1.28
retrieving revision 1.26
diff -u -r1.28 -r1.26
--- o/main.c    11 Jul 2003 06:25:11 -0000      1.28
+++ o/main.c    1 Mar 2003 22:37:37 -0000       1.26
@@ -28,296 +28,328 @@
 #include <unistd.h>
 #include <string.h>
 
-static void init_main(void);
-static void initlisp(void);
-static int  multiply_stacks(int);
-void install_segmentation_catcher(void);
+static void
+init_main(void);
+
+static void
+initlisp(void);
+
+static int
+multiply_stacks(int);
 
 #define IN_MAIN
 
 #ifdef KCLOVM
-#  include <ovm/ovm.h>
+#include <ovm/ovm.h>
 void change_contexts();
 int ovm_process_created; 
 void initialize_process();
 #endif
 
 #include "include.h"
-
 #ifdef UNIX
-#  include <signal.h>
-#endif
+#include <signal.h>
 
+
+#endif
 #include "page.h"
 
+bool saving_system ;
+
 #ifdef BSD
-#  include <sys/time.h>
-#  ifndef SGI
-#    include <sys/resource.h>
-#  endif
+#include <sys/time.h>
+#ifndef SGI
+#include <sys/resource.h>
+#endif
+#endif
+
+#ifdef AOSVS
+
 #endif
 
 #ifdef _WIN32
-#  include <fcntl.h>
+#include <fcntl.h>
 #endif
 
 #define LISP_IMPLEMENTATION_VERSION "April 1994"
 
+char *system_directory;
+
+int page_multiple=1;
+
+
 #define EXTRA_BUFSIZE 8
 char stdin_buf[BUFSIZ + EXTRA_BUFSIZE];
 char stdout_buf[BUFSIZ + EXTRA_BUFSIZE];
 
-char *system_directory   = NULL;
-int page_multiple        = 1;
+int debug;                     /* debug switch */
+int initflag = FALSE;          /* initialized flag */
+
+long real_maxpage;
+object sSAlisp_maxpagesA;
+
+object siClisp_pagesize;
 
-int    debug             = FALSE;              /* debug switch */
-int    initflag          = FALSE;              /* initialized flag */
+object sStop_level;
 
-int    stack_multiple    = 1;
-int    cssize            = 0;
+
+object sSAmultiply_stacksA;
+int stack_multiple=1;
+static object stack_space;
 
 #ifdef _WIN32
-unsigned int _dbegin     = 0x10100000;
-#  ifndef AV
+unsigned int _dbegin = 0x10100000;
 unsigned int _stacktop, _stackbottom;
-#  endif
 #endif
 
-extern bool saving_system;
-extern long real_maxpage;
-extern int sgc_enabled;
-
-
-object sSAlisp_maxpagesA;
-object siClisp_pagesize;
-object sStop_level;
-object sSAmultiply_stacksA;
+int cssize;
 
-static object stack_space;
+int sgc_enabled;
+void install_segmentation_catcher(void);
 
 #ifndef SIG_STACK_SIZE
-#  define SIG_STACK_SIZE 1000
+#define SIG_STACK_SIZE 1000
 #endif
-
 #ifndef SETUP_SIG_STACK
-#  if defined(HAVE_SIGACTION) || defined(HAVE_SIGVEC)
-      struct sigstack estack;
-#  endif
+#if defined(HAVE_SIGACTION) || defined(HAVE_SIGVEC)
+        struct sigstack estack;
+#endif
 #endif
 
 int
 main(int argc, char **argv, char **envp) {
-#if defined ( BSD ) && defined ( RLIMIT_STACK )
-    struct rlimit rl;
+#ifdef BSD
+#ifdef RLIMIT_STACK
+       struct rlimit rl;
+#endif
 #endif
 
 #ifdef RECREATE_HEAP
-    RECREATE_HEAP
+       RECREATE_HEAP
 #endif
        
-#if defined ( _WIN32 ) && !defined ( AV )
-    {
-        unsigned int dummy;
+#ifdef _WIN32
+         {
+           unsigned int dummy;
            
-        _stackbottom = (unsigned int ) &argc;
-        _stacktop    = _stackbottom - CSSIZE; // ???
+           _stackbottom = (unsigned int ) &dummy;
+           _stacktop    = _stackbottom - 0x10000; // ???
 
-    }
+         }
 #endif
-    setbuf(stdin, stdin_buf); 
-    setbuf(stdout, stdout_buf);
+        setbuf(stdin, stdin_buf); 
+       setbuf(stdout, stdout_buf);
 #ifdef _WIN32
-    _fmode = _O_BINARY;
+       _fmode = _O_BINARY;
 #endif
-    ARGC = argc;
-    ARGV = argv;
+       ARGC = argc;
+       ARGV = argv;
 #ifdef UNIX
-    ENVP = envp;
-    kcl_self = argv[0];
+       ENVP = envp;
+#endif
+
+#ifdef UNIX
+/*
+       if (argv[0][0] != '/')
+               error("can't get the program name");
+*/
+       kcl_self = argv[0];
 #ifdef FIX_FILENAME
-    {
-        int n = strlen ( kcl_self );
-        FIX_FILENAME ( Cnil, kcl_self );
-        if ( strlen ( kcl_self ) > n ) {
-            error ( "name grew" );
-        }
-    }
+       { int n = strlen(kcl_self);
+        FIX_FILENAME(Cnil,kcl_self);
+        if (strlen(kcl_self)> n) error("name grew");
+       }
 #endif 
-    if ( !initflag ) {
-        /* An uninitialised system eg raw_gcl */
-        if ( argc < 2 ) {
-            /* Provide the current directory as a default */
-            system_directory = (char *) malloc ( strlen ( "./" ) + 3 );
-            strcpy ( system_directory, "./" );
-        } else {
-            int lastchar = strlen ( argv[1] ) - 1;
-            /* Squirrel away the system directory provided as argv[1] */
-            system_directory = (char *) malloc ( strlen ( argv[1] ) + 3 );
-            strcpy ( system_directory, argv[1] );
-            if ( system_directory[0] != '/' ) {
-                strcpy ( system_directory, "./" );
-            } else {
-                int j;
-                for ( j = strlen ( system_directory ); system_directory[j-1] 
!= '/'; --j );
-                system_directory[j] = '\0';
-            }
-            
-            if ( argv[1][lastchar] != '/') {
-                error ( "Can't get the system directory." );
-            }
-            strcpy ( system_directory, argv[1] );
-        }
-    }
-#else  /* UNIX */
-    if (!initflag && argc > 1) {
-        error("can't get the system directory");
-        strcpy(system_directory, argv[1]);
-    }
-#endif /* UNIX */
-    GBC_enable = FALSE;
+       if (!initflag) {
+
+               system_directory= (char *) malloc(strlen(argv[1])+3);
+                                       
+               strcpy(system_directory, argv[1]);
+               if (system_directory[0] != '/')
+                       strcpy(system_directory, "./");
+               else {
+                       int j;
+
+                       for (j = strlen(system_directory);
+                             system_directory[j-1] != '/';  --j)
+                               ;
+                       system_directory[j] = '\0';
+               }
+       }
 
-    /* if stack_space not zero we have grown the stack space */
-    if ( stack_space == 0 ) {
-        vs_org = value_stack;
-        vs_limit = &vs_org[VSSIZE];
-        frs_org = frame_stack;
-        frs_limit = &frs_org[FRSSIZE];
-        bds_org = bind_stack;
-        bds_limit = &bds_org[BDSSIZE];
-#ifdef KCLOVM
-        bds_save_org = save_bind_stack;
-        bds_save_top = bds_save_org - 1;
-        bds_save_limit = &bds_save_org[BDSSIZE];
 #endif
-        ihs_org = ihs_stack;
-        ihs_limit = &ihs_org[IHSSIZE];
-    }
+#ifdef AOSVS
+
+
+
+
+
+
+
 
-    vs_top = vs_base = vs_org;
-    clear_stack ( vs_top, vs_top+200 );
-    ihs_top = ihs_org-1;
-    bds_top = bds_org-1;
-    frs_top = frs_org-1;
-    cs_org = &argc;
-    cssize = CSSIZE;
-    install_segmentation_catcher();
+
+
+
+
+#endif
+
+       if (!initflag && argc > 1) {
+#ifdef UNIX
+               if (argv[1][strlen(argv[1])-1] != '/')
+#endif
+#ifdef AOSVS
+
+#endif
+                       error("can't get the system directory");
+               strcpy(system_directory, argv[1]);
+       }
+
+       GBC_enable = FALSE;
+
+       /* if stack_space not zero we have grown the stack space */
+       if (stack_space == 0)
+         {
+           vs_org = value_stack;
+           vs_limit = &vs_org[VSSIZE];
+           frs_org = frame_stack;
+           frs_limit = &frs_org[FRSSIZE];
+           bds_org = bind_stack;
+           bds_limit = &bds_org[BDSSIZE];
+#ifdef KCLOVM
+           bds_save_org = save_bind_stack;
+           bds_save_top = bds_save_org - 1;
+           bds_save_limit = &bds_save_org[BDSSIZE];
+#endif
+           ihs_org = ihs_stack;
+           ihs_limit = &ihs_org[IHSSIZE];}
+
+       vs_top = vs_base = vs_org;
+       clear_stack(vs_top,vs_top+200);
+       ihs_top = ihs_org-1;
+       bds_top = bds_org-1;
+       frs_top = frs_org-1;
+       cs_org = &argc;
+
+       cssize = CSSIZE;
+       install_segmentation_catcher();
 
 #ifdef BSD
-#  ifndef MAX_STACK_SIZE
-#    define MAX_STACK_SIZE (1<<23) /* 8Mb */
-#  endif
-#  ifdef RLIMIT_STACK
-    getrlimit(RLIMIT_STACK, &rl);
-    if (rl.rlim_cur == RLIM_INFINITY || 
-         rl.rlim_cur > MAX_STACK_SIZE)
-        rl.rlim_cur=MAX_STACK_SIZE;
-    cssize = rl.rlim_cur/4 - 4*CSGETA;
-#  endif       
-#endif /* BSD */
+#ifndef MAX_STACK_SIZE
+#define MAX_STACK_SIZE (1<<23) /* 8Mb */
+#endif
+#ifdef RLIMIT_STACK
+       getrlimit(RLIMIT_STACK, &rl);
+        if (rl.rlim_cur == RLIM_INFINITY || 
+           rl.rlim_cur > MAX_STACK_SIZE)
+         rl.rlim_cur=MAX_STACK_SIZE;
+       cssize = rl.rlim_cur/4 - 4*CSGETA;
+#endif 
+#endif
 
 #ifdef AV
-    cs_limit = cs_org - cssize;
+       cs_limit = cs_org - cssize;
 #endif
+#ifdef MV
 
-    set_maxpage();
-
+#endif
+        
+       set_maxpage();
 #ifdef SETUP_SIG_STACK
-    SETUP_SIG_STACK
+       SETUP_SIG_STACK
 #else
-
-#  if defined(HAVE_SIGACTION) || defined(HAVE_SIGVEC)
-    {
-        /* make sure the stack is 8 byte aligned */
-#    ifdef SETJMP_ONE_DIRECTION
-        static
-#    endif /* SETUP_SIG_STACK */
+#if defined(HAVE_SIGACTION) || defined(HAVE_SIGVEC)
+         {
+           /* make sure the stack is 8 byte aligned */
+#ifdef SETJMP_ONE_DIRECTION
+           static
+#endif
            double estack_buf[SIG_STACK_SIZE];
            
-        bzero(estack_buf,sizeof(estack_buf));
-        estack.ss_sp = (char *) &estack_buf[SIG_STACK_SIZE-1];
-        estack.ss_onstack=0;
-        sigstack(&estack,0);
-    }
-#  endif /* defined(HAVE_SIGACTION) || defined(HAVE_SIGVEC) */
-
-#endif /* SETUP_SIG_STACK */   
+           bzero(estack_buf,sizeof(estack_buf));
+           estack.ss_sp = (char *) &estack_buf[SIG_STACK_SIZE-1];
+           estack.ss_onstack=0;
+           sigstack(&estack,0);
+         }
+#endif 
+#endif 
        
-    if (initflag) {
-        if (saving_system) {
-            saving_system = FALSE;
-            terminal_io->sm.sm_object0->sm.sm_fp = stdin;
-            terminal_io->sm.sm_object1->sm.sm_fp = stdout;
-            init_big1();
+
+       if (initflag) {
+               if (saving_system) {
+                       saving_system = FALSE;
+                       terminal_io->sm.sm_object0->sm.sm_fp = stdin;
+                       terminal_io->sm.sm_object1->sm.sm_fp = stdout;
+                       init_big1();
 #ifdef INIT_CORE_END
-            INIT_CORE_END
+                       INIT_CORE_END
 #endif                   
-                alloc_page(-(holepage + nrbpage));
-        }
+                       alloc_page(-(holepage + nrbpage));
+               }
 
-        initflag = FALSE;
-        GBC_enable = TRUE;
-        vs_base = vs_top;
-        ihs_push(Cnil);
-        lex_new();
-        vs_base = vs_top;
+               initflag = FALSE;
+               GBC_enable = TRUE;
+               vs_base = vs_top;
+               ihs_push(Cnil);
+               lex_new();
+               vs_base = vs_top;
 
-        interrupt_enable = TRUE;
-        install_default_signals();
+               interrupt_enable = TRUE;
+               install_default_signals();
 
-        sSAlisp_maxpagesA->s.s_dbind = make_fixnum(real_maxpage);
-        initflag = TRUE;
+               sSAlisp_maxpagesA->s.s_dbind = make_fixnum(real_maxpage);
+               initflag = TRUE;
 #ifdef KCLOVM
-        ovm_user_context_change = change_contexts;
-        ovm_user_context_initialize = initialize_process;
+               ovm_user_context_change = change_contexts;
+               ovm_user_context_initialize = initialize_process;
 
-        v_init_processes();
-        ovm_process_created = 1;
+               v_init_processes();
+               ovm_process_created = 1;
 #endif
 #ifdef HAVE_READLINE
-        init_readline_function();
+               init_readline_function();
 #endif
-    again:
-        super_funcall(sStop_level);
-        if (type_of(sSAmultiply_stacksA->s.s_dbind)==t_fixnum) {
-            multiply_stacks(fix(sSAmultiply_stacksA->s.s_dbind));
-            goto  again;
-        }
-        
+             again:
+               super_funcall(sStop_level);
+               if (type_of(sSAmultiply_stacksA->s.s_dbind)==t_fixnum) {
+                    multiply_stacks(fix(sSAmultiply_stacksA->s.s_dbind));
+                    goto  again;
+                }
+                    
 #ifdef USE_DLOPEN
        unlink_loaded_files();
 #endif                 
 
-        exit(0);
-    }
+               exit(0);
+       }
 
-    printf("GCL (GNU Common Lisp)  %s  %d pages\n",
-            LISP_IMPLEMENTATION_VERSION,
-            MAXPAGE);
-    fflush(stdout);
+       printf("GCL (GNU Common Lisp)  %s  %d pages\n",
+              LISP_IMPLEMENTATION_VERSION,
+              MAXPAGE);
+       fflush(stdout);
 
-    initlisp();
+       initlisp();
 
-    vs_base = vs_top;
-    ihs_push(Cnil);
-    lex_new();
+       vs_base = vs_top;
+       ihs_push(Cnil);
+       lex_new();
 
-    GBC_enable = TRUE;
+       GBC_enable = TRUE;
 
-    CMPtemp = CMPtemp1 = CMPtemp2 = CMPtemp3 = OBJNULL;
+       CMPtemp = CMPtemp1 = CMPtemp2 = CMPtemp3 = OBJNULL;
 
-    init_init();
+       init_init();
 
-    sLApackageA->s.s_dbind = user_package;
+       sLApackageA->s.s_dbind = user_package;
 
-    lex_new();
-    vs_base = vs_top;
-    initflag = TRUE;
+       lex_new();
+       vs_base = vs_top;
+       initflag = TRUE;
 
-    interrupt_enable = TRUE;
+       interrupt_enable = TRUE;
 
-    super_funcall(sStop_level);
+       super_funcall(sStop_level);
 
-    return 0;
+       return 0;
 
 }
 
@@ -325,11 +357,11 @@
 void install_segmentation_catcher(void)
 {
 #ifdef INSTALL_SEGMENTATION_CATCHER
-   INSTALL_SEGMENTATION_CATCHER;
+  INSTALL_SEGMENTATION_CATCHER;
 #else
-#  ifdef SIGSEGV
+#ifdef SIGSEGV
        (void) gcl_signal(SIGSEGV,segmentation_catcher);
-#  endif
+#endif
 #endif
 }
 
@@ -337,25 +369,25 @@
 void
 error(char *s)
 {
-    if ( catch_fatal > 0 && interrupt_enable ) {
-        catch_fatal = -1;
-        if ( sgc_enabled ) {
-            sgc_quit();
-        } else {
-           install_segmentation_catcher();
-        }
-        FEerror("Caught fatal error [memory may be damaged]",0);
-    }
-    printf ( "\nUnrecoverable error: %s.\n", s );
-    fflush(stdout);
+        if (catch_fatal>0 && interrupt_enable )
+            {catch_fatal = -1;
+          if (sgc_enabled)
+            { sgc_quit();}
+          if (sgc_enabled==0)
+            { install_segmentation_catcher() ;}
+          FEerror("Caught fatal error [memory may be damaged]",0); }
+       printf("\nUnrecoverable error: %s.\n", s);
+       fflush(stdout);
 #ifdef UNIX
-    abort();
+       abort();
 #endif
 }
 
 static void
 initlisp(void) {
-        int j;
+
+       int j;
+
        if (NULL_OR_ON_C_STACK(&j) == 0
            || NULL_OR_ON_C_STACK(Cnil) != 0
            || (((unsigned long )core_end) !=0
@@ -363,8 +395,7 @@
          { /* check person has correct definition of above */
            error("NULL_OR_ON_C_STACK macro invalid");
          }
-
-        init_alloc();
+       init_alloc();
 
        Dotnil_body.t = (short)t_symbol;
        Dotnil_body.s_dbind = Dotnil;
@@ -442,16 +473,16 @@
        init_GBC();
 
 #if defined ( UNIX ) || defined ( __MINGW32__ )
-#  ifndef DGUX
+#ifndef DGUX
        init_unixfasl();
        init_unixsys();
        init_unixsave();
-#  else
+#else
 
 
 
-#  endif
-#endif /* defined ( UNIX ) || defined ( __MINGW32__ ) */
+#endif
+#endif
 
        init_alloc_function();
        init_array_function();
@@ -557,6 +588,26 @@
   error("Segmentation violation.");
 }
 
+/* static void */
+/* cs_overflow(void) { */
+/* #ifdef AV */
+/*     if (cs_limit < cs_org - cssize) */
+/*             error("control stack overflow"); */
+/*     cs_limit -= CSGETA; */
+/* #endif */
+/* #ifdef MV */
+
+
+
+/* #endif */
+/*     FEerror("Control stack overflow.", 0); */
+/* } */
+
+/* static void */
+/* end_of_file(void) { */
+/*     error("end of file"); */
+/* } */
+
 DEFUNO_NEW("BYE",object,fLbye,LISP
        ,0,1,NONE,OI,OO,OO,OO,void,Lby,(fixnum exitc),"")
 {      int n=VFUN_NARGS;
@@ -564,6 +615,7 @@
        if (n>=1) exit_code=exitc;else exit_code=0;
 
 #ifdef UNIX
+/*     printf("Bye.\n"); */
        exit(exit_code);
 #else
        RETURN(1,int,exit_code, 0); 
@@ -580,6 +632,13 @@
 {      return fLbye(exitc); }
  
 
+/*  c_trace(void) */
+/*  { */
+/*  #ifdef AOSVS */
+
+/*  #endif */
+/*  } */
+
 static void
 siLargc(void) {
   check_arg(0);
@@ -619,13 +678,14 @@
     {vs_base[0] = make_simple_string(value);
 #ifdef FREE_GETENV_RESULT
     free(value);
+    
 #endif         
     }
   else
     vs_base[0] = Cnil;
 
 }
-#endif /* UNIX */
+#endif
 
 object *vs_marker;
 
@@ -866,31 +926,27 @@
                         make_cons(make_ordinary("KCL"), Cnil));
   ADD_FEATURE("AKCL");
   ADD_FEATURE("GCL");
-
 #ifdef BROKEN_O4_OPT
   ADD_FEATURE("BROKEN_O4_OPT");
 #endif
-
 #ifdef GMP
   ADD_FEATURE("GMP");
 #endif  
   
-#if defined ( UNIX ) && !defined ( _WIN32 )
+#ifdef UNIX
+#ifndef _WIN32  
   ADD_FEATURE("UNIX");
+#endif 
 #endif
-   
 #ifdef IEEEFLOAT
   ADD_FEATURE("IEEE-FLOATING-POINT");
 #endif
-
 #ifdef SGC
   ADD_FEATURE("SGC");
 #endif  
-
 #ifdef  ADDITIONAL_FEATURES
   ADDITIONAL_FEATURES;
 #endif
-
 #ifdef  BSD
   ADD_FEATURE("BSD");
 #endif
@@ -915,7 +971,9 @@
         && ((-Seven)/ (-Three)) == 2)
       { ADD_FEATURE("TRUNCATE_USE_C");
       }  }
-#endif /* PECULIAR_MACHINE */
+#endif  
+  
+  
   
   make_special("*FEATURES*",features);}
   
Index: o/rel_coff.c
===================================================================
RCS file: /cvsroot/gcl/gcl/o/rel_coff.c,v
retrieving revision 1.6
retrieving revision 1.5
diff -u -r1.6 -r1.5
--- o/rel_coff.c        13 Jun 2003 05:09:11 -0000      1.6
+++ o/rel_coff.c        15 Feb 2003 00:38:28 -0000      1.5
@@ -7,26 +7,24 @@
 relocate()
 {
   char *where;
-  describe_sym ( relocation_info.r_symndx, 0 );
+  describe_sym(relocation_info.r_symndx);
   where = the_start + relocation_info.r_vaddr;
-  dprintf ( "relocate: where: %9x " , *where );
-  dprintf ( "at %9x --> ", (unsigned int) where );
+  dprintf (where has %x , *where);
+  dprintf(   at %x -->, where );
 
   if (relocation_info.r_type == R_ABS)
-      { dprintf( "R_ABS return %9x\n", relocation_info.r_type );  return; }
-  
+    { dprintf( r_abs ,0)  return; }
   switch(relocation_info.r_type)
     {
-
     case R_DIR32:
-      dprintf("new val R_DIR32   %9x\n",  *((int *)where) + 
+      dprintf(new val r_dir32 %x ,  *((int *)where) + 
              symbol_table[relocation_info.r_symndx].n_value);
       *(int *)where= *((int *)where) + 
        symbol_table[relocation_info.r_symndx].n_value;
       break;
-      
     case R_PCRLONG:
-      dprintf( "new val R_PCRLONG %9x\n",
+
+      dprintf( r_pcrlong new value = %x ,
              *((int *)where)  - (int)start_address
              + symbol_table[relocation_info.r_symndx].n_value );
 #ifdef _WIN32
@@ -37,16 +35,51 @@
       *(int *)where=   symbol_table[relocation_info.r_symndx].n_value
        - (int) where - sizeof(int *);
 #else      
-      *(int *)where=  *((int *)where)  - (int)start_address
+            *(int *)where=  *((int *)where)  - (int)start_address
        + symbol_table[relocation_info.r_symndx].n_value;
 #endif 
 
       break;
-
-  default:
-      fprintf(stdout, "%d: unsupported relocation type.\n",
+    default:
+      fprintf(stdout, "%d: unsupported relocation type.",
              relocation_info.r_type);
-      FEerror("The relocation type was unknown\n",0,0);
+      FEerror("The relocation type was unknown",0,0);
     }
 
 }
+
+
+
+
+#ifdef DEBUG
+
+#define describe_sym describe_sym1
+describe_sym1(n)
+int n;
+{char *str;
+ char tem[9];
+ struct syment *sym;
+ sym= &symbol_table[n];
+ str= sym->n_zeroes == 0 ?
+   &my_string_table[sym->n_offset] :
+ (sym->n_name[SYMNMLEN -1] ?
+  /* MAKE IT NULL TERMINATED */
+  (strncpy(tem,sym->n_name,
+          SYMNMLEN),tem):
+  sym->n_name );
+ printf ("sym-index = %d table entry at %x",n,&symbol_table[n]);
+ printf("symbol is (%s):\nsymbol_table[n]._n._n_name 
%s\nsymbol_table[n]._n._n_n._n_zeroes %d\nsymbol_table[n]._n._n_n._n_offset 
%d\nsymbol_table[n]._n._n_nptr[0] %d\nsymbol_table[n]._n._n_nptr[n] 
%d\nsymbol_table[n].n_value %d\nsymbol_table[n].n_scnum %d
+\nsymbol_table[n].n_type %d\nsymbol_table[n].n_sclass 
%d\nsymbol_table[n].n_numaux %d", str,
+       symbol_table[n]._n._n_name,
+       symbol_table[n]._n._n_n._n_zeroes ,
+       symbol_table[n]._n._n_n._n_offset ,
+       symbol_table[n]._n._n_nptr[0] ,
+       symbol_table[n]._n._n_nptr[1] ,
+       symbol_table[n].n_value ,
+       symbol_table[n].n_scnum ,
+       symbol_table[n].n_type ,
+       symbol_table[n].n_sclass ,
+       symbol_table[n].n_numaux );
+}
+
+#endif 
Index: o/sfasl.c
===================================================================
RCS file: /cvsroot/gcl/gcl/o/sfasl.c,v
retrieving revision 1.14
retrieving revision 1.13
diff -u -r1.14 -r1.13
--- o/sfasl.c   13 Jun 2003 05:09:11 -0000      1.14
+++ o/sfasl.c   18 Feb 2003 02:32:03 -0000      1.13
@@ -1,26 +1,26 @@
 /* 
-   Copyright William Schelter. All rights reserved.
-   There is a companion file rsym.c which is used to build
-   a list of the external symbols in a COFF or A.OUT object file, for
-   example saved_kcl.  These are loaded into kcl, and the
-   linking is done directly inside kcl.  This saves a good 
-   deal of time.   For example a tiny file foo.o with one definition
-   can be loaded in .04 seconds.  This is much faster than
-   previously possible in kcl.
-   The function fasload from unixfasl.c is replaced by the fasload
-   in this file.
-   this file is included in unixfasl.c
-   via #include "../c/sfasl.c\n" 
-   */
+Copyright William Schelter. All rights reserved.
+There is a companion file rsym.c which is used to build
+a list of the external symbols in a COFF or A.OUT object file, for
+example saved_kcl.  These are loaded into kcl, and the
+linking is done directly inside kcl.  This saves a good 
+deal of time.   For example a tiny file foo.o with one definition
+can be loaded in .04 seconds.  This is much faster than
+previously possible in kcl.
+The function fasload from unixfasl.c is replaced by the fasload
+in this file.
+this file is included in unixfasl.c
+via #include "../c/sfasl.c" 
+*/
 
 
 /* for testing in standalone manner define STAND
-   You may then compile this file cc -g -DSTAND -DDEBUG -I../hn
-   a.out /tmp/foo.o /public/gcl/unixport/saved_kcl /public/gcl/unixport/
-   will write a /tmp/sfasltest file
-   which you can use comp to compare with one produced by ld.
-   */
-/*#define DEBUG*/
+ You may then compile this file cc -g -DSTAND -DDEBUG -I../hn
+ a.out /tmp/foo.o /public/gcl/unixport/saved_kcl /public/gcl/unixport/
+ will write a /tmp/sfasltest file
+ which you can use comp to compare with one produced by ld.
+ */
+
 #define IN_SFASL
 
 /*  #ifdef STAND */
@@ -55,11 +55,11 @@
 
 #ifdef DEBUG
 #define debug sfasldebug
-int sfasldebug=1;
-#define dprintf(s,ar) if ( debug ) { fprintf ( stderr, ( s ), ar ) ; 
fflush(stderr); }
+int sfasldebug=0;
+#define dprintf(s,ar) if(debug) { printf(" ( s )",ar) ; fflush(stdout);}
 #define STAT
 
-#else  /* end debug */
+#else /* end debug */
 #define dprintf(s,ar) 
 #define STAT static
 #endif
@@ -70,14 +70,14 @@
 #define PTABLE_EXTRA 20
 
 struct sfasl_info {
-    struct syment *s_symbol_table;
-    char *s_start_address;
-    char *s_start_data;
-    char *s_my_string_table;
-    int s_extra_bss;
-    char *s_the_start;
-};
+ struct syment *s_symbol_table;
+ char *s_start_address;
+ char *s_start_data;
+ char *s_my_string_table;
+ int s_extra_bss;
+ char *s_the_start;
 
+};
 struct sfasl_info *sfaslp;
 
 #define symbol_table sfaslp->s_symbol_table
@@ -86,64 +86,10 @@
 #define extra_bss sfaslp->s_extra_bss
 #define the_start sfaslp->s_the_start
 
-#ifdef DEBUG
-
-#define describe_sym describe_sym1
-void describe_sym1 ( int n, int aux_to_go )
-{
-    char *str;
-    char tem[9];
-    struct syment *sym;
-    sym = &symbol_table[n];
-    if ( sym->n_zeroes == 0 ) {
-        str = &my_string_table[sym->n_offset];
-    } else {
-        if ( sym->n_name[SYMNMLEN -1] != 0 ) {
-            /* MAKE IT NULL TERMINATED */
-            strncpy ( tem, sym->n_name, SYMNMLEN );
-            tem[SYMNMLEN] = '\0';
-            str = &tem[0];
-        } else {
-            str = sym->n_name;
-        }
-    }
-    if ( aux_to_go > 0 ) {
-        fprintf ( stderr,"    symbol_table[%3d] (%8x): auxiliary entry (%d to 
go)\n", n, &symbol_table[n], aux_to_go - 1 );
-    } else {
-        if ( sym->n_zeroes == 0 ) {
-            fprintf ( stderr,
-                      "symbol_table[%3d] (%8x) (%22s): "
-                      "n_offset %d, n_value %d, n_scnum %d, n_type %d, "
-                      "n_sclass %d, n_numaux %d\n",
-                      n,
-                      &symbol_table[n],
-                      str,
-                      symbol_table[n].n_offset,
-                      symbol_table[n].n_value,
-                      symbol_table[n].n_scnum,
-                      symbol_table[n].n_type,
-                      symbol_table[n].n_sclass,
-                      symbol_table[n].n_numaux );
-        } else {
-            fprintf ( stderr,
-                      "symbol_table[%3d] (%8x) (%22s): "
-                      "n_value %d, n_scnum %d, n_type %d, "
-                      "n_sclass %d, n_numaux %d\n",
-                      n,
-                      &symbol_table[n],
-                      str,
-                      symbol_table[n].n_value ,
-                      symbol_table[n].n_scnum ,
-                      symbol_table[n].n_type ,
-                      symbol_table[n].n_sclass ,
-                      symbol_table[n].n_numaux );
-        }
-    }
-}
-#else
-#  define describe_sym(a,b)
-#endif /* DEBUG */
 
+#ifndef describe_sym
+#define describe_sym(a)
+#endif
 
 #ifdef STAND
 #include "rel_stand.c"
@@ -157,569 +103,556 @@
 void relocate_symbols ( unsigned int length );
 void set_symbol_address ( struct syment *sym, char *string );
 
-int fasload ( object faslfile )
-{
-    long fasl_vector_start;
-    struct filehdr fileheader;
-    struct sfasl_info sfasl_info_buf;
+int
+fasload(faslfile)
+object faslfile;
+{       long fasl_vector_start;
+       struct filehdr fileheader;
+       struct sfasl_info sfasl_info_buf;
 #ifdef COFF
-    struct scnhdr section[10];
-    struct aouthdr header;
+        struct scnhdr section[10];
+       struct aouthdr header;
 #endif
-    int textsize, datasize, bsssize, nsyms;
+       int textsize, datasize, bsssize,nsyms;
 #if defined ( READ_IN_STRING_TABLE ) || defined ( HPUX )
-    int string_size=0;
+       int string_size=0;
 #endif        
 
-    object memory, data;
-    FILE *fp;
-    char filename[MAXPATHLEN];
-    int i;
-    int init_address=0;
-    int aux_to_go = 0;
-    
+       object memory, data;
+       FILE *fp;
+       char filename[MAXPATHLEN];
+       int i;
+       int init_address=0;
 #ifndef STAND  
-    object *old_vs_base = vs_base;
-    object *old_vs_top = vs_top;
+       object *old_vs_base = vs_base;
+       object *old_vs_top = vs_top;
 #endif
-    sfaslp = &sfasl_info_buf;
+       sfaslp = &sfasl_info_buf;
 
-    extra_bss=0;
+       extra_bss=0;
 #ifdef STAND
-    strcpy(filename,faslfile);
-    fp=fopen(filename,"r");
+       strcpy(filename,faslfile);
+       fp=fopen(filename,"r");
 #else
-    coerce_to_filename(faslfile, filename);
-    faslfile = open_stream(faslfile, smm_input, Cnil, sKerror);
-    vs_push(faslfile);
-    fp = faslfile->sm.sm_fp;
+       coerce_to_filename(faslfile, filename);
+       faslfile = open_stream(faslfile, smm_input, Cnil, sKerror);
+       vs_push(faslfile);
+       fp = faslfile->sm.sm_fp;
 #endif 
 
-    HEADER_SEEK(fp);
-    if ( !fread ( (char *) &fileheader, sizeof(struct filehdr), 1, fp ) ) {
-        FEerror("Could not get the header",0,0);
-    }
-    nsyms = NSYMS(fileheader);
-
+       HEADER_SEEK(fp);
+       if(!fread((char *)&fileheader, sizeof(struct filehdr), 1, fp))
+         FEerror("Could not get the header",0,0);
+       nsyms = NSYMS(fileheader);
 #ifdef COFF
-#  ifdef AIX3
-    setup_for_aix_load();
-#  endif       
-
-    fread ( &header, 1, fileheader.f_opthdr, fp );
-    fread ( &section[1],
-            fileheader.f_nscns,
-            sizeof ( struct  scnhdr ),
-            fp );
-    textsize = section[TEXT_NSCN].s_size;
-    datasize = section[DATA_NSCN].s_size; 
-    if (strcmp(section[BSS_NSCN].s_name, ".bss") == 0) {
-        bsssize=section[BSS_NSCN].s_size;
-    } else {
-        bsssize=section[BSS_NSCN].s_size = 0;
-    }
+
+#ifdef AIX3
+       setup_for_aix_load();
+#endif 
+
+       fread(&header,1,fileheader.f_opthdr,fp);
+
+       fread(&section[1],fileheader.f_nscns,sizeof (struct  scnhdr),fp);
+       textsize = section[TEXT_NSCN].s_size;
+       datasize = section[DATA_NSCN].s_size; 
+       if (strcmp(section[BSS_NSCN].s_name, ".bss") == 0)
+         bsssize=section[BSS_NSCN].s_size; 
+       else     bsssize=section[BSS_NSCN].s_size = 0;
 #endif
 
 #ifdef BSD
-    textsize=fileheader.a_text;
-    datasize=fileheader.a_data;
-    bsssize=fileheader.a_bss;
-#endif
-    dprintf ( "fasload: %s, ", filename );
-    dprintf ( "number of symbols: %d\n", nsyms );
-
-    /* Allocate space for the symbol table */
-    symbol_table =
-        (struct syment *) OUR_ALLOCA( sizeof(struct syment)*
-                                      (unsigned int)nsyms);
-    memset ( symbol_table, 0, sizeof(struct syment) * (unsigned int)nsyms );
-    /* move the file pointer to the start of the symbol table */
-    fseek(fp,(int)( N_SYMOFF(fileheader)),  0);
-
-    /* Read the symbol table */
-    for (i = 0;  i < nsyms;  i++) {
-        fread((char *)&symbol_table[i], SYMESZ, 1, fp);
+       textsize=fileheader.a_text;
+       datasize=fileheader.a_data;
+       bsssize=fileheader.a_bss;
+#endif
+       symbol_table =
+         (struct syment *) OUR_ALLOCA(sizeof(struct syment)*
+                                       (unsigned int)nsyms);
+       fseek(fp,(int)( N_SYMOFF(fileheader)),  0);
+       {
+       for (i = 0;  i < nsyms;  i++)
+         { fread((char *)&symbol_table[i], SYMESZ, 1, fp);
+           dprintf( symbol table %d , i);
+           if (debug) describe_sym(i);
+           dprintf( at %d , &symbol_table[i]);
 #ifdef HPUX
-        symbol_table[i].n_un.n_strx = string_size;
-        dprintf("string_size %d\n", string_size);
-        string_size += symbol_table[i].n_length + 1;
-        fseek(fp,(int)symbol_table[i].n_length,1);
-#endif
-    }
-    /* 
-       on MP386
-       The sizeof(struct syment) = 20, while only SYMESZ =18. So we had to read
-       one at a time.
-       fread((char *)symbol_table, SYMESZ*fileheader.f_nsyms,1,fp);
-       */
+           symbol_table[i].n_un.n_strx = string_size;
+           dprintf(string_size %d, string_size);
+           string_size += symbol_table[i].n_length + 1;
+           fseek(fp,(int)symbol_table[i].n_length,1);
+#endif
+         }
+       }
+/*     
+on MP386
+The sizeof(struct syment) = 20, while only SYMESZ =18. So we had to read
+one at a time.
+fread((char *)symbol_table, SYMESZ*fileheader.f_nsyms,1,fp);
+*/
 
 #ifdef READ_IN_STRING_TABLE
-    my_string_table=READ_IN_STRING_TABLE(fp,string_size);
+
+my_string_table=READ_IN_STRING_TABLE(fp,string_size);
+
 #else  
-#  ifdef MUST_SEEK_TO_STROFF
-    fseek(fp,N_STROFF(fileheader),0);
-#  endif       
-    {
-        int ii=0;
-       if ( !fread ( (char *) &ii, sizeof(int), 1, fp ) ) {
-            FEerror ( "The string table of this file did not have any length",
-                      0, 0 );
-        }
-        fseek(fp,-4,1);
-        /* at present the string table is located just after the symbols */
-        my_string_table = OUR_ALLOCA ( (unsigned int) ii );
-        memset ( my_string_table, 0, ii );
-        dprintf( " string table length = %d \n", ii);
-        if ( ii != fread ( my_string_table, 1, ii, fp ) ) {
-            FEerror ( "Could not read whole string table", 0, 0 );
+#ifdef MUST_SEEK_TO_STROFF
+  fseek(fp,N_STROFF(fileheader),0);
+#endif 
+  {int ii=0;
+       if (!fread((char *)&ii,sizeof(int),1,fp))
+          {FEerror("The string table of this file did not have any length",0,
+                  0);}
+           fseek(fp,-4,1);
+           /* at present the string table is located just after the symbols */
+           my_string_table=OUR_ALLOCA((unsigned int)ii);
+           dprintf( string table leng = %d, ii);
+
+           if(ii!=fread(my_string_table,1,ii,fp))
+             FEerror("Could not read whole string table",0,0) ;
        }
-#endif
-#ifdef DEBUG
-        /* Output the symbol table for debugging.
-         * 
-         * Must do this after the string table has been read,
-         * rather than while reading in the symbol table as
-         * done previously. */
-        aux_to_go = 0;
-       for (i = 0;  i < nsyms;  i++) {
-            if ( aux_to_go <= 0 ) {
-                aux_to_go = symbol_table[i].n_numaux;
-            }
-           if ( debug ) {
-                describe_sym ( i, aux_to_go );
-            }
-            if ( aux_to_go > 0 ) {
-                aux_to_go--;
-            }
-        }
-#endif
-        
+#endif 
 #ifdef SEEK_TO_END_OFILE
-        SEEK_TO_END_OFILE(fp); 
-#else
-        /* go past any zeroes */
-       while ( ( i = getc ( fp ) ) == 0 );
+SEEK_TO_END_OFILE(fp); 
+#else  
+       while ((i = getc(fp)) == 0)
+               ;
        ungetc(i, fp);
 #endif
-        /* point at the GCL fasl data */
+       
        fasl_vector_start=ftell(fp);
 
-        if ( ! ( (c_table.ptable) && *(c_table.ptable) ) ) {
-            build_symbol_table();
-        }
-
-        /* figure out if there is more bss space needed */
-       extra_bss = get_extra_bss ( symbol_table,
-                                    nsyms,
-                                    datasize+textsize+bsssize,
-                                    &init_address,
-                                    bsssize );
+   if (!((c_table.ptable) && *(c_table.ptable)))
+     build_symbol_table();
+
+/* figure out if there is more bss space needed */
+       extra_bss=get_extra_bss(symbol_table,nsyms,datasize+textsize+bsssize,
+                               &init_address,bsssize);
        
-        /* allocate some memory */
+/* allocate some memory */
 #ifndef STAND  
-       {
-            BEGIN_NO_INTERRUPT;
-            memory = alloc_object ( t_cfdata );
-            memory->cfd.cfd_self = 0;
-            memory->cfd.cfd_start = 0;
-            memory->cfd.cfd_size = datasize + textsize + bsssize + extra_bss;
-            vs_push(memory);
-            the_start = start_address =        
-                memory->cfd.cfd_start =        
-                    alloc_contblock ( memory->cfd.cfd_size );
-            sfaslp->s_start_data = start_address + textsize;
-            END_NO_INTERRUPT;
-        }
-#else
-        /* What does this mean? */
-       the_start = start_address
-            = malloc ( datasize + textsize + bsssize + extra_bss + 0x80000 );
-       the_start = start_address = (char *) ( 0x1000 * ( ( ( (int) the_start + 
0x70000) + 0x1000) / 0x1000 ) );
+       {BEGIN_NO_INTERRUPT;
+       memory = alloc_object(t_cfdata);
+       memory->cfd.cfd_self = 0;
+       memory->cfd.cfd_start = 0;
+       memory->cfd.cfd_size = datasize+textsize+bsssize + extra_bss;
+       vs_push(memory);
+        the_start=start_address=        
+        memory->cfd.cfd_start =        
+        alloc_contblock(memory->cfd.cfd_size);
        sfaslp->s_start_data = start_address + textsize;
+        END_NO_INTERRUPT;
+       }
+#else
+       the_start=start_address
+         = malloc(datasize+textsize+bsssize + extra_bss + 0x80000);
+       the_start=start_address= (char *)(
+          0x1000* ((((int)the_start + 0x70000) + 0x1000)/0x1000));
+       sfaslp->s_start_data = start_address + textsize;        
+       
 #endif
-       dprintf(" Code size %d, ", datasize+textsize+bsssize + extra_bss);
-       if ( fseek ( fp, N_TXTOFF(fileheader), 0) < 0 ) {
-            FEerror("file seek error",0,0);
-        }
-       fread ( the_start, textsize + datasize, 1, fp );
-       dprintf("read %d bytes of text + data into memory at ", textsize + 
datasize );
-        /* relocate the actual loaded text  */
 
-        dprintf(" the_start (%x)\n", the_start);
+       dprintf( code size %d , datasize+textsize+bsssize + extra_bss);
+       if (fseek(fp,N_TXTOFF(fileheader) ,0) < 0)
+               FEerror("file seek error",0,0);
+       fread(the_start, textsize + datasize, 1, fp);
+       dprintf(read into memory text +data %d bytes, textsize + datasize);
+/* relocate the actual loaded text  */
+
+        dprintf( the_start %x, the_start);
 
        /* record which symbols are used */
-        
+  
 #ifdef SYM_USED
-        {
-            int j=0;
-            for(j=1; j< BSS_NSCN ; j++) {
-                dprintf(" relocating section %d \n",j);
-                if (section[j].s_nreloc) fseek(fp,section[j].s_relptr,0);
-                for(i=0; i < section[j].s_nreloc; i++) {
-                    struct syment *sym;
-                    fread(&relocation_info, RELSZ, 1, fp);
-                    sym = & symbol_table[relocation_info.r_symndx];
-                    if (TC_SYMBOL_P(sym)) {
-                        SYM_USED(sym) = 1;
-                    }
-                }
-            }
-        }
+  {int j=0;
+     for(j=1; j< BSS_NSCN ; j++)
+       { dprintf( relocating section %d \n,j);
+       if (section[j].s_nreloc) fseek(fp,section[j].s_relptr,0);
+        for(i=0; i < section[j].s_nreloc; i++)
+         { struct syment *sym;
+           fread(&relocation_info, RELSZ, 1, fp);
+           sym = & symbol_table[relocation_info.r_symndx];
+           if (TC_SYMBOL_P(sym))
+             SYM_USED(sym) = 1;
+        }}}
 #endif
+
+
        /* this looks up symbols in c.ptable and also adds new externals to
           that c.table */
        relocate_symbols(NSYMS(fileheader));  
        
 #ifdef COFF
-        {
-            int j = 0;
-            for ( j = 1; j < BSS_NSCN ; j++) {
-                dprintf("relocating section %d \n",j);
-                if (section[j].s_nreloc) fseek(fp,section[j].s_relptr,0);
-#  ifdef ADJUST_RELOC_START
-                ADJUST_RELOC_START(j);
-#  endif  
-                for ( i=0; i < section[j].s_nreloc; i++ ) {
-                    /* RELSZ = sizeof(relocation_info) */
-                    fread ( &relocation_info, RELSZ, 1, fp);
-                    dprintf ( "    item %3d: ", i );
-                    relocate() ;
-                } 
-            }
-        }
+  {int j=0;
+     for(j=1; j< BSS_NSCN ; j++)
+       { dprintf( relocating section %d \n,j);
+       if (section[j].s_nreloc) fseek(fp,section[j].s_relptr,0);
+#ifdef ADJUST_RELOC_START
+ADJUST_RELOC_START(j)
+#endif  
+        for(i=0; i < section[j].s_nreloc; i++)
+         /* RELSZ = sizeof(relocation_info) */
+         {fread(&relocation_info, RELSZ, 1, fp);
+           dprintf(relocating %d,i);
+          relocate();};
+        }};
 #endif
 #ifdef BSD
-        fseek(fp,N_RELOFF(fileheader),0);
-       {
-            int nrel = fileheader.a_trsize/sizeof(struct reloc);
-            for ( i=0; i < nrel; i++ ) {
-                fread ( (char *)&relocation_info, sizeof(struct reloc),
+        fseek(fp,N_RELOFF(fileheader),0);
+       {int nrel = (fileheader.a_trsize/sizeof(struct reloc));
+        for (i=0; i < nrel; i++)
+          {fread((char *)&relocation_info, sizeof(struct reloc),
                        1, fp);
-                dprintf("relocating %d\n",i);
-                relocate();
-            }
+                 dprintf(relocating %d,i);
+                 relocate();
+               }
        }
-#  ifdef N_DRELOFF
-        fseek (fp, N_DRELOFF(fileheader), 0);
-#  endif
-        {
-            int nrel = fileheader.a_drsize/sizeof(struct reloc);
-            the_start += fileheader.a_text;
-            for (i=0; i < nrel; i++) {
-                fread ( (char *) &relocation_info, sizeof(struct reloc),
-                        1, fp);
-                dprintf("relocating %d\n",i);
-                relocate();
-            }
-        }
-#endif
-
-        /* end of relocation */
-        dprintf(" END OF RELOCATION \n",0);
-        dprintf(" invoking init function at %x", start_address);
-        dprintf(" textsize is %x",textsize);
-        dprintf(" datasize is %x\n",datasize);
+#ifdef N_DRELOFF
+        fseek (fp, N_DRELOFF(fileheader), 0);
+#endif
+        {int nrel = (fileheader.a_drsize/sizeof(struct reloc));
+         the_start += fileheader.a_text;
+        for (i=0; i < nrel; i++)
+
+          {fread((char *)&relocation_info, sizeof(struct reloc),
+                       1, fp);
+                 dprintf(relocating %d,i);
+                 relocate();
+               }
+       }
+#endif
+
+/* end of relocation */
+       dprintf( END OF RELOCATION \n,0);
+       dprintf( invoking init function at %x, start_address)
+       dprintf( textsize is %x,textsize);
+       dprintf( datasize is %x,datasize);
 
-        /* read in the fasl vector */
+/* read in the fasl vector */
        fseek(fp,fasl_vector_start,0);
-        if ( feof ( fp ) ) {
-            data=0;
-        } else {
-            data = read_fasl_vector(faslfile);
-            vs_push(data);
+        if (feof(fp))
+         {data=0;}
+         else{
+       data = read_fasl_vector(faslfile);
+       vs_push(data);
 #ifdef COFF
-            dprintf(" read fasl now symbols %d \n", fileheader.f_nsyms);
+        dprintf( read fasl now symbols %d , fileheader.f_nsyms);
 #endif
        }
        close_stream(faslfile);
 
+/*
+ {
+       int fd;
+
+       fd = creat ("xsgcl.bits", 0777);
+       write (fd, memory->cfd.cfd_start, textsize + datasize);
+       close (fd);
+
+       fd = open ("xsl2.bits", 0);
+       read (fd, memory->cfd.cfd_start, memory->cfd.cfd_size);
+       close (fd);
+ }
+*/
+
 #ifndef STAND
        ALLOCA_FREE(my_string_table);
        ALLOCA_FREE(symbol_table);
-#  ifdef CLEAR_CACHE
+
+
+#ifdef CLEAR_CACHE
        CLEAR_CACHE;
-#  endif
-        dprintf ( "About to call_init %x \n", init_address );
-       call_init ( init_address, memory, data, 0);
-        dprintf ( "Finished call_init %x \n", memory );
+#endif
+       call_init(init_address,memory,data,0);
        
         vs_base = old_vs_base;
        vs_top = old_vs_top;
-        dprintf ( "About to symbol_value %x \n", data );
-
-        if ( symbol_value(sLAload_verboseA) != Cnil ) {
+        if(symbol_value(sLAload_verboseA)!=Cnil)
             printf("start address -T %x ", memory->cfd.cfd_start);
-        }
-       return ( memory->cfd.cfd_size );
+       return(memory->cfd.cfd_size);
 #endif
-       {
-            FILE *out;
-            out=fopen("/tmp/sfasltest","w");
-            fwrite((char *)&fileheader, sizeof(struct filehdr), 1, out);
-            fwrite(start_address,sizeof(char),datasize+textsize,out);
-            fclose(out);
-        }
-        printf("\n(start %x)\n",start_address);
-    }
+       {FILE *out;
+        out=fopen("/tmp/sfasltest","w");
+        fwrite((char *)&fileheader, sizeof(struct filehdr), 1, out);
+        fwrite(start_address,sizeof(char),datasize+textsize,out);
+        fclose(out);}
+        printf("\n(start %x)\n",start_address);
+
 }
 
 int get_extra_bss(sym_table,length,start,ptr,bsssize)
-    int length,bsssize;
-    struct syment *sym_table;
-    int *ptr;                   /* store init address offset here */
+     int length,bsssize;
+     struct syment *sym_table;
+     int *ptr;   /* store init address offset here */
 {
-    int result = start;
+  int result = start;
 
 #ifdef AIX3
-    int next_bss =  start - bsssize;
+  int next_bss =  start - bsssize;
 #endif
 
-    struct syment *end,*sym;
+  struct syment *end,*sym;
 
 #ifdef BSD
-    char tem[SYMNMLEN +1];
+  char tem[SYMNMLEN +1];
 #endif
 
-    end =sym_table + length;
-    for(sym=sym_table; sym < end; sym++)
-        {
-            
+  end =sym_table + length;
+  for(sym=sym_table; sym < end; sym++)
+    {
+     
 #ifdef FIND_INIT
-            FIND_INIT
+      FIND_INIT
 #endif
 
 #ifdef AIX3
-                /* we later go through the relocation entries making this 1
-                   for symbols used */
+       /* we later go through the relocation entries making this 1
+          for symbols used */
 #ifdef SYM_USED 
-                if(TC_SYMBOL_P(sym))
-                    {SYM_USED(sym) = 0;}
+       if(TC_SYMBOL_P(sym))
+         {SYM_USED(sym) = 0;}
 #endif
-            
-            /* fix up the external refer to _ptrgl to be local ref */
-            if (sym->n_scnum == 0 &&
-                 strcmp(sym->n_name,"_ptrgl")==0)
-                {struct syment* s =
-                     get_symbol("._ptrgl",TEXT_NSCN,sym_table,length);
-                 if (s ==0) FEerror("bad glue",0,0);
-                 sym->n_value = next_bss ;
-                 ptrgl_offset = next_bss;
-                 ptrgl_text = s->n_value;
-                 next_bss += 0xc;
-                 sym->n_scnum = DATA_NSCN;
-                 ((union auxent *)(sym+1))->x_csect.x_scnlen = 0xc;
-
-             }
-
-            if(sym->n_scnum != BSS_NSCN) goto NEXT;
-            if(SYM_EXTERNAL_P(sym))
-                {int val=sym->n_value;
-                 struct node joe;
-                 if (val && c_table.ptable)
-                     {struct node *answ;
-                      answ= find_sym(sym,0);
-                      if(answ)
-                          {sym->n_value = answ->address ;
-                           sym->n_scnum = N_UNDEF;
-                           val= ((union auxent *)(sym+1))->x_csect.x_scnlen;
-                           result -= val;
-                           goto NEXT;
-                       }}
-             }
-            /* reallocate the bss space */
-            if (sym->n_value == 0)
-                {result += ((union auxent *)(sym+1))->x_csect.x_scnlen;}
-            sym->n_value = next_bss;
-            next_bss += ((union auxent *)(sym+1))->x_csect.x_scnlen;
-        NEXT:
-            ;
-            /* end aix3 */
+ 
+      /* fix up the external refer to _ptrgl to be local ref */
+      if (sym->n_scnum == 0 &&
+         strcmp(sym->n_name,"_ptrgl")==0)
+       {struct syment* s =
+          get_symbol("._ptrgl",TEXT_NSCN,sym_table,length);
+       if (s ==0) FEerror("bad glue",0,0);
+       sym->n_value = next_bss ;
+       ptrgl_offset = next_bss;
+       ptrgl_text = s->n_value;
+       next_bss += 0xc;
+       sym->n_scnum = DATA_NSCN;
+       ((union auxent *)(sym+1))->x_csect.x_scnlen = 0xc;
+
+       }
+
+      if(sym->n_scnum != BSS_NSCN) goto NEXT;
+      if(SYM_EXTERNAL_P(sym))
+       {int val=sym->n_value;
+       struct node joe;
+       if (val && c_table.ptable)
+         {struct node *answ;
+         answ= find_sym(sym,0);
+         if(answ)
+           {sym->n_value = answ->address ;
+           sym->n_scnum = N_UNDEF;
+           val= ((union auxent *)(sym+1))->x_csect.x_scnlen;
+           result -= val;
+           goto NEXT;
+           }}
+       }
+      /* reallocate the bss space */
+      if (sym->n_value == 0)
+       {result += ((union auxent *)(sym+1))->x_csect.x_scnlen;}
+      sym->n_value = next_bss;
+      next_bss += ((union auxent *)(sym+1))->x_csect.x_scnlen;
+    NEXT:
+      ;
+      /* end aix3 */
 #endif
-            
+         
 
-            
+  
 #ifdef BSD
-            tem;                /* ignored */
-            if(SYM_EXTERNAL_P(sym) && SYM_UNDEF_P(sym))
+      tem; /* ignored */
+      if(SYM_EXTERNAL_P(sym) && SYM_UNDEF_P(sym))
 #endif
 #ifdef COFF
-                if(0)
-                    /* what we really want is
-                       if (sym->n_scnum==0 && sym->n_sclass == C_EXT
-                       && !(bsearch(..in ptable for this symbol)))
-                       Since this won't allow loading in of a new external 
array
-                       char foo[10]  not ok
-                       static foo[10] ok.
-                       for the moment we give undefined symbol warning..
-                       Should really go through the symbols, recording the 
external addr
-                       for ones found in ptable, and for the ones not in ptable
-                       set some flag, and add up the extra_bss required.  Then
-                       when you have the new memory chunk in hand,
-                       you could make the pass setting the relative addresses.
-                       for the ones you flagged last time.
-                       */
-#endif
-                    /* external bss so not included in size of bss for file */
-                    {int val=sym->n_value;
-                     if (val && c_table.ptable
-                          && (0== find_sym(sym,0)))
-                         { sym->n_value=result;
-                           result += val;}}
-            
-            sym += NUM_AUX(sym); 
+       if(0)
+         /* what we really want is
+            if (sym->n_scnum==0 && sym->n_sclass == C_EXT
+            && !(bsearch(..in ptable for this symbol)))
+            Since this won't allow loading in of a new external array
+            char foo[10]  not ok
+            static foo[10] ok.
+            for the moment we give undefined symbol warning..
+            Should really go through the symbols, recording the external addr
+            for ones found in ptable, and for the ones not in ptable
+            set some flag, and add up the extra_bss required.  Then
+            when you have the new memory chunk in hand,
+            you could make the pass setting the relative addresses.
+            for the ones you flagged last time.
+         */
+#endif
+         /* external bss so not included in size of bss for file */
+         {int val=sym->n_value;
+         if (val && c_table.ptable
+             && (0== find_sym(sym,0)))
+           { sym->n_value=result;
+           result += val;}}
+     
+      sym += NUM_AUX(sym); 
 
-        }
-    return (result-start);
+    }
+  return (result-start);
 }
-
+ 
 
 
 /* go through the symbol table changing the addresses of the symbols
-   to reflect the current cfd_start */
+to reflect the current cfd_start */
 
 
-void relocate_symbols ( unsigned int length )
-{
-    struct syment *end,*sym;
-    unsigned int typ;
-    char *str;
-    char tem[SYMNMLEN +1];
-    tem[SYMNMLEN]=0;
-    end =symbol_table + length;
-    for(sym=symbol_table; sym < end; sym++) {
-        typ=NTYPE(sym);
+void
+relocate_symbols(length)
+unsigned int length;
+{struct syment *end,*sym;
+ unsigned int typ;
+ char *str;
+ char tem[SYMNMLEN +1];
+ tem[SYMNMLEN]=0;
+ end =symbol_table + length;
+ for(sym=symbol_table; sym < end; sym++) {
+    typ=NTYPE(sym);
 #ifdef BSD
-#  ifdef N_STAB    
-        if (N_STAB & sym->n_type) continue; /* skip: It  is for dbx only */
-#  endif    
-        typ=N_SECTION(sym);
-        /* if(sym->n_type  &  N_EXT) should add the symbol name,
-           so it would be accessible by future loads  */
+#ifdef N_STAB    
+    if (N_STAB & sym->n_type) continue;/* skip: It  is for dbx only */
+#endif    
+    typ=N_SECTION(sym);
+/* if(sym->n_type  &  N_EXT) should add the symbol name,
+   so it would be accessible by future loads  */
 #endif
-        switch (typ)   {
+   switch (typ)        {
 #ifdef BSD
-        case N_ABS : case N_TEXT: case N_DATA: case N_BSS:
+   case N_ABS : case N_TEXT: case N_DATA: case N_BSS:
 #endif
 #ifdef COFF
-#  ifdef  _WIN32
-        case TEXT_NSCN:
-            sym->n_value = (int)start_address;
-            break;
-        case DATA_NSCN:
-            sym->n_value = (int)sfaslp->s_start_data;
-            break;
-        case BSS_NSCN:
-#  else  /* _WIN32 */
-        case TEXT_NSCN : case DATA_NSCN: case BSS_NSCN :
+#ifdef  _WIN32
+   case TEXT_NSCN:
+     sym->n_value = (int)start_address;
+     break;
+   case DATA_NSCN:
+     sym->n_value = (int)sfaslp->s_start_data;
+     break;
+   case BSS_NSCN:
+#else  /* _WIN32 */
+   case TEXT_NSCN : case DATA_NSCN: case BSS_NSCN :
 #endif /* _WIN32 */
 #endif /* COFF */
-            str=SYM_NAME(sym);
-            dprintf(" for sym %s \n",str);
-            dprintf(" new value will be start %x\n", start_address);
+     str=SYM_NAME(sym);
+     dprintf( for sym %s ,str)
+     dprintf( new value will be start %x, start_address);
+
 #ifdef AIX3 
-            if ( N_SECTION(sym) == DATA_NSCN
-                 && NUM_AUX(sym) 
-                 && allocate_toc(sym) )
-                break;
+     if(N_SECTION(sym) == DATA_NSCN
+       && NUM_AUX(sym) 
+       && allocate_toc(sym))
+       break;
 #endif     
-            sym->n_value = (int)start_address;
-            break;
-        case  N_UNDEF:
-            str=SYM_NAME(sym);
-            dprintf(" undef symbol %s \n",str);        
-            dprintf(" symbol diff %d \n", sym - symbol_table);
-            describe_sym ( sym-symbol_table, 0 );
-            set_symbol_address(sym,str);
-            describe_sym ( sym-symbol_table, 0 );
-            break;
-        default:
+       sym->n_value = (int)start_address;
+     break;
+   case  N_UNDEF:
+     str=SYM_NAME(sym);
+     dprintf( undef symbol %s ,str);   
+     dprintf( symbol diff %d , sym - symbol_table);
+     describe_sym(sym-symbol_table);
+     set_symbol_address(sym,str);
+     describe_sym(sym-symbol_table);
+     break;
+   default:
 #ifdef COFF
-            dprintf("am ignoring a scnum %d\n",(sym->n_scnum));
+     dprintf(am ignoring a scnum %d,(sym->n_scnum));
 #endif
-            break;
-        }
-        sym += NUM_AUX(sym);
-    }
+     break;
+   }
+   sym += NUM_AUX(sym);
+ }
 }
 
 /* 
-   STEPS:
-   1) read in the symbol table from the file,
-   2) go through the symbol table, relocating external entries.
-   3) for i <=2 go thru the relocation information for this section
-   relocating the text.
-   4) done.
-   */
-
-struct node *find_sym ( struct syment *sym, char *name )
-{
-    char tem[SYMNMLEN +1];
-    tem [SYMNMLEN] = 0;
-    if (name==0) name = SYM_NAME(sym);
-    return find_sym_ptable(name);
-}
-
-void set_symbol_address ( struct syment *sym, char *string )
-{
-    struct node *answ;
-    if ( c_table.ptable ) {
-        dprintf("string %s\n", string);
-        answ = find_sym(sym,string);
-        dprintf("answ %d \n", (answ ? answ->address : -1) );
-        if ( answ ) {
+STEPS:
+1) read in the symbol table from the file,
+2) go through the symbol table, relocating external entries.
+3) for i <=2 go thru the relocation information for this section
+ relocating the text.
+4) done.
+*/
+
+struct node *
+find_sym(sym,name)
+  struct syment *sym;
+   char *name;
+{ char tem[SYMNMLEN +1];
+  tem [SYMNMLEN] = 0;
+  if (name==0) name = SYM_NAME(sym);
+  return find_sym_ptable(name);}
+
+void
+set_symbol_address(sym,string)
+struct syment *sym;
+char *string;
+{struct node *answ;
+ if (c_table.ptable)
+    {
+     dprintf(string %s, string);
+    answ = find_sym(sym,string);
+     dprintf(answ %d , (answ ? answ->address : -1));
+    if(answ)
+     {
 #ifdef COFF
 #ifdef _AIX370
-            if ( NTYPE(sym) == N_UNDEF )   
-                sym->n_value = answ->address;
-            else 
+     if (NTYPE(sym) == N_UNDEF)   
+       sym->n_value = answ->address;
+     else 
 #endif 
-                sym->n_value = answ->address -sym->n_value;
-            /* for symbols in the local  data,text and bss this gets added
-               on when we add the current value */
+      sym->n_value = answ->address -sym->n_value;
+      /* for symbols in the local  data,text and bss this gets added
+        on when we add the current value */
 #endif
 #ifdef BSD
-            /* the old value of sym->n_value is the length of the common area
-               starting at this address */
-            sym->n_value = answ->address;
+      /* the old value of sym->n_value is the length of the common area
+        starting at this address */
+      sym->n_value = answ->address;
 #endif
 #ifdef AIX3
-            fix_undef_toc_address(answ,sym,string);
+     fix_undef_toc_address(answ,sym,string);
 #endif
       
-        } else {
-            fprintf ( stdout,"undefined %s symbol", string );
-            fflush(stdout);
-        }
-    } else {
-        FEerror("symbol table not loaded",0,0);
-    }
-}
+}      
+     else
+      {
+/*
+#ifdef BSD
+       {char *name;
+        name=malloc(1+strlen(string));
+        strcpy(name,string);
+        sym->n_value = sym->n_value + (unsigned int) the_start;
+        add_symbol(name,sym->n_value,NULL);
+       }
+#endif
+*/
+        fprintf(stdout,"undefined %s symbol",string)
+         ;fflush(stdout);
+        
+   }}
+
+    else{FEerror("symbol table not loaded",0,0);}}
 
 /* include the machine independent stuff */
 #include "sfasli.c"
 
+
 #ifdef DEBUG
-void print_name ( struct syment *p )
-{
-    char tem[10], *name;
-    name = SYM_NAME(p);
-    name = (((p)->n_zeroes == 0) ? 
-             &my_string_table[(p)->n_offset] :
-             ((p)->n_name[SYMNMLEN -1] ? 
-               (strncpy(tem,(p)->n_name,  
-                         SYMNMLEN), 
-                 (char *)tem) : 
-               (p)->n_name ));
-    
-    printf("(name:|%s|)",name);
-    printf("(sclass 0x%x)",p->n_sclass);
-#ifndef __MINGW32__ 
-    printf("(external_p 0x%x)",SYM_EXTERNAL_P(p));
-#endif 
-    printf("(n_type 0x%x)",p->n_type);
-    printf("(n_value 0x%x)",p->n_value);
-    printf("(numaux 0x%x)\n",NUM_AUX(p));
-    fflush(stdout);
+print_name(p)
+     struct syment *p;
+{char tem[10],*name;
+ name=SYM_NAME(p);
+ name=   (((p)->_n._n_n._n_zeroes == 0) ? 
+           &my_string_table[(p)->_n._n_n._n_offset] :
+               ((p)->_n._n_name[SYMNMLEN -1] ? 
+                                (strncpy(tem,(p)->_n._n_name,  
+                                          SYMNMLEN), 
+                                 (char *)tem) : 
+                                 (p)->_n._n_name ));
+
+ printf("(name:|%s|)",name);
+ printf("(sclass 0x%x)",p->n_sclass);
+  printf("(external_p 0x%x)",SYM_EXTERNAL_P(p));
+ printf("(n_type 0x%x)",p->n_type);
+ printf("(n_value 0x%x)",p->n_value);
+ printf("(numaux 0x%x)\n",NUM_AUX(p));
+ fflush(stdout);
 }
 #endif
 
Index: o/toplevel.c
===================================================================
RCS file: /cvsroot/gcl/gcl/o/toplevel.c,v
retrieving revision 1.5
retrieving revision 1.4
diff -u -r1.5 -r1.4
--- o/toplevel.c        8 Jul 2003 06:50:02 -0000       1.5
+++ o/toplevel.c        15 Feb 2003 00:38:28 -0000      1.4
@@ -28,7 +28,7 @@
 
 #include "include.h"
 
-object sLcompile, sLload, sLeval, sLcompile_tl, sLload_tl, sLexecute;
+object sLcompile, sLload, sLeval;
 object sLprogn;
 
 
@@ -132,10 +132,9 @@
        if(endp(arg))
                FEtoo_few_argumentsF(arg);
        for (ss = MMcar(arg);  !endp(ss);  ss = MMcdr(ss))
-            if ( (MMcar(ss) == sLeval) || (MMcar(ss) == sLexecute) )
+               if(MMcar(ss) == sLeval)
                        flag = TRUE;
-               else if ( MMcar(ss) != sLload && MMcar(ss) != sLcompile &&
-                          MMcar(ss) != sLload_tl && MMcar(ss) != sLcompile_tl )
+               else if(MMcar(ss) != sLload && MMcar(ss) != sLcompile)
                 FEinvalid_form("~S is an undefined situation for EVAL-WHEN.",
                                MMcar(ss));
        if(flag) {
@@ -195,13 +194,11 @@
 }
 
 DEF_ORDINARY("COMPILE",sLcompile,LISP,"");
-DEF_ORDINARY("COMPILE-TOPLEVEL",sLcompile_tl,KEYWORD,"");
 DEF_ORDINARY("DECLARE",sLdeclare,LISP,"");
 DEF_ORDINARY("EVAL",sLeval,LISP,"");
-DEF_ORDINARY("EXECUTE",sLexecute,KEYWORD,"");
+DEF_ORDINARY("EVAL",sLeval,LISP,"");
 DEF_ORDINARY("FUNCTION-DOCUMENTATION",sSfunction_documentation,SI,"");
 DEF_ORDINARY("LOAD",sLload,LISP,"");
-DEF_ORDINARY("LOAD-TOPLEVEL",sLload_tl,KEYWORD,"");
 DEF_ORDINARY("PROGN",sLprogn,LISP,"");
 DEF_ORDINARY("TYPEP",sLtypep,LISP,"");
 DEF_ORDINARY("VALUES",sLvalues,LISP,"");
Index: o/unexnt.c
===================================================================
RCS file: /cvsroot/gcl/gcl/o/unexnt.c,v
retrieving revision 1.11
retrieving revision 1.10
diff -u -r1.11 -r1.10
--- o/unexnt.c  11 Jul 2003 06:28:32 -0000      1.11
+++ o/unexnt.c  13 Jan 2003 04:48:08 -0000      1.10
@@ -36,14 +36,6 @@
 #include "cyglacks.h"
 #endif
 
-#if 0
-#ifdef __MINGW32__
-#  define SEPARATE_BSS_SECTION
-#endif
-#endif
-
-extern sigint();
-
 /* Include relevant definitions from IMAGEHLP.H, which can be found
    in \\win32sdk\mstools\samples\image\include\imagehlp.h. */
 
@@ -140,7 +132,7 @@
 {
   extern void mainCRTStartup (void);
 
-#if 1
+#if 0
   /* Give us a way to debug problems with crashes on startup when
      running under the MSVC profiler. */
   if (GetEnvironmentVariable ("EMACS_DEBUG", NULL, 0) > 0)
@@ -709,8 +701,6 @@
     printf ("\t0x%p BSS start in process.\n", bss_data);
     printf ("\t0x%08lx BSS offset in executable.\n", index);
     printf ("\t0x%08lx BSS size in bytes.\n", size);
-    printf ("\t0x%08lx file base.\n", p_outfile->file_base );
-    printf ("\t0x%08lx file base + index.\n", p_outfile->file_base + index );
     memcpy ((char *) p_outfile->file_base + index, bss_data, size);
 }
 
@@ -750,10 +740,6 @@
       i = GetLastError ();
       exit (1);
     }
-    printf ("\t0x%p BSS start in memory.\n", bss_start);
-    printf ("\t0x%08lx BSS offset in saved executable.\n", index);
-    printf ("\t0x%08lx BSS size in bytes.\n", bss_size);
-    printf ("\t0x%08lx bytes read.\n", n_read);
 
   CloseHandle (file);
 }
@@ -789,11 +775,6 @@
   file_base = MapViewOfFileEx (file_mapping, FILE_MAP_COPY, 0, 
                               heap_index_in_executable, size,
                               get_heap_start ());
-    printf ("\t0x%p Heap start in memory.\n", get_heap_start() );
-    printf ("\t0x%08lx Heap offset in executable.\n", 
heap_index_in_executable);
-    printf ("\t0x%08lx Heap size in bytes.\n", size);
-    printf ("\t0x%08lx file base.\n", file_base);
-
   if (file_base != 0) 
     {
       return;
@@ -972,11 +953,8 @@
      the region below the 256MB line for our malloc arena - 229MB is
      still a pretty decent arena to play in!  */
 
-#if 0
   unsigned long base = DBEGIN;   /*  27MB */
-#else  
-  unsigned long base = 0x10100000 /*0x01B00000*/;  /*  27MB */
-#endif  
+  /*   unsigned long base = 0x01B00000; */  /*  27MB */
   unsigned long end  = 1 << VALBITS; /* 256MB */
   void *ptr = NULL;
 
@@ -1001,7 +979,6 @@
                      MEM_RESERVE,
                      PAGE_NOACCESS);
   DBEGIN = (DBEGIN_TY) ptr;
-  base = DBEGIN;
 #endif
 
   return ptr;
Index: cmpnew/cmpmain.lsp
===================================================================
RCS file: /cvsroot/gcl/gcl/cmpnew/cmpmain.lsp,v
retrieving revision 1.19
diff -u -r1.19 cmpmain.lsp
--- cmpnew/cmpmain.lsp  8 Jul 2003 04:20:42 -0000       1.19
+++ cmpnew/cmpmain.lsp  17 Jul 2003 18:06:44 -0000
@@ -45,18 +45,7 @@
 ;;If the following is a string, then it is inserted instead of
 ;; the include file cmpinclude.h, EXCEPT for system-p calls.
 (defvar *cmpinclude-string* t)
-(defvar *compiler-default-type* #p".lsp")
-(defvar *compiler-normal-type* #p".lsp")
 
-(defun compiler-default-type (pname) 
-  "Set the default file extension (type) for compilable file names."
-  (setf *compiler-default-type* (if (pathnamep pname)
-                                   pname
-                                 (make-pathname :type (string-left-trim "." 
pname)))))
-
-(defun compiler-reset-type ()
-  "Set the default file extension (type) to <.lsp>."
-  (compiler-default-type *compiler-normal-type*))
 
 ;; Let the user write dump c-file etc to  /dev/null.
 (defun get-output-pathname (file ext name &optional (dir (pathname-directory 
*default-pathname-defaults*)))
@@ -190,26 +179,26 @@
   (cond (*compiler-in-use*
          (format t "~&The compiler was called recursively.~%~
 Cannot compile ~a.~%"
-                 (namestring (merge-pathnames input-pathname 
*compiler-default-type*)))
+                 (namestring (merge-pathnames input-pathname #".lsp")))
          (setq *error-p* t)
          (return-from compile-file1 (values)))
         (t (setq *error-p* nil)
            (setq *compiler-in-use* t)))  
 
-  (unless (probe-file (merge-pathnames input-pathname *compiler-default-type*))
+  (unless (probe-file (merge-pathnames input-pathname #".lsp"))
     (format t "~&The source file ~a is not found.~%"
-            (namestring (merge-pathnames input-pathname 
*compiler-default-type*)))
+            (namestring (merge-pathnames input-pathname #".lsp")))
     (setq *error-p* t)
     (return-from compile-file1 (values)))
 
   (when *compile-verbose*
     (format t "~&Compiling ~a.~%"
-            (namestring (merge-pathnames input-pathname 
*compiler-default-type*))))
+            (namestring (merge-pathnames input-pathname #".lsp"))))
 
   (and *record-call-info* (clear-call-table))
 
   (with-open-file
-          (*compiler-input* (merge-pathnames input-pathname 
*compiler-default-type*))
+          (*compiler-input* (merge-pathnames input-pathname #".lsp"))
 
 
     (cond ((numberp *split-files*)
Index: pcl/pcl_boot.lisp
===================================================================
RCS file: /cvsroot/gcl/gcl/pcl/pcl_boot.lisp,v
retrieving revision 1.2
retrieving revision 1.1
diff -u -r1.2 -r1.1
--- pcl/pcl_boot.lisp   15 Jul 2003 18:03:38 -0000      1.2
+++ pcl/pcl_boot.lisp   26 Feb 2003 22:21:38 -0000      1.1
@@ -203,13 +203,9 @@
                  (duplicate-option :method-class)
                  (initarg :method-class `',(cadr option))))
            (:method
-;            (error
-;              "DEFGENERIC doesn't support the :METHOD option yet."))))
-            (push `(defmethod ,function-specifier ,@(cdr option))
-                  methods))))
-;          (t ;unsuported things must get a 'program-error
-;           (simple-program-error "Unsupported option ~S." option))))
-       
+             (error
+               "DEFGENERIC doesn't support the :METHOD option yet."))))
+
        (let ((declarations (initarg :declarations)))
          (when declarations (initarg :declarations `',declarations)))))
     `(progn
=============================================================================
against 2.5.3
=============================================================================
Index: h/new_decl.h
===================================================================
RCS file: /cvsroot/gcl/gcl/h/new_decl.h,v
retrieving revision 1.42
retrieving revision 1.42.4.1
diff -u -r1.42 -r1.42.4.1
--- h/new_decl.h        1 Mar 2003 22:37:37 -0000       1.42
+++ h/new_decl.h        16 Jul 2003 02:02:49 -0000      1.42.4.1
@@ -1,465 +1,458 @@
-EXTER  object   fLbye   (fixnum exitc) ; 
-EXTER  object   fLquit   (fixnum exitc) ; 
-EXTER  object   fLexit   (fixnum exitc) ; 
-EXTER object  sSAno_initA ; 
-EXTER  object   fLidentity   (object x0) ; 
-EXTER  object   fLlisp_implementation_version   (void) ; 
-EXTER object  sSAlisp_maxpagesA ; 
-EXTER object  sSAsystem_directoryA ; 
-EXTER object  sSAmultiply_stacksA ; 
-EXTER object  sStop_level ; 
-EXTER object  sSAcommand_argsA ; 
-EXTER object  sSAafter_gbc_hookA ; 
-EXTER object  sSAignore_maximum_pagesA ; 
-EXTER  object   fSallocated   (object typ) ; 
-EXTER  object   fSreset_number_used   (object typ) ; 
-EXTER  object   fSstaticp   (object x) ; 
-EXTER  object   fSallocate   (object type,fixnum npages,...) ; 
-EXTER  object   fSallocate_sgc   (object type,fixnum min,fixnum max,fixnum 
free_percent) ; 
-EXTER  object   fSallocate_growth   
-      (object type,fixnum min,fixnum max,fixnum percent,fixnum percent_free) ; 
-EXTER  object   fSallocate_contiguous_pages   (fixnum npages,...) ; 
-EXTER  object   fSallocated_contiguous_pages   (void) ; 
-EXTER  object   fSmaximum_contiguous_pages   (void) ; 
-EXTER  object   fSallocate_relocatable_pages   (fixnum npages,...) ; 
-EXTER  object   fSallocated_relocatable_pages   (void) ; 
-EXTER  object   fSget_hole_size   (void) ; 
-EXTER  object   fSset_hole_size   (fixnum npages,...) ; 
-EXTER  object   fLgbc   (object x0) ; 
-EXTER object  sSAnotify_gbcA ; 
-EXTER object  sSAgbc_messageA ; 
-EXTER object  sLcommon ; 
-EXTER object  sLnull ; 
-EXTER object  sLcons ; 
-EXTER object  sLlist ; 
-EXTER object  sLsymbol ; 
-EXTER object  sLarray ; 
-EXTER object  sLvector ; 
-EXTER object  sLbit_vector ; 
-EXTER object  sLstring ; 
-EXTER object  sLsequence ; 
-EXTER object  sLsimple_array ; 
-EXTER object  sLsimple_vector ; 
-EXTER object  sLsimple_bit_vector ; 
-EXTER object  sLsimple_string ; 
-EXTER object  sLfunction ; 
-EXTER object  sLcompiled_function ; 
-EXTER object  sLpathname ; 
-EXTER object  sLcharacter ; 
-EXTER object  sLnumber ; 
-EXTER object  sLrational ; 
-EXTER object  sLfloat ; 
-EXTER object  sLstring_char ; 
-EXTER object  sLinteger ; 
-EXTER object  sLratio ; 
-EXTER object  sLshort_float ; 
-EXTER object  sLstandard_char ; 
-EXTER object  sLboolean ; 
-EXTER object  sLfixnum ; 
-EXTER object  sLpositive_fixnum ; 
-EXTER object  sLcomplex ; 
-EXTER object  sLsingle_float ; 
-EXTER object  sLpackage ; 
-EXTER object  sLbignum ; 
-EXTER object  sLrandom_state ; 
-EXTER object  sLdouble_float ; 
-EXTER object  sLstream ; 
-EXTER object  sLbit ; 
-EXTER object  sLreadtable ; 
-EXTER object  sLlong_float ; 
-EXTER object  sLhash_table ; 
-EXTER object  sLkeyword ; 
-EXTER object  sLstructure ; 
-EXTER object  sLsatisfies ; 
-EXTER object  sLmember ; 
-EXTER object  sLnot ; 
-EXTER object  sLor ; 
-EXTER object  sLand ; 
-EXTER object  sLvalues ; 
-EXTER object  sLmod ; 
-EXTER object  sLsigned_byte ; 
-EXTER object  sLunsigned_byte ; 
-EXTER object  sLsigned_char ; 
-EXTER object  sLunsigned_char ; 
-EXTER object  sLsigned_short ; 
-EXTER object  sLunsigned_short ; 
-EXTER object  sLA ; 
-EXTER object  sLplusp ; 
-EXTER object  sLmethod_combination ; 
-EXTER object  sLarithmetic_error ; 
-EXTER object  sLbase_char ; 
-EXTER object  sLbase_string ; 
-EXTER object  sLbroadcast_stream ; 
-EXTER object  sLbuilt_in_class ; 
-EXTER object  sLcell_error ; 
-EXTER object  sLclass ; 
-EXTER object  sLconcatenated_stream ; 
-EXTER object  sLcondition ; 
-EXTER object  sLcontrol_error ; 
-EXTER object  sLdivision_by_zero ; 
-EXTER object  sLecho_stream ; 
-EXTER object  sLend_of_file ; 
-EXTER object  sLerror ; 
-EXTER object  sLextended_char ; 
-EXTER object  sLfile_error ; 
-EXTER object  sLfile_stream ; 
-EXTER object  sLfloating_point_inexact ; 
-EXTER object  sLfloating_point_invalid_operation ; 
-EXTER object  sLfloating_point_overflow ; 
-EXTER object  sLfloating_point_underflow ; 
-EXTER object  sLgeneric_function ; 
-EXTER object  sLlogical_pathname ; 
-EXTER object  sLmethod ; 
-EXTER object  sLpackage_error ; 
-EXTER object  sLparse_error ; 
-EXTER object  sLprint_not_readable ; 
-EXTER object  sLprogram_error ; 
-EXTER object  sLreader_error ; 
-EXTER object  sLserious_condition ; 
-EXTER object  sLsimple_base_string ; 
-EXTER object  sLsimple_condition ; 
-EXTER object  sLsimple_type_error ; 
-EXTER object  sLsimple_warning ; 
-EXTER object  sLstandard_class ; 
-EXTER object  sLstandard_generic_function ; 
-EXTER object  sLstandard_method ; 
-EXTER object  sLstandard_object ; 
-EXTER object  sLstorage_condition ; 
-EXTER object  sLstream_error ; 
-EXTER object  sLstring_stream ; 
-EXTER object  sLstructure_class ; 
-EXTER object  sLstructure_object ; 
-EXTER object  sLstyle_warning ; 
-EXTER object  sLsynonym_stream ; 
-EXTER object  sLtwo_way_stream ; 
-EXTER object  sLtype_error ; 
-EXTER object  sLunbound_slot ; 
-EXTER object  sLunbound_variable ; 
-EXTER object  sLundefined_function ; 
-EXTER object  sLwarning ; 
-EXTER object  sSchar_size ; 
-EXTER object  sSshort_size ; 
-EXTER  object   fLfuncall   (object fun,...) ; 
-EXTER  object   fLapply   (object fun,...) ; 
-EXTER  object   fLeval   (object x0) ; 
-EXTER  object   fLconstantp   (object x0) ; 
-EXTER object  sSlambda_block_expanded ; 
-EXTER object  sSAbreak_pointsA ; 
-EXTER object  sSAbreak_stepA ; 
-EXTER  object   fLmacroexpand   (object form,...) ; 
-EXTER object  sLfuncall ; 
-EXTER object  sLAmacroexpand_hookA ; 
-EXTER object  sSdefmacroA ; 
-EXTER object  sSAinhibit_macro_specialA ; 
-EXTER  object   fLnot   (object x0) ; 
-EXTER  object   fLnot   (object x0) ; 
-EXTER  object   fLsymbolp   (object x0) ; 
-EXTER  object   fLatom     (object x0) ; 
-EXTER  object   fLconsp   (object x0) ; 
-EXTER  object   fLlistp   (object x0) ; 
-EXTER  object   fLnumberp   (object x0) ; 
-EXTER  object   fLintegerp    (object x0) ; 
-EXTER  object   fLrationalp   (object x0) ; 
-EXTER  object   fLrealp   (object x0) ; 
-EXTER  object   fLfloatp   (object x0) ; 
-EXTER  object   fLcomplexp   (object x0) ; 
-EXTER  object   fLcharacterp   (object x0) ; 
-EXTER  object   fLstringp    (object x0) ; 
-EXTER  object   fLbit_vector_p   (object x0) ; 
-EXTER  object   fLvectorp   (object x0) ; 
-EXTER  object   fLsimple_string_p   (object x0) ; 
-EXTER  object   fLsimple_bit_vector_p    (object x0) ; 
-EXTER  object   fLsimple_vector_p    (object x0) ; 
-EXTER  object   fLarrayp    (object x0) ; 
-EXTER  object   fLpackagep    (object x0) ; 
-EXTER  object   fLfunctionp   (object x0) ; 
-EXTER  object   fLcompiled_function_p   (object x0) ; 
-EXTER  object   fLcommonp   (object x0) ; 
-EXTER  object   fLeq   (object x0,object x1) ; 
-EXTER  object   fLeql   (object x0,object x1) ; 
-EXTER  object   fLequal   (object x0,object x1) ; 
-EXTER  object   fLequalp   (object x0,object x1) ; 
-EXTER  object   fScontains_sharp_comma   (object x0) ; 
-EXTER  object   fSspicep     (object x0) ; 
-EXTER  object   fSfixnump   (object x0) ; 
-EXTER  object   fLset   (object symbol,object value) ; 
-EXTER  object   fSfset   (object sym,object function) ; 
-EXTER  object   fLmakunbound   (object sym) ; 
-EXTER  object   fLfmakunbound   (object sym) ; 
-EXTER object  sSclear_compiler_properties ; 
-EXTER  object   fSclear_compiler_properties   (object x0,object x1) ; 
-EXTER object  sLaref ; 
-EXTER object  sLcar ; 
-EXTER object  sLcdr ; 
-EXTER object  sLchar ; 
-EXTER object  sLdecf ; 
-EXTER object  sLelt ; 
-EXTER object  sLfill_pointer ; 
-EXTER object  sLget ; 
-EXTER object  sLgetf ; 
-EXTER object  sLgethash ; 
-EXTER object  sLincf ; 
-EXTER object  sLpop ; 
-EXTER object  sLpush ; 
-EXTER object  sLschar ; 
-EXTER object  sLsetf ; 
-EXTER object  sSsetf_lambda ; 
-EXTER object  sSstructure_access ; 
-EXTER object  sLsvref ; 
-EXTER object  sStraced ; 
-EXTER object  sLvector ; 
-EXTER object  sKallow_other_keys ; 
-EXTER  object   fSerror_set   (volatile object x0) ; 
-EXTER object  sLgensym_counter ; 
-EXTER  object   fSmc   (object name,object address) ; 
-EXTER  object   fSmfsfun   (object name,object address,object argd) ; 
-EXTER  object   fSmfvfun   (object name,object address,object argd) ; 
-EXTER  object   fSmfvfun_key   (object symbol,object address,object 
argd,object keys) ; 
-EXTER  object   fSmf   (object name,object addr) ; 
-EXTER  object   fSmm   (object name,object addr) ; 
-EXTER  object   fScompiled_function_name   (object fun) ; 
-EXTER  object   fSturbo_closure   (object funobj) ; 
-EXTER  object   fSspecialp   (object sym) ; 
-EXTER object  sSdebug ; 
-EXTER  object   fSdefvar1   (object sym,object val,...) ; 
-EXTER  object   fSdebug   (object sym,object val) ; 
-EXTER  object   fSsetvv   (object index,object val) ; 
-EXTER object  sSPmemory ; 
-EXTER object  sSPinit ; 
-EXTER   object    fSinit_cmp_anon   (void) ; 
-EXTER object  sKexternal ; 
-EXTER object  sKinherited ; 
-EXTER object  sKinternal ; 
-EXTER object  sKnicknames ; 
-EXTER object  sKuse ; 
-EXTER object  sLApackageA ; 
-EXTER  object   fSset_gmp_allocate_relocatable   
-      (object flag) ; 
-EXTER  object   fSallocate_bigger_fixnum_range   (fixnum min,fixnum max) ; 
-EXTER  object   fScmod   (object num) ; 
-EXTER  object   fScplus   (object x0,object x1) ; 
-EXTER  object   fSctimes   (object x0,object x1) ; 
-EXTER  object   fScdifference   (object x0,object x1) ; 
-EXTER  object   fLnth   (fixnum index,object list) ; 
-EXTER  object   fLfirst   (object x) ; 
-EXTER  object   fLsecond   (object x) ; 
-EXTER  object   fLthird   (object x) ; 
-EXTER  object   fLfourth   (object x) ; 
-EXTER  object   fLfifth   (object x) ; 
-EXTER  object   fLsixth   (object x) ; 
-EXTER  object   fLseventh   (object x) ; 
-EXTER  object   fLeighth   (object x) ; 
-EXTER  object   fLninth   (object x) ; 
-EXTER  object   fLtenth   (object x) ; 
-EXTER  object   fSnext_hash_table_entry   (object table,object ind) ; 
-EXTER  object   fLhash_table_test   (object table) ; 
-EXTER  object   fLhash_table_size   (object table) ; 
-EXTER object   sLarray_rank_limit ; 
-EXTER object   sLarray_dimension_limit ; 
-EXTER object   sLarray_total_size_limit ; 
-EXTER object  sLbit ; 
-EXTER   object    fLaref   (object x,fixnum i, ...) ; 
-EXTER   object    fLsvref   (object x,ufixnum i) ; 
-EXTER   object    fLrow_major_aref   (object x,fixnum i) ; 
-EXTER   object    fSaset1   (object x, fixnum i,object val) ; 
-EXTER   object    fSaset   (object x,fixnum i,object y, ...) ; 
-EXTER   object    fSsvset   (object x,fixnum i,object val) ; 
-EXTER  object   fSmake_vector1   (fixnum n,fixnum elt_type,object staticp,...) 
; 
-EXTER  object   fSget_aelttype   (object x) ; 
-EXTER  object   fSmake_vector   (object x0,object x1,object x2,object 
x3,object x4,object x5,object x6,...) ; 
-EXTER  object   fSmake_array1   
-      (fixnum elt_type,object staticp,object initial_element,object 
displaced_to,fixnum displaced_index_offset,
-       object dimensions) ; 
-EXTER  object   fScopy_array_portion   (object x,object y,fixnum i1,fixnum 
i2,object n1o) ; 
-EXTER  object   fSfill_pointer_set   (object x,fixnum i) ; 
-EXTER  object   fLfill_pointer   (object x) ; 
-EXTER  object   
-      fLarray_has_fill_pointer_p   (object x) ; 
-EXTER  object   fLarray_element_type   (object x) ; 
-EXTER  object   fLadjustable_array_p   (object x) ; 
-EXTER  object   fSdisplaced_array_p   (object x) ; 
-EXTER  object   fLarray_rank   (object x) ; 
-EXTER  object   fLarray_dimension   (object x,fixnum i) ; 
-EXTER  object   fSreplace_array   (object old,object new) ; 
-EXTER  object   fLarray_total_size   (object x) ; 
-EXTER  object   fSaset_by_cursor   (object array,object val,object cursor) ; 
-EXTER object  sSAmatch_dataA ; 
-EXTER object  sSAcase_fold_searchA ; 
-EXTER  object   fSmatch_beginning   (fixnum i) ; 
-EXTER  object   fSmatch_end   (fixnum i) ; 
-EXTER  object   fSstring_match   (object pattern,object string,...) ; 
-EXTER object  sSs_data ; 
-EXTER object  sLcompile ; 
-EXTER object  sLdeclare ; 
-EXTER object  sLeval ; 
-EXTER object  sLeval ; 
-EXTER object  sSfunction_documentation ; 
-EXTER object  sLload ; 
-EXTER object  sLprogn ; 
-EXTER object  sLtypep ; 
-EXTER object  sLvalues ; 
-EXTER object  sSvariable_documentation ; 
-EXTER object  sLwarn ; 
-EXTER object  sSAallow_gzipped_fileA ; 
-EXTER object  sKmyaddr ; 
-EXTER object  sKmyport ; 
-EXTER object  sKasync ; 
-EXTER object  sKhost ; 
-EXTER object  sKserver ; 
-EXTER object  sSsocket ; 
-EXTER object  sLAstandard_inputA ; 
-EXTER object  sLAstandard_outputA ; 
-EXTER object  sLAerror_outputA ; 
-EXTER object  sLAterminal_ioA ; 
-EXTER object  sLAquery_ioA ; 
-EXTER object  sLAdebug_ioA ; 
-EXTER object  sLAtrace_outputA ; 
-EXTER object  sSAignore_eof_on_terminal_ioA ; 
-EXTER object  sSAload_pathnameA ; 
-EXTER object  sLAload_verboseA ; 
-EXTER object  sKabort ; 
-EXTER object  sKappend ; 
-EXTER object  sKcreate ; 
-EXTER object  sKdefault ; 
-EXTER object  sKdirection ; 
-EXTER object  sKelement_type ; 
-EXTER object  sKerror ; 
-EXTER object  sKif_does_not_exist ; 
-EXTER object  sKif_exists ; 
-EXTER object  sKinput ; 
-EXTER object  sKio ; 
-EXTER object  sKnew_version ; 
-EXTER object  sKoutput ; 
-EXTER object  sKoverwrite ; 
-EXTER object  sKprint ; 
-EXTER object  sKprobe ; 
-EXTER object  sKrename ; 
-EXTER object  sKrename_and_delete ; 
-EXTER object  sKset_default_pathname ; 
-EXTER object  sKsupersede ; 
-EXTER object  sKverbose ; 
-EXTER object  sLAread_default_float_formatA ; 
-EXTER object  sLAread_baseA ; 
-EXTER object  sLAread_suppressA ; 
-EXTER object  sSY ; 
-EXTER object  sSYB ; 
-EXTER object  sSYZ ; 
-EXTER object  sLlistA ; 
-EXTER object  sLappend ; 
-EXTER object  sLnconc ; 
-EXTER object  sLapply ; 
-EXTER object  sLvector ; 
-EXTER object  sKupcase ; 
-EXTER object  sKdowncase ; 
-EXTER object  sKcapitalize ; 
-EXTER object  sKstream ; 
-EXTER object  sKescape ; 
-EXTER object  sKreadably ; 
-EXTER object  sKpretty ; 
-EXTER object  sKcircle ; 
-EXTER object  sKbase ; 
-EXTER object  sKradix ; 
-EXTER object  sKcase ; 
-EXTER object  sKgensym ; 
-EXTER object  sKlevel ; 
-EXTER object  sKlength ; 
-EXTER object  sKarray ; 
-EXTER object  sLAprint_escapeA ; 
-EXTER object  sLAprint_readablyA ; 
-EXTER object  sLAprint_prettyA ; 
-EXTER object  sLAprint_circleA ; 
-EXTER object  sLAprint_baseA ; 
-EXTER object  sLAprint_radixA ; 
-EXTER object  sLAprint_caseA ; 
-EXTER object  sLAprint_gensymA ; 
-EXTER object  sLAprint_levelA ; 
-EXTER object  sLAprint_lengthA ; 
-EXTER object  sLAprint_arrayA ; 
-EXTER object  sSAprint_packageA ; 
-EXTER object  sSAprint_structureA ; 
-EXTER object  sSpretty_print_format ; 
-EXTER object  sSAprint_nansA ; 
-EXTER  object   fLformat   (object strm, object control,...) ; 
-EXTER object  sSAindent_formatted_outputA ; 
-EXTER  object   fSsetenv   (object variable,object value) ; 
-EXTER  object   fLdelete_file   (object path) ; 
-EXTER  object   fLerror   (object fmt_string,...) ; 
-EXTER  object   fLspecific_error   (object error_name,object fmt_string,...) ; 
-EXTER  object   fLspecific_correctable_error   
-       (object error_name,object fmt_string,...) ; 
-EXTER  object   fLcerror   (object continue_fmt_string,object fmt_string,...) 
; 
-EXTER  object   fSihs_top   (void) ; 
-EXTER  object   fSihs_fun   (object x0) ; 
-EXTER  object   fSihs_vs   (object x0) ; 
-EXTER  object   fSfrs_top   (void) ; 
-EXTER  object   fSfrs_vs   (object x0) ; 
-EXTER  object   fSfrs_bds   (object x0) ; 
-EXTER  object   fSfrs_class   (object x0) ; 
-EXTER  object   fSfrs_tag   (object x0) ; 
-EXTER  object   fSfrs_ihs   (object x0) ; 
-EXTER  object   fSbds_top   (void) ; 
-EXTER  object   fSbds_var   (object x0) ; 
-EXTER  object   fSbds_val   (object x0) ; 
-EXTER  object   fSvs_top   (void) ; 
-EXTER  object   fSvs   (object x0) ; 
-EXTER  object   fSsch_frs_base   (object x0,object x1) ; 
-EXTER  object   fSinternal_super_go   (object tag,object x1,object x2) ; 
-EXTER object  sSuniversal_error_handler ; 
-EXTER  object   fSuniversal_error_handler   (object x0,object x1,object 
x2,object x3,object error_fmt_string) ; 
-EXTER object  sSterminal_interrupt ; 
-EXTER object  sKwrong_type_argument ; 
-EXTER object  sKtoo_few_arguments ; 
-EXTER object  sKtoo_many_arguments ; 
-EXTER object  sKunexpected_keyword ; 
-EXTER object  sKinvalid_form ; 
-EXTER object  sKunbound_variable ; 
-EXTER object  sKinvalid_variable ; 
-EXTER object  sKundefined_function ; 
-EXTER object  sKinvalid_function ; 
-EXTER object  sKpackage_error ; 
-EXTER object  sKcatch ; 
-EXTER object  sKprotect ; 
-EXTER object  sKcatchall ; 
-EXTER  object   fLget_universal_time   (void) ; 
-EXTER  object   fLget_internal_real_time   (void) ; 
-EXTER object  sSAdefault_time_zoneA ; 
-EXTER  object   fSgetpid   (void) ; 
-EXTER  object   fSuse_fast_links   (object flag,...) ; 
-EXTER object  sScdefn ; 
-EXTER object  sLAlink_arrayA ; 
-EXTER  object   fSprofile   (object start_address,object scale) ; 
-EXTER  object   fSfunction_start   (object funobj) ; 
-EXTER  object   fSset_up_combined   (object first,...) ; 
-EXTER  object   fSdisplay_profile   (object start_addr,object scal) ; 
-EXTER  object   fSarray_adress   (object array) ; 
-EXTER object  sSAprofile_arrayA ; 
-EXTER object  sSAinterrupt_enableA ; 
-EXTER object  sSsigusr1_interrupt ; 
-EXTER object  sSsigio_interrupt ; 
-EXTER  object   sSsignal_safety_required   (fixnum signo,fixnum safety) ; 
-EXTER  object   fSallow_signal   (fixnum n) ; 
-EXTER  object   fSinitfun   
-      (object sym,object addr_ind,object argd,...) ; 
-EXTER  object   fSinitmacro   (object first,...) ; 
-EXTER  object   fSset_key_struct   (object key_struct_ind) ; 
-EXTER  object   fSinvoke   (object x) ; 
-EXTER  object   fSopen_named_socket   (fixnum port) ; 
-EXTER  object   fSclose_fd   (fixnum fd) ; 
-EXTER  object   fSclose_sfd   (object sfd) ; 
-EXTER  object   fSaccept_socket_connection   (object named_socket) ; 
-EXTER  object   fShostname_to_hostid   (object host) ; 
-EXTER  object   fSgethostname   (void) ; 
-EXTER  object   fShostid_to_hostname   (object host_id) ; 
-EXTER  object   fScheck_fd_for_input   (fixnum fd,fixnum timeout) ; 
-EXTER  object   fSclear_connection   (fixnum fd) ; 
-EXTER  object   fSconnection_state_fd   (object sfd) ; 
-EXTER  object   fSour_write   (object sfd,object buffer,fixnum nbytes) ; 
-EXTER  object   fSour_read_with_offset   (object fd,object buffer,fixnum 
offset,fixnum nbytes,fixnum timeout) ; 
-EXTER  object   fSprint_to_string1   (object str,object x,object the_code) ; 
-EXTER  object   fSset_sigio_for_fd   (fixnum fd) ; 
-EXTER  object   fSreset_string_input_stream   (object strm,object 
string,fixnum start,fixnum end) ; 
-EXTER  object   fScheck_state_input   (object osfd,fixnum timeout) ; 
-EXTER  object   fSclear_connection_state   (object osfd) ; 
-EXTER  object   fSgetpeername   (object sock) ; 
-EXTER  object   fSgetsockname   (object sock) ; 
-EXTER  object   fSset_blocking   (object sock,object setBlocking) ; 
+EXTER object fLbye (fixnum exitc);
+EXTER object fLquit (fixnum exitc);
+EXTER object fLexit (fixnum exitc);
+EXTER object sSAno_initA;
+EXTER object fLidentity (object x0);
+EXTER object fLlisp_implementation_version (void);
+EXTER object sSAlisp_maxpagesA;
+EXTER object sSAsystem_directoryA;
+EXTER object sSAmultiply_stacksA;
+EXTER object sStop_level;
+EXTER object sSAcommand_argsA;
+EXTER object sSAafter_gbc_hookA;
+EXTER object sSAignore_maximum_pagesA;
+EXTER object fSallocated (object typ);
+EXTER object fSreset_number_used (object typ);
+EXTER object fSstaticp (object x);
+EXTER object fSallocate (object type,fixnum npages,...);
+EXTER object fSallocate_sgc (object type,fixnum min,fixnum max,fixnum 
free_percent);
+EXTER object fSallocate_growth (object type,fixnum min,fixnum max,fixnum 
percent,fixnum percent_free);
+EXTER object fSallocate_contiguous_pages (fixnum npages,...);
+EXTER object fSallocated_contiguous_pages (void);
+EXTER object fSmaximum_contiguous_pages (void);
+EXTER object fSallocate_relocatable_pages (fixnum npages,...);
+EXTER object fSallocated_relocatable_pages (void);
+EXTER object fSget_hole_size (void);
+EXTER object fSset_hole_size (fixnum npages,...);
+EXTER object fLgbc (object x0);
+EXTER object sSAnotify_gbcA;
+EXTER object sSAgbc_messageA;
+EXTER object sLcommon;
+EXTER object sLnull;
+EXTER object sLcons;
+EXTER object sLlist;
+EXTER object sLsymbol;
+EXTER object sLarray;
+EXTER object sLvector;
+EXTER object sLbit_vector;
+EXTER object sLstring;
+EXTER object sLsequence;
+EXTER object sLsimple_array;
+EXTER object sLsimple_vector;
+EXTER object sLsimple_bit_vector;
+EXTER object sLsimple_string;
+EXTER object sLfunction;
+EXTER object sLcompiled_function;
+EXTER object sLpathname;
+EXTER object sLcharacter;
+EXTER object sLnumber;
+EXTER object sLrational;
+EXTER object sLfloat;
+EXTER object sLstring_char;
+EXTER object sLinteger;
+EXTER object sLratio;
+EXTER object sLshort_float;
+EXTER object sLstandard_char;
+EXTER object sLboolean;
+EXTER object sLfixnum;
+EXTER object sLpositive_fixnum;
+EXTER object sLcomplex;
+EXTER object sLsingle_float;
+EXTER object sLpackage;
+EXTER object sLbignum;
+EXTER object sLrandom_state;
+EXTER object sLdouble_float;
+EXTER object sLstream;
+EXTER object sLbit;
+EXTER object sLreadtable;
+EXTER object sLlong_float;
+EXTER object sLhash_table;
+EXTER object sLkeyword;
+EXTER object sLstructure;
+EXTER object sLsatisfies;
+EXTER object sLmember;
+EXTER object sLnot;
+EXTER object sLor;
+EXTER object sLand;
+EXTER object sLvalues;
+EXTER object sLmod;
+EXTER object sLsigned_byte;
+EXTER object sLunsigned_byte;
+EXTER object sLsigned_char;
+EXTER object sLunsigned_char;
+EXTER object sLsigned_short;
+EXTER object sLunsigned_short;
+EXTER object sLA;
+EXTER object sLplusp;
+EXTER object sLmethod_combination;
+EXTER object sLarithmetic_error;
+EXTER object sLbase_char;
+EXTER object sLbase_string;
+EXTER object sLbroadcast_stream;
+EXTER object sLbuilt_in_class;
+EXTER object sLcell_error;
+EXTER object sLclass;
+EXTER object sLconcatenated_stream;
+EXTER object sLcondition;
+EXTER object sLcontrol_error;
+EXTER object sLdivision_by_zero;
+EXTER object sLecho_stream;
+EXTER object sLend_of_file;
+EXTER object sLerror;
+EXTER object sLextended_char;
+EXTER object sLfile_error;
+EXTER object sLfile_stream;
+EXTER object sLfloating_point_inexact;
+EXTER object sLfloating_point_invalid_operation;
+EXTER object sLfloating_point_overflow;
+EXTER object sLfloating_point_underflow;
+EXTER object sLgeneric_function;
+EXTER object sLlogical_pathname;
+EXTER object sLmethod;
+EXTER object sLpackage_error;
+EXTER object sLparse_error;
+EXTER object sLprint_not_readable;
+EXTER object sLprogram_error;
+EXTER object sLreader_error;
+EXTER object sLserious_condition;
+EXTER object sLsimple_base_string;
+EXTER object sLsimple_condition;
+EXTER object sLsimple_type_error;
+EXTER object sLsimple_warning;
+EXTER object sLstandard_class;
+EXTER object sLstandard_generic_function;
+EXTER object sLstandard_method;
+EXTER object sLstandard_object;
+EXTER object sLstorage_condition;
+EXTER object sLstream_error;
+EXTER object sLstring_stream;
+EXTER object sLstructure_class;
+EXTER object sLstructure_object;
+EXTER object sLstyle_warning;
+EXTER object sLsynonym_stream;
+EXTER object sLtwo_way_stream;
+EXTER object sLtype_error;
+EXTER object sLunbound_slot;
+EXTER object sLunbound_variable;
+EXTER object sLundefined_function;
+EXTER object sLwarning;
+EXTER object sSchar_size;
+EXTER object sSshort_size;
+EXTER object fLfuncall (object fun,...);
+EXTER object fLapply (object fun,...);
+EXTER object fLeval (object x0);
+EXTER object fLconstantp (object x0);
+EXTER object sSlambda_block_expanded;
+EXTER object sSAbreak_pointsA;
+EXTER object sSAbreak_stepA;
+EXTER object fLmacroexpand (object form,...);
+EXTER object sLfuncall;
+EXTER object sLAmacroexpand_hookA;
+EXTER object sSdefmacroA;
+EXTER object sSAinhibit_macro_specialA;
+EXTER object fLnot (object x0);
+EXTER object fLnot (object x0);
+EXTER object fLsymbolp (object x0);
+EXTER object fLatom (object x0);
+EXTER object fLconsp (object x0);
+EXTER object fLlistp (object x0);
+EXTER object fLnumberp (object x0);
+EXTER object fLintegerp (object x0);
+EXTER object fLrationalp (object x0);
+EXTER object fLrealp (object x0);
+EXTER object fLfloatp (object x0);
+EXTER object fLcomplexp (object x0);
+EXTER object fLcharacterp (object x0);
+EXTER object fLstringp (object x0);
+EXTER object fLbit_vector_p (object x0);
+EXTER object fLvectorp (object x0);
+EXTER object fLsimple_string_p (object x0);
+EXTER object fLsimple_bit_vector_p (object x0);
+EXTER object fLsimple_vector_p (object x0);
+EXTER object fLarrayp (object x0);
+EXTER object fLpackagep (object x0);
+EXTER object fLfunctionp (object x0);
+EXTER object fLcompiled_function_p (object x0);
+EXTER object fLcommonp (object x0);
+EXTER object fLeq (object x0,object x1);
+EXTER object fLeql (object x0,object x1);
+EXTER object fLequal (object x0,object x1);
+EXTER object fLequalp (object x0,object x1);
+EXTER object fScontains_sharp_comma (object x0);
+EXTER object fSspicep (object x0);
+EXTER object fSfixnump (object x0);
+EXTER object fLset (object symbol,object value);
+EXTER object fSfset (object sym,object function);
+EXTER object fLmakunbound (object sym);
+EXTER object fLfmakunbound (object sym);
+EXTER object sSclear_compiler_properties;
+EXTER object fSclear_compiler_properties (object x0,object x1);
+EXTER object sLaref;
+EXTER object sLcar;
+EXTER object sLcdr;
+EXTER object sLchar;
+EXTER object sLdecf;
+EXTER object sLelt;
+EXTER object sLfill_pointer;
+EXTER object sLget;
+EXTER object sLgetf;
+EXTER object sLgethash;
+EXTER object sLincf;
+EXTER object sLpop;
+EXTER object sLpush;
+EXTER object sLschar;
+EXTER object sLsetf;
+EXTER object sSsetf_lambda;
+EXTER object sSstructure_access;
+EXTER object sLsvref;
+EXTER object sStraced;
+EXTER object sLvector;
+EXTER object sKallow_other_keys;
+EXTER object fSerror_set (volatile object x0);
+EXTER object sLgensym_counter;
+EXTER object fSmc (object name,object address);
+EXTER object fSmfsfun (object name,object address,object argd);
+EXTER object fSmfvfun (object name,object address,object argd);
+EXTER object fSmfvfun_key (object symbol,object address,object argd,object 
keys);
+EXTER object fSmf (object name,object addr);
+EXTER object fSmm (object name,object addr);
+EXTER object fScompiled_function_name (object fun);
+EXTER object fSturbo_closure (object funobj);
+EXTER object fSspecialp (object sym);
+EXTER object sSdebug;
+EXTER object fSdefvar1 (object sym,object val,...);
+EXTER object fSdebug (object sym,object val);
+EXTER object fSsetvv (object index,object val);
+EXTER object sSPmemory;
+EXTER object sSPinit;
+EXTER object fSinit_cmp_anon (void);
+EXTER object sKexternal;
+EXTER object sKinherited;
+EXTER object sKinternal;
+EXTER object sKnicknames;
+EXTER object sKuse;
+EXTER object sLApackageA;
+EXTER object fSset_gmp_allocate_relocatable (object flag);
+EXTER object fSallocate_bigger_fixnum_range (fixnum min,fixnum max);
+EXTER object fScmod (object num);
+EXTER object fScplus (object x0,object x1);
+EXTER object fSctimes (object x0,object x1);
+EXTER object fScdifference (object x0,object x1);
+EXTER object fLnth (fixnum index,object list);
+EXTER object fLfirst (object x);
+EXTER object fLsecond (object x);
+EXTER object fLthird (object x);
+EXTER object fLfourth (object x);
+EXTER object fLfifth (object x);
+EXTER object fLsixth (object x);
+EXTER object fLseventh (object x);
+EXTER object fLeighth (object x);
+EXTER object fLninth (object x);
+EXTER object fLtenth (object x);
+EXTER object fSnext_hash_table_entry (object table,object ind);
+EXTER object fLhash_table_test (object table);
+EXTER object fLhash_table_size (object table);
+EXTER object sLarray_rank_limit;
+EXTER object sLarray_dimension_limit;
+EXTER object sLarray_total_size_limit;
+EXTER object sLbit;
+EXTER object fLaref (object x,fixnum i, ...);
+EXTER object fLsvref (object x,ufixnum i);
+EXTER object fLrow_major_aref (object x,fixnum i);
+EXTER object fSaset1 (object x, fixnum i,object val);
+EXTER object fSaset (object x,fixnum i,object y, ...);
+EXTER object fSsvset (object x,fixnum i,object val);
+EXTER object fSmake_vector1 (fixnum n,fixnum elt_type,object staticp,...);
+EXTER object fSget_aelttype (object x);
+EXTER object fSmake_vector (object x0,object x1,object x2,object x3,object 
x4,object x5,object x6,...);
+EXTER object fSmake_array1 (fixnum elt_type,object staticp,object 
initial_element,object displaced_to,fixnum displaced_index_offset, object 
dimensions);
+EXTER object fScopy_array_portion (object x,object y,fixnum i1,fixnum 
i2,object n1o);
+EXTER object fSfill_pointer_set (object x,fixnum i);
+EXTER object fLfill_pointer (object x);
+EXTER object fLarray_has_fill_pointer_p (object x);
+EXTER object fLarray_element_type (object x);
+EXTER object fLadjustable_array_p (object x);
+EXTER object fSdisplaced_array_p (object x);
+EXTER object fLarray_rank (object x);
+EXTER object fLarray_dimension (object x,fixnum i);
+EXTER object fSreplace_array (object old,object new);
+EXTER object fLarray_total_size (object x);
+EXTER object fSaset_by_cursor (object array,object val,object cursor);
+EXTER object sSAmatch_dataA;
+EXTER object sSAcase_fold_searchA;
+EXTER object fSmatch_beginning (fixnum i);
+EXTER object fSmatch_end (fixnum i);
+EXTER object fSstring_match (object pattern,object string,...);
+EXTER object sSs_data;
+EXTER object sLcompile;
+EXTER object sLdeclare;
+EXTER object sLeval;
+EXTER object sLeval;
+EXTER object sSfunction_documentation;
+EXTER object sLload;
+EXTER object sLprogn;
+EXTER object sLtypep;
+EXTER object sLvalues;
+EXTER object sSvariable_documentation;
+EXTER object sLwarn;
+EXTER object sSAallow_gzipped_fileA;
+EXTER object sKmyaddr;
+EXTER object sKmyport;
+EXTER object sKasync;
+EXTER object sKhost;
+EXTER object sKserver;
+EXTER object sSsocket;
+EXTER object sLAstandard_inputA;
+EXTER object sLAstandard_outputA;
+EXTER object sLAerror_outputA;
+EXTER object sLAterminal_ioA;
+EXTER object sLAquery_ioA;
+EXTER object sLAdebug_ioA;
+EXTER object sLAtrace_outputA;
+EXTER object sSAignore_eof_on_terminal_ioA;
+EXTER object sSAload_pathnameA;
+EXTER object sLAload_verboseA;
+EXTER object sKabort;
+EXTER object sKappend;
+EXTER object sKcreate;
+EXTER object sKdefault;
+EXTER object sKdirection;
+EXTER object sKelement_type;
+EXTER object sKerror;
+EXTER object sKif_does_not_exist;
+EXTER object sKif_exists;
+EXTER object sKinput;
+EXTER object sKio;
+EXTER object sKnew_version;
+EXTER object sKoutput;
+EXTER object sKoverwrite;
+EXTER object sKprint;
+EXTER object sKprobe;
+EXTER object sKrename;
+EXTER object sKrename_and_delete;
+EXTER object sKset_default_pathname;
+EXTER object sKsupersede;
+EXTER object sKverbose;
+EXTER object sLAread_default_float_formatA;
+EXTER object sLAread_baseA;
+EXTER object sLAread_suppressA;
+EXTER object sSY;
+EXTER object sSYB;
+EXTER object sSYZ;
+EXTER object sLlistA;
+EXTER object sLappend;
+EXTER object sLnconc;
+EXTER object sLapply;
+EXTER object sLvector;
+EXTER object sKupcase;
+EXTER object sKdowncase;
+EXTER object sKcapitalize;
+EXTER object sKstream;
+EXTER object sKescape;
+EXTER object sKreadably;
+EXTER object sKpretty;
+EXTER object sKcircle;
+EXTER object sKbase;
+EXTER object sKradix;
+EXTER object sKcase;
+EXTER object sKgensym;
+EXTER object sKlevel;
+EXTER object sKlength;
+EXTER object sKarray;
+EXTER object sLAprint_escapeA;
+EXTER object sLAprint_readablyA;
+EXTER object sLAprint_prettyA;
+EXTER object sLAprint_circleA;
+EXTER object sLAprint_baseA;
+EXTER object sLAprint_radixA;
+EXTER object sLAprint_caseA;
+EXTER object sLAprint_gensymA;
+EXTER object sLAprint_levelA;
+EXTER object sLAprint_lengthA;
+EXTER object sLAprint_arrayA;
+EXTER object sSAprint_packageA;
+EXTER object sSAprint_structureA;
+EXTER object sSpretty_print_format;
+EXTER object sSAprint_nansA;
+EXTER object fLformat (object strm, object control,...);
+EXTER object sSAindent_formatted_outputA;
+EXTER object fSsetenv (object variable,object value);
+EXTER object fLdelete_file (object path);
+EXTER object fLerror (object fmt_string,...);
+EXTER object fLspecific_error (object error_name,object fmt_string,...);
+EXTER object fLspecific_correctable_error (object error_name,object 
fmt_string,...);
+EXTER object fLcerror (object continue_fmt_string,object fmt_string,...);
+EXTER object fSihs_top (void);
+EXTER object fSihs_fun (object x0);
+EXTER object fSihs_vs (object x0);
+EXTER object fSfrs_top (void);
+EXTER object fSfrs_vs (object x0);
+EXTER object fSfrs_bds (object x0);
+EXTER object fSfrs_class (object x0);
+EXTER object fSfrs_tag (object x0);
+EXTER object fSfrs_ihs (object x0);
+EXTER object fSbds_top (void);
+EXTER object fSbds_var (object x0);
+EXTER object fSbds_val (object x0);
+EXTER object fSvs_top (void);
+EXTER object fSvs (object x0);
+EXTER object fSsch_frs_base (object x0,object x1);
+EXTER object fSinternal_super_go (object tag,object x1,object x2);
+EXTER object sSuniversal_error_handler;
+EXTER object fSuniversal_error_handler (object x0,object x1,object x2,object 
x3,object error_fmt_string);
+EXTER object sSterminal_interrupt;
+EXTER object sKwrong_type_argument;
+EXTER object sKtoo_few_arguments;
+EXTER object sKtoo_many_arguments;
+EXTER object sKunexpected_keyword;
+EXTER object sKinvalid_form;
+EXTER object sKunbound_variable;
+EXTER object sKinvalid_variable;
+EXTER object sKundefined_function;
+EXTER object sKinvalid_function;
+EXTER object sKpackage_error;
+EXTER object sKcatch;
+EXTER object sKprotect;
+EXTER object sKcatchall;
+EXTER object fLget_universal_time (void);
+EXTER object fLget_internal_real_time (void);
+EXTER object sSAdefault_time_zoneA;
+EXTER object fSgetpid (void);
+EXTER object fSuse_fast_links (object flag,...);
+EXTER object sScdefn;
+EXTER object sLAlink_arrayA;
+EXTER object fSprofile (object start_address,object scale);
+EXTER object fSfunction_start (object funobj);
+EXTER object fSset_up_combined (object first,...);
+EXTER object fSdisplay_profile (object start_addr,object scal);
+EXTER object fSarray_adress (object array);
+EXTER object sSAprofile_arrayA;
+EXTER object sSAinterrupt_enableA;
+EXTER object sSsigusr1_interrupt;
+EXTER object sSsigio_interrupt;
+EXTER object sSsignal_safety_required (fixnum signo,fixnum safety);
+EXTER object fSallow_signal (fixnum n);
+EXTER object fSinitfun (object sym,object addr_ind,object argd,...);
+EXTER object fSinitmacro (object first,...);
+EXTER object fSset_key_struct (object key_struct_ind);
+EXTER object fSinvoke (object x);
+EXTER object fSopen_named_socket (fixnum port);
+EXTER object fSclose_fd (fixnum fd);
+EXTER object fSclose_sfd (object sfd);
+EXTER object fSaccept_socket_connection (object named_socket);
+EXTER object fShostname_to_hostid (object host);
+EXTER object fSgethostname (void);
+EXTER object fShostid_to_hostname (object host_id);
+EXTER object fScheck_fd_for_input (fixnum fd,fixnum timeout);
+EXTER object fSclear_connection (fixnum fd);
+EXTER object fSconnection_state_fd (object sfd);
+EXTER object fSour_write (object sfd,object buffer,fixnum nbytes);
+EXTER object fSour_read_with_offset (object fd,object buffer,fixnum 
offset,fixnum nbytes,fixnum timeout);
+EXTER object fSprint_to_string1 (object str,object x,object the_code);
+EXTER object fSset_sigio_for_fd (fixnum fd);
+EXTER object fSreset_string_input_stream (object strm,object string,fixnum 
start,fixnum end);
+EXTER object fScheck_state_input (object osfd,fixnum timeout);
+EXTER object fSclear_connection_state (object osfd);
+EXTER object fSgetpeername (object sock);
+EXTER object fSgetsockname (object sock);
+EXTER object fSset_blocking (object sock,object setBlocking);
Index: h/object.h
===================================================================
RCS file: /cvsroot/gcl/gcl/h/object.h,v
retrieving revision 1.18
retrieving revision 1.18.4.1
diff -u -r1.18 -r1.18.4.1
--- h/object.h  1 Mar 2003 22:37:37 -0000       1.18
+++ h/object.h  16 Jul 2003 02:02:49 -0000      1.18.4.1
@@ -360,8 +360,8 @@
 
 };
 
-#define USHORT(x,i) (((unsigned short *)(x)->ust.ust_self)[i])
-#define SHORT(x,i) ((( short *)(x)->ust.ust_self)[i])
+#define USHORT_GCL(x,i) (((unsigned short *)(x)->ust.ust_self)[i])
+#define SHORT_GCL(x,i) ((( short *)(x)->ust.ust_self)[i])
 
 #define BV_OFFSET(x) ((type_of(x)==t_bitvector ? x->bv.bv_offset : \
                       type_of(x)== t_array ? x->a.a_offset : (abort(),0)))
@@ -455,7 +455,7 @@
 
 #define S_DATA(x) ((struct s_data *)((x)->str.str_self))
 #define SLOT_TYPE(def,i) (((S_DATA(def))->raw->ust.ust_self[i]))
-#define SLOT_POS(def,i) USHORT(S_DATA(def)->slot_position,i)
+#define SLOT_POS(def,i) USHORT_GCL(S_DATA(def)->slot_position,i)
 #define STREF(type,x,i) (*((type *)(((char *)((x)->str.str_self))+(i))))
 
 
Index: h/protoize.h
===================================================================
RCS file: /cvsroot/gcl/gcl/h/protoize.h,v
retrieving revision 1.26
retrieving revision 1.26.4.1
diff -u -r1.26 -r1.26.4.1
--- h/protoize.h        1 Mar 2003 22:37:37 -0000       1.26
+++ h/protoize.h        16 Jul 2003 02:02:49 -0000      1.26.4.1
@@ -1737,6 +1737,9 @@
 object
 cplus(object,object);
 
+object
+Icall_error_handler(object,object,int,...);
+
 #if defined (__MINGW32__)
 int bcmp ( const void *s1, const void *s2, size_t n );
 void bcopy ( const void *s1, void *s2, size_t n );
Index: o/array.c
===================================================================
RCS file: /cvsroot/gcl/gcl/o/array.c,v
retrieving revision 1.20
retrieving revision 1.20.4.1
diff -u -r1.20 -r1.20.4.1
--- o/array.c   1 Mar 2003 22:37:37 -0000       1.20
+++ o/array.c   16 Jul 2003 02:02:51 -0000      1.20.4.1
@@ -164,9 +164,9 @@
     case aet_uchar:
       return small_fixnum(x->ust.ust_self[i]);
     case aet_short:
-      return make_fixnum(SHORT(x, i));
+      return make_fixnum(SHORT_GCL(x, i));
     case aet_ushort:
-      return small_fixnum(USHORT(x, i));
+      return make_fixnum(USHORT_GCL(x, i));
 
     default:
       FEerror("unknown array type",0);
@@ -234,11 +234,11 @@
       break;
     case aet_short:
       ASSURE_TYPE(val,t_fixnum);
-      SHORT(x, i) = Mfix(val);
+      SHORT_GCL(x, i) = Mfix(val);
       break;
     case aet_ushort:
       ASSURE_TYPE(val,t_fixnum);
-      USHORT(x, i) = Mfix(val);
+      USHORT_GCL(x, i) = Mfix(val);
       break;
     default:
       FEerror("unknown array type",0);
@@ -739,21 +739,59 @@
 static char *
 raw_aet_ptr(object x, short int typ)
 {  /* doubles are the largest raw type */
-  static double u;
-  if (x==Cnil) return aet_types[typ].dflt;
+
+  static union{
+    object o;char c;fixnum i;shortfloat f;longfloat d;
+    unsigned char uc;short s;unsigned short us;} u;
+
+  if (x==Cnil) 
+    return aet_types[typ].dflt;
+
   switch (typ){
-#define STORE_TYPED(pl,type,val) *((type *) pl) = (type) val; break;
-  case aet_object: STORE_TYPED(&u,object,x);
-  case aet_ch:     STORE_TYPED(&u,char, char_code(x));
-  case aet_bit:    STORE_TYPED(&u,fixnum, -Mfix(x));
-  case aet_fix:    STORE_TYPED(&u,fixnum, Mfix(x));
-  case aet_sf:     STORE_TYPED(&u,shortfloat, Msf(x));
-  case aet_lf:     STORE_TYPED(&u,longfloat, Mlf(x));
-  case aet_char:   STORE_TYPED(&u, char, Mfix(x));
-  case aet_uchar:  STORE_TYPED(&u, unsigned char, Mfix(x));
-  case aet_short:  STORE_TYPED(&u, short, Mfix(x));
-  case aet_ushort: STORE_TYPED(&u,unsigned short,Mfix(x));
-  default: FEerror("bad elttype",0);
+/* #define STORE_TYPED(pl,type,val) *((type *) pl) = (type) val; break; */
+  case aet_object: 
+    /* STORE_TYPED(&u,object,x); */
+    u.o=x;
+    break;
+  case aet_ch:     
+    /* STORE_TYPED(&u,char, char_code(x)); */
+    u.c=char_code(x);
+    break;
+  case aet_bit:    
+    /* STORE_TYPED(&u,fixnum, -Mfix(x)); */
+    u.i=-Mfix(x);
+    break;
+  case aet_fix:    
+    /* STORE_TYPED(&u,fixnum, Mfix(x)); */
+    u.i=Mfix(x);
+    break;
+  case aet_sf:     
+    /* STORE_TYPED(&u,shortfloat, Msf(x)); */
+    u.f=Msf(x);
+    break;
+  case aet_lf:     
+    /* STORE_TYPED(&u,longfloat, Mlf(x)); */
+    u.d=Mlf(x);
+    break;
+  case aet_char:   
+    /* STORE_TYPED(&u, char, Mfix(x)); */
+    u.c=(char)Mfix(x);
+    break;
+  case aet_uchar:  
+    /* STORE_TYPED(&u, unsigned char, Mfix(x)); */
+    u.uc=(unsigned char)Mfix(x);
+    break;
+  case aet_short:  
+    /* STORE_TYPED(&u, short, Mfix(x)); */
+    u.s=(short)Mfix(x);
+    break;
+  case aet_ushort: 
+    /* STORE_TYPED(&u,unsigned short,Mfix(x)); */
+    u.us=(unsigned short)Mfix(x);
+    break;
+  default: 
+    FEerror("bad elttype",0);
+    break;
   }
   return (char *)&u;
 }
Index: o/character.d
===================================================================
RCS file: /cvsroot/gcl/gcl/o/character.d,v
retrieving revision 1.5
retrieving revision 1.5.4.1
diff -u -r1.5 -r1.5.4.1
--- o/character.d       26 Feb 2003 22:21:37 -0000      1.5
+++ o/character.d       16 Jul 2003 02:02:51 -0000      1.5.4.1
@@ -355,7 +355,7 @@
 @(defun char_code (c)
 @
        check_type_character(&c);
-       @(return `small_fixnum(char_code(c))`)
+       @(return `make_fixnum(char_code(c))`)
 @)
 
 @(defun char_bits (c)
Index: o/error.c
===================================================================
RCS file: /cvsroot/gcl/gcl/o/error.c,v
retrieving revision 1.15
retrieving revision 1.15.4.1
diff -u -r1.15 -r1.15.4.1
--- o/error.c   27 Feb 2003 15:50:59 -0000      1.15
+++ o/error.c   16 Jul 2003 02:02:51 -0000      1.15.4.1
@@ -120,7 +120,7 @@
 
 
 
-static object
+object
 Icall_error_handler(object error_name,object error_format_string,int 
nfmt_args,...)
 { object b[20];
   b[0]= error_name;
@@ -238,6 +238,7 @@
   b[3]=null_string;
   b[4]=fmt_string;
   i=4;
+  n--;
   va_start(ap,fmt_string);
   while (--n)
     b[++i]=va_arg(ap,object);
Index: o/list.d
===================================================================
RCS file: /cvsroot/gcl/gcl/o/list.d,v
retrieving revision 1.19
retrieving revision 1.19.4.1
diff -u -r1.19 -r1.19.4.1
--- o/list.d    1 Mar 2003 22:37:37 -0000       1.19
+++ o/list.d    16 Jul 2003 02:02:51 -0000      1.19.4.1
@@ -999,7 +999,7 @@
 
        check_arg(2);
        y = vs_pop;
-       for (x = vs_base[0];  !endp(x);) {
+       for (x = vs_base[0];  !endp_prop(x);) {
                z = x;
                x = x->c.c_cdr;
                z->c.c_cdr = y;
Index: o/multival.c
===================================================================
RCS file: /cvsroot/gcl/gcl/o/multival.c,v
retrieving revision 1.4
retrieving revision 1.4.4.1
diff -u -r1.4 -r1.4.4.1
--- o/multival.c        15 Feb 2003 00:38:28 -0000      1.4
+++ o/multival.c        16 Jul 2003 02:02:51 -0000      1.4.4.1
@@ -43,7 +43,7 @@
        check_arg(1);
        list = vs_base[0];
        vs_top = vs_base;
-       while (!endp(list)) {   
+       while (!endp_prop(list)) {      
                vs_push(MMcar(list));
                list = MMcdr(list);
        }
Index: o/nsocket.c
===================================================================
RCS file: /cvsroot/gcl/gcl/o/nsocket.c,v
retrieving revision 1.7
retrieving revision 1.7.4.1
diff -u -r1.7 -r1.7.4.1
--- o/nsocket.c 26 Feb 2003 22:21:37 -0000      1.7
+++ o/nsocket.c 16 Jul 2003 02:02:51 -0000      1.7.4.1
@@ -341,7 +341,7 @@
             if (hostEntPtr != (struct hostent *) NULL) 
                host = make_simple_string(hostEntPtr->h_name);
             else host = address;
-           return list(3,address,host,small_fixnum(ntohs(peername.sin_port)));
+           return list(3,address,host,make_fixnum(ntohs(peername.sin_port)));
  } else {
    return Cnil;
  }
@@ -364,7 +364,7 @@
   if (hostEntPtr != (struct hostent *) NULL)
    host = make_simple_string(hostEntPtr->h_name);
   else host=address;
-  return list(3,address,host,small_fixnum(ntohs(sockname.sin_port)));
+  return list(3,address,host,make_fixnum(ntohs(sockname.sin_port)));
  } else {
    return Cnil;
  }
Index: o/num_co.c
===================================================================
RCS file: /cvsroot/gcl/gcl/o/num_co.c,v
retrieving revision 1.10
retrieving revision 1.10.4.1
diff -u -r1.10 -r1.10.4.1
--- o/num_co.c  15 Feb 2003 00:38:28 -0000      1.10
+++ o/num_co.c  16 Jul 2003 02:02:51 -0000      1.10.4.1
@@ -98,6 +98,7 @@
 integer_decode_double(double d, int *hp, int *lp, int *ep, int *sp)
 {
        int h, l;
+       union {double d;int i[2];} u;
 
        if (d == 0.0) {
                *hp = *lp = 0;
@@ -109,8 +110,11 @@
 
 
 #else
-       h = *((int *)(&d) + HIND);
-       l = *((int *)(&d) + LIND);
+       u.d=d;
+       h=u.i[HIND];
+       l=u.i[LIND];
+/*     h = *((int *)(&d) + HIND); */
+/*     l = *((int *)(&d) + LIND); */
 #endif
 #ifdef VAX
        *ep = ((h >> 7) & 0xff) - 128 - 56;
@@ -187,6 +191,7 @@
 {
        float f;
        int m;
+       union {float f;int i;} u;
 
        f = d;
        if (f == 0.0) {
@@ -195,7 +200,9 @@
                *sp = 1;
                return;
        }
-       m = *(int *)(&f);
+       u.f=f;
+       m=u.i;
+/*     m = *(int *)(&f); */
 #ifdef VAX
        *ep = ((m >> 7) & 0xff) - 128 - 24;
        *mp = ((m >> 16) & 0xffff) | (((m & 0x7f) | 0x80) << 16);
@@ -227,6 +234,8 @@
 static int
 double_exponent(double d)
 {
+       union {double d;int i[2];} u;
+
        if (d == 0.0)
                return(0);
 #ifdef VAX
@@ -239,7 +248,8 @@
 #ifdef NS32K
 
 #else
-       return ((((*((int *)(&d) + HIND)) & 0x7ff00000) >> 20) - 1022);
+       u.d=d;
+       return (((u.i[HIND] & 0x7ff00000) >> 20) - 1022);
 #endif
 #endif
 #ifdef MV
@@ -254,11 +264,13 @@
 set_exponent(double d, int e)
 {
        double dummy;
+       union {double d;int i[2];} u;
 
        if (d == 0.0)
                return(0.0);
          
-       *((int *)(&d) + HIND)
+       u.d=d;
+       u.i[HIND]
 #ifdef VAX
        = *(int *)(&d) & 0xffff807f | ((e + 128) << 7) & 0x7f80;
 #endif
@@ -269,7 +281,7 @@
 #ifdef NS32K
 
 #else
-       = (*((int *)(&d) + HIND) & 0x800fffff) | (((e + 1022) << 20) & 
0x7ff00000);
+       = (u.i[HIND] & 0x800fffff) | (((e + 1022) << 20) & 0x7ff00000);
 #endif
 #endif
 #ifdef MV
@@ -1215,6 +1227,8 @@
        double smallest_double, smallest_norm_double, biggest_double;
        float float_epsilon, float_negative_epsilon;
        double double_epsilon, double_negative_epsilon;
+       union {double d;int i[2];} u;
+       union {float f;int i;} uf;
 
 
 #ifdef VAX
@@ -1232,10 +1246,15 @@
 
 
 #else
-
-       ((int *) &smallest_float)[0]= 1;
-       ((int *) &smallest_double)[HIND] = 0;
-       ((int *) &smallest_double)[LIND] = 1;
+       uf.i=1;
+       u.i[HIND]=0;
+       u.i[LIND]=1;
+       smallest_float=uf.f;
+       smallest_double=u.d;
+
+/*     ((int *) &smallest_float)[0]= 1; */
+/*     ((int *) &smallest_double)[HIND] = 0; */
+/*     ((int *) &smallest_double)[LIND] = 1; */
 
 #endif
 #endif
@@ -1277,9 +1296,16 @@
 
 #else
 
-       ((int *) &biggest_float)[0]= 0x7f7fffff;
-       ((int *) &biggest_double)[HIND] = 0x7fefffff;
-       ((int *) &biggest_double)[LIND] = 0xffffffff;
+       uf.i=0x7f7fffff;
+       u.i[HIND]=0x7fefffff;
+       u.i[LIND]=0xffffffff;
+       
+       biggest_float=uf.f;
+       biggest_double=u.d;
+
+/*     ((int *) &biggest_float)[0]= 0x7f7fffff; */
+/*     ((int *) &biggest_double)[HIND] = 0x7fefffff; */
+/*     ((int *) &biggest_double)[LIND] = 0xffffffff; */
 
 #ifdef BAD_FPCHIP
  /* &&&& I am adding junk values to get past debugging */
Index: o/num_log.c
===================================================================
RCS file: /cvsroot/gcl/gcl/o/num_log.c,v
retrieving revision 1.9
retrieving revision 1.9.4.1
diff -u -r1.9 -r1.9.4.1
--- o/num_log.c 17 Feb 2003 16:50:21 -0000      1.9
+++ o/num_log.c 16 Jul 2003 02:02:51 -0000      1.9.4.1
@@ -685,8 +685,9 @@
                    for (b1=b,i=0;i<x->a.a_rank;i++,b1=b1->c.c_cdr) {
                      b1->d.t=(int)t_cons;
                      b1->d.m=FALSE;
-                     b1->c.c_car=x->a.a_dims[i]<SMALL_FIXNUM_LIMIT ? 
-                       small_fixnum(x->a.a_dims[i]) : 
+                     b1->c.c_car=/* x->a.a_dims[i]<SMALL_FIXNUM_LIMIT ?  */
+                       /* small_fixnum(x->a.a_dims[i]) :  */ 
+                       /* now done in a macro */
                        make_fixnum(x->a.a_dims[i]);
                      b1->c.c_cdr=i<x->a.a_rank-1 ? (object)++p : Cnil;
                    }
Index: o/number.c
===================================================================
RCS file: /cvsroot/gcl/gcl/o/number.c,v
retrieving revision 1.9
retrieving revision 1.9.4.1
diff -u -r1.9 -r1.9.4.1
--- o/number.c  1 Mar 2003 22:37:37 -0000       1.9
+++ o/number.c  16 Jul 2003 02:02:51 -0000      1.9.4.1
@@ -47,6 +47,13 @@
                FEerror("~S is not a non-negative fixnum.", 1, x);
        return(fix(x));
 }
+#if 0
+object small_fixnum ( int i ) {
+#include <assert.h>    
+    assert ( ( -SMALL_FIXNUM_LIMIT <= i ) && ( i < SMALL_FIXNUM_LIMIT ) ); 
+    (object) small_fixnum_table + SMALL_FIXNUM_LIMIT + i;
+}
+#endif
 
 #define BIGGER_FIXNUM_RANGE
 
Index: o/read.d
===================================================================
RCS file: /cvsroot/gcl/gcl/o/read.d,v
retrieving revision 1.14
retrieving revision 1.14.4.1
diff -u -r1.14 -r1.14.4.1
--- o/read.d    26 Feb 2003 22:21:37 -0000      1.14
+++ o/read.d    16 Jul 2003 02:02:51 -0000      1.14.4.1
@@ -2742,7 +2742,7 @@
 object in;
 {
        int dimcount, dim;
-       object *vsp;            
+       object *vsp,vspo;               
        VOL object x;
        int i;
        bool e;
@@ -2755,7 +2755,7 @@
                old_sharp_eq_context[SHARP_EQ_CONTEXT_SIZE];
        int old_backq_level;
 
-       vsp=(object *)&vsp;
+       vsp=&vspo;
        old_READtable = READtable;
        old_READdefault_float_format = READdefault_float_format;
        old_READbase = READbase;
Index: o/sequence.d
===================================================================
RCS file: /cvsroot/gcl/gcl/o/sequence.d,v
retrieving revision 1.3
retrieving revision 1.3.4.1
diff -u -r1.3 -r1.3.4.1
--- o/sequence.d        15 Oct 2002 19:32:01 -0000      1.3
+++ o/sequence.d        16 Jul 2003 02:02:51 -0000      1.3.4.1
@@ -123,7 +123,9 @@
 E:
        vs_push(make_fixnum(index));
        /* FIXME message should indicate out of range */
-       FEwrong_type_argument(sLpositive_fixnum,vs_head);
+       Icall_error_handler(sKwrong_type_argument,
+                    make_simple_string("The index, ~S, is too large."),
+                    1,vs_head);
        return(Cnil);
 }
 
@@ -257,7 +259,7 @@
                case aet_short:
                case aet_ushort:
                        for (i = s, j = 0;  i < e;  i++, j++)
-                               USHORT(x, j) = USHORT(sequence, i);
+                               USHORT_GCL(x, j) = USHORT_GCL(sequence, i);
                        break;
                case aet_char:
                case aet_uchar:
@@ -414,7 +416,7 @@
                case aet_short:
                case aet_ushort:
                        for (j = k - 1, i = 0;  j >=0;  --j, i++)
-                               USHORT(y, j) = USHORT(x, i);
+                               USHORT_GCL(y, j) = USHORT_GCL(x, i);
                        break;
                case aet_char:
                case aet_uchar:
@@ -517,9 +519,9 @@
                case aet_ushort:
                        for (i = 0, j = k - 1;  i < j;  i++, --j) {
                                unsigned short y;
-                               y = USHORT(x, i);
-                               USHORT(x, i) = USHORT(x, j);
-                               USHORT(x, y) = y;
+                               y = USHORT_GCL(x, i);
+                               USHORT_GCL(x, i) = USHORT_GCL(x, j);
+                               USHORT_GCL(x, y) = y;
                        }
                        return(seq);
                case aet_char:
Index: o/sockets.c
===================================================================
RCS file: /cvsroot/gcl/gcl/o/sockets.c,v
retrieving revision 1.8
retrieving revision 1.8.4.1
diff -u -r1.8 -r1.8.4.1
--- o/sockets.c 1 Mar 2003 22:37:37 -0000       1.8
+++ o/sockets.c 16 Jul 2003 02:02:51 -0000      1.8.4.1
@@ -105,8 +105,14 @@
 "Open a socket on PORT and return (cons fd portname) where file \
 descriptor is a small fixnum which is the write file descriptor for \
 the socket.  If PORT is zero do automatic allocation of port") 
-{ int s, n, rc; struct
-sockaddr_in addr;
+{
+#ifdef __MINGW32__
+    SOCKET s;
+#else    
+    int s;
+#endif    
+  int n, rc;
+  struct sockaddr_in addr;
 
 #ifdef __MINGW32__  
   if ( w32_socket_init() < 0 ) {
@@ -117,7 +123,11 @@
   
   /* Using TCP layer */
   s = socket(PF_INET, SOCK_STREAM, 0);
+#ifdef __MINGW32__
+    if ( s == INVALID_SOCKET )  
+#else    
   if (s < 0)
+#endif      
     {
       perror("ERROR !!! socket creation failed in sock_connect_to_name\n");
       return Cnil;
@@ -175,7 +185,7 @@
       return Cnil;
     }
 
-  return make_cons(make_fixnum(s), small_fixnum(ntohs(addr.sin_port)));
+  return make_cons(make_fixnum(s), make_fixnum(ntohs(addr.sin_port)));
 }
 
 DEFUN_NEW("CLOSE-FD",object,fSclose_fd,SI,1,1,NONE,OI,OO,OO,OO,(fixnum fd),
Index: o/structure.c
===================================================================
RCS file: /cvsroot/gcl/gcl/o/structure.c,v
retrieving revision 1.9
retrieving revision 1.9.4.1
diff -u -r1.9 -r1.9.4.1
--- o/structure.c       27 Feb 2003 17:47:05 -0000      1.9
+++ o/structure.c       16 Jul 2003 02:02:51 -0000      1.9.4.1
@@ -75,7 +75,7 @@
    case aet_sf: return(make_shortfloat(STREF(shortfloat,x,s_pos[i])));
    case aet_lf: return(make_longfloat(STREF(longfloat,x,s_pos[i])));
    case aet_uchar: return(small_fixnum(STREF(unsigned char,x,s_pos[i])));
-   case aet_ushort: return(small_fixnum(STREF(unsigned short,x,s_pos[i])));
+   case aet_ushort: return(make_fixnum(STREF(unsigned short,x,s_pos[i])));
    case aet_short: return(make_fixnum(STREF(short,x,s_pos[i])));
    default:
      bad_raw_type();
Index: o/usig2.c
===================================================================
RCS file: /cvsroot/gcl/gcl/o/usig2.c,v
retrieving revision 1.11
retrieving revision 1.11.4.1
diff -u -r1.11 -r1.11.4.1
--- o/usig2.c   1 Mar 2003 22:37:37 -0000       1.11
+++ o/usig2.c   16 Jul 2003 02:02:51 -0000      1.11.4.1
@@ -253,8 +253,10 @@
  SS1(p->ihs_topVAL,*ihs_top);
  { void **pp = p->save_objects;
 #undef XS
- /* #define XS(a) *pp++ = (void *) (a); */
-#define XS(a) *pp++ =  * (void **) (&a); 
+#undef XSI
+#define XS(a) *pp++ = (void *) (a);
+#define XSI(a) XS(a)
+/* #define XS(a) *pp++ =  * (void **) (&a);  */
 #include "usig2_aux.c"
    if ((pp - (&(p->save_objects)[0])) >= (sizeof(p->save_objects)/sizeof(void 
*)))
      abort();
@@ -309,12 +311,15 @@
   RS1(p->ihs_topVAL,*ihs_top);
  { void **pp = p->save_objects;
 #undef XS
+#undef XSI
 
  /*  #define XS(a) a = (void *)(*pp++)
      We store back in the location 'a' the value we have saved. 
   */
  
-#define XS(a) do { void **_p = (void **)(&a); *_p = (void *)(*pp++);}while(0)
+/* #define XS(a) do { void **_p = (void **)(&a); *_p = (void 
*)(*pp++);}while(0) */
+#define XS(a) a = (void *)(*pp++)
+#define XSI(a) {union {void *v;long l;}u; u.v=*pp++; a = u.l;}
 #include "usig2_aux.c"
  }
 
Index: o/usig2_aux.c
===================================================================
RCS file: /cvsroot/gcl/gcl/o/usig2_aux.c,v
retrieving revision 1.3
retrieving revision 1.3.4.1
diff -u -r1.3 -r1.3.4.1
--- o/usig2_aux.c       15 Feb 2003 00:38:28 -0000      1.3
+++ o/usig2_aux.c       16 Jul 2003 02:02:51 -0000      1.3.4.1
@@ -1,58 +1,58 @@
-XS(string_register->st.st_fillp);
-XS(string_register->st.st_fillp);
-XS(string_register->st.st_dim);
+XSI(string_register->st.st_fillp);
+XSI(string_register->st.st_fillp);
+XSI(string_register->st.st_dim);
 XS(string_register->st.st_self);
-XS(token->st.st_fillp);
-XS(in_signal_handler);
-XS(nlj_active);
+XSI(token->st.st_fillp);
+XSI(in_signal_handler);
+XSI(nlj_active);
 XS(nlj_fr);
 XS(nlj_tag);
 XS(CMPtemp);
 XS(CMPtemp1);
 XS(CMPtemp2);
 XS(CMPtemp3);
-XS(FIXtemp);
-XS(PRINTarray);
-XS(PRINTbase);
+XSI(FIXtemp);
+XSI(PRINTarray);
+XSI(PRINTbase);
 XS(PRINTcase);
-XS(PRINTcircle);
-XS(PRINTescape);
-XS(PRINTgensym);
-XS(PRINTlength);
-XS(PRINTlevel);
-XS(PRINTpackage);
-XS(PRINTpretty);
-XS(PRINTradix);
+XSI(PRINTcircle);
+XSI(PRINTescape);
+XSI(PRINTgensym);
+XSI(PRINTlength);
+XSI(PRINTlevel);
+XSI(PRINTpackage);
+XSI(PRINTpretty);
+XSI(PRINTradix);
 XS(PRINTstream);
-XS(PRINTstructure);
+XSI(PRINTstructure);
 XS(PRINTvs_limit);
 XS(PRINTvs_top);
-XS(READbase);
-XS(READdefault_float_format);
-XS(READsuppress);
+XSI(READbase);
+XSI(READdefault_float_format);
+XSI(READsuppress);
 XS(READtable);
-XS(ctl_end);
-XS(ctl_index);
-XS(ctl_origin);
+XSI(ctl_end);
+XSI(ctl_index);
+XSI(ctl_origin);
 XS(endp_temp);
-XS(eval1);
-XS(line_length);
-XS(in_list_flag);
+XSI(eval1);
+XSI(line_length);
+XSI(in_list_flag);
 XS(kf);
 XS(tf);
-XS(left_trim);
-XS(right_trim);
+XSI(left_trim);
+XSI(right_trim);
 XS(lex_env);
 XS(key_function);
 XS(test_function);
 XS(item_compared);
-XS(intern_flag);
+XSI(intern_flag);
 XS(printStructBufp);
 XS(sfaslp);
-XS(preserving_whitespace_flag);
+XSI(preserving_whitespace_flag);
 XS(sharing_table);
-XS(string_sign);
-XS(string_boundary);
+XSI(string_sign);
+XSI(string_boundary);
 XS(car_or_cdr);
 XS(casefun);
 XS(tmp_alloc);
Index: lsp/predlib.lsp
===================================================================
RCS file: /cvsroot/gcl/gcl/lsp/predlib.lsp,v
retrieving revision 1.10
retrieving revision 1.10.4.1
diff -u -r1.10 -r1.10.4.1
--- lsp/predlib.lsp     26 Feb 2003 12:44:50 -0000      1.10
+++ lsp/predlib.lsp     16 Jul 2003 02:02:50 -0000      1.10.4.1
@@ -149,7 +149,8 @@
 
 ;;; TYPEP predicate.
 ;;; FIXME --optimize with most likely cases first
-(defun typep (object type &aux tp i tem)
+(defun typep (object type &optional env &aux tp i tem)
+  (declare (ignore env))
   (when (classp type)
     (return-from typep (if (member type (class-precedence-list (funcall 
'class-of object))) t nil)))
   (if (atom type)
@@ -297,7 +298,8 @@
 
 
 ;;; SUBTYPEP predicate.
-(defun subtypep (type1 type2 &aux t1 t2 i1 i2 ntp1 ntp2 tem)
+(defun subtypep (type1 type2 &optional env &aux t1 t2 i1 i2 ntp1 ntp2 tem)
+  (declare (ignore env))
   (let ((c1 (classp type1)) (c2 (classp type2)))
     (when (and c1 c2)
       (return-from subtypep 
Index: cmpnew/cmpcall.lsp
===================================================================
RCS file: /cvsroot/gcl/gcl/cmpnew/cmpcall.lsp,v
retrieving revision 1.5
retrieving revision 1.5.4.1
diff -u -r1.5 -r1.5.4.1
--- cmpnew/cmpcall.lsp  26 Feb 2003 22:21:35 -0000      1.5
+++ cmpnew/cmpcall.lsp  16 Jul 2003 02:02:47 -0000      1.5.4.1
@@ -408,11 +408,11 @@
     (cond
       ((null type)
        (wt-nl1 "static void LnkT"
-              num "(){ call_or_link(VV[" num "],(void **)&Lnk" num");}"
+              num "(){ call_or_link(VV[" num "],(void **)(void *)&Lnk" num");}"
               ))
       ((eql type 'proclaimed-closure)
        (wt-nl1 "static void LnkT" num
-              "(ptr) object *ptr;{ call_or_link_closure(VV[" num "],(void 
**)&Lnk" num",(void **)&Lclptr" num");}"))
+              "(ptr) object *ptr;{ call_or_link_closure(VV[" num "],(void 
**)(void *)&Lnk" num",(void **)(void *)&Lclptr" num");}"))
       (t
        ;;change later to include above.
        ;;(setq type (cdr (assoc type '((t . "object")(:btpr . "bptr")))))
@@ -423,11 +423,11 @@
                    (declaration-type (rep-type type)) "V1;"
                    "va_list ap;va_start(ap,first);V1=call_"
                    (if vararg "v" "") "proc_new(VV["
-                   (add-object name)"],(void **)&Lnk" num )
+                   (add-object name)"],(void **)(void *)&Lnk" num )
                (or vararg (wt "," (proclaimed-argd args type)))
                (wt   ",first,ap);va_end(ap);return V1;}" )))
             (t (wt "(){return call_proc0(VV[" (add-object name)
-                   "],(void **)&Lnk" num ");}" ))))
+                   "],(void **)(void *)&Lnk" num ");}" ))))
       (t (error "unknown link type ~a" type)))
     (setq name (symbol-name name))
     (if (find #\/ name) (setq name (remove #\/ name)))
Index: cmpnew/cmptop.lsp
===================================================================
RCS file: /cvsroot/gcl/gcl/cmpnew/cmptop.lsp,v
retrieving revision 1.7
retrieving revision 1.7.4.1
diff -u -r1.7 -r1.7.4.1
--- cmpnew/cmptop.lsp   26 Feb 2003 22:21:35 -0000      1.7
+++ cmpnew/cmptop.lsp   16 Jul 2003 02:02:48 -0000      1.7.4.1
@@ -109,6 +109,7 @@
 (si:putprop 'import t 'package-operation)
 (si:putprop 'provide t 'package-operation)
 (si:putprop 'require t 'package-operation)
+(si:putprop 'defpackage:defpackage t 'package-operation)
 
 ;;; Pass 1 top-levels.
 
@@ -193,8 +194,11 @@
                     (when *non-package-operation*
                       (cmpwarn "The package operation ~s was in a bad place."
                                form))
-                   (maybe-eval t form)
-                    (wt-data-package-operation form))
+                   (let ((res (if (setq fd (macro-function fun))
+                                  (cmp-expand-macro fd fun (copy-list (cdr 
form)))
+                                form)))
+                     (maybe-eval t res)
+                     (wt-data-package-operation res)))
                    ((setq fd (get fun 't1))
                     (when *compile-print* (print-current-form))
                     (funcall fd args))
@@ -1012,7 +1016,7 @@
              (t (wt-nl "parse_key_new_new(")))
        (if (eql 0 *cs*)(setq *cs* 1))
        (wt "narg," (if *vararg-use-vs* "base " "Vcs ")
-           "+" key-offset",(struct key *)&LI" cfun "key,first,ap);")
+           "+" key-offset",(struct key *)(void *)&LI" cfun "key,first,ap);")
        
        ))
     
Index: clcs/clcs_conditions.lisp
===================================================================
RCS file: /cvsroot/gcl/gcl/clcs/clcs_conditions.lisp,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -r1.1 -r1.1.4.1
--- clcs/clcs_conditions.lisp   26 Feb 2003 22:21:34 -0000      1.1
+++ clcs/clcs_conditions.lisp   16 Jul 2003 02:02:46 -0000      1.1.4.1
@@ -149,6 +149,8 @@
 )
 
 (DEFMACRO DEFINE-CONDITION (NAME PARENT-LIST SLOT-SPECS &REST OPTIONS)
+  (unless (or parent-list (eq name 'condition))
+         (setq parent-list (list 'condition)))
   (let* ((REPORT-FUNCTION nil)
         (DOCUMENTATION nil))
     (DO ((O OPTIONS (CDR O)))
=============================================================================


-- 
Camm Maguire                                            address@hidden
==========================================================================
"The earth is but one country, and mankind its citizens."  --  Baha'u'llah




reply via email to

[Prev in Thread] Current Thread [Next in Thread]