gcl-devel
[Top][All Lists]
Advanced

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

[Gcl-devel] Re: [Axiom-developer] source access


From: Camm Maguire
Subject: [Gcl-devel] Re: [Axiom-developer] source access
Date: 22 Jun 2003 10:06:33 -0400
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2

Greetings!

"Juergen Weiss" <address@hidden> writes:

> The current problem lies with gcl. With cmucl I was able to
> compile all the algebra files and get a working algebra
> system.
> 
> So there is nothing in principle and practice against generating
> an axiom system with a simple call to make. There is a
> problem with the gcl system which must be fixed. As far I can
> see from the discussion in this list, it seems to be related
> to the number of arguments in a function call or something similar. 
> Akcl had to be customized even 10 years ago to run axiom. I think,
> I did that once for akcl on sparc sunos 4.1. But I fear I cannot
> remember the details. This problem is triggered by the axiom

OK, please forgive, as I only intermittently follow this list.  It was
my understanding that this 'value stack overflow' problem had been
resolved, but apparently I've misread some earlier email on the
subject.  It would be most helpful to me if someone could summarize in
as much detail as possible what is known about this issue.   Can one
provide a small example in lisp which triggers this overflow?  I take
it that there is some termination problem in a recursive function
call?  How its this related to the number of arguments in a call?
I've reproduced the ')co xpoly.spad' example, and have verified that
the value stack will terminate at some 44k deep if one expands the
default value stack size, but then there is a segfault.  Haven't yet
looked much deeper, but I'd like to time permitting.  I'd also like to
know what a proper stack should look like in a correctly functioning
setup. 

BTW, here is the patch submitted a while ago for the elt error message
bug, if you would like it:

Index: o/error.c
===================================================================
RCS file: /cvsroot/gcl/gcl/o/error.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- o/error.c   27 Feb 2003 15:50:59 -0000      1.15
+++ o/error.c   10 Jun 2003 13:28:11 -0000      1.16
@@ -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;
Index: o/sequence.d
===================================================================
RCS file: /cvsroot/gcl/gcl/o/sequence.d,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- o/sequence.d        15 Oct 2002 19:32:01 -0000      1.3
+++ o/sequence.d        10 Jun 2003 13:28:11 -0000      1.4
@@ -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);
 }
 
Index: h/protoize.h
===================================================================
RCS file: /cvsroot/gcl/gcl/h/protoize.h,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- h/protoize.h        1 Mar 2003 22:37:37 -0000       1.26
+++ h/protoize.h        10 Jun 2003 13:28:11 -0000      1.27
@@ -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 );


Take care,

-- 
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]