Steve (cc: sage-devel),

Any chance you would have any time to port GAP to Itanium, as described
in your email below?  So far, I failed to find anybody to do this so
far (is there
anybody out there on sage-devel who "is C programmer who can manage
a few lines of in-line assembler with GCC, an Itanium to test it on and about
30 lines of code."? -- I could provide the Itanium).

  I created this trac ticket to record this problem:

    http://trac.sagemath.org/sage_trac/ticket/1474

On Aug 26, 2007 10:35 PM, Steve Linton <[EMAIL PROTECTED]> wrote:
> OK. The issue is with garbage collection. The GAP garbage collector looks for
> any C local variable which appears to contain a reference to a GAP object. If
> it finds one it assumes that it is a reference and keeps the object in
> question alive. This is done in GenStackFuncBags in gasman.c. There is
> relevant documentation about line 1474 and the code is at line 1667. A
> collection of horrible, but surprisingly portable hacks are used to find and
> scan all the C local variables on the stack and in the registers.
>
> The problems on Itanium are that an Itanium has two stacks. One is used
> for local variables, return addresses, etc. in the usual way. The other is 
> used
> when the register file overflows.
>
> So what is needed is a few lines of assembler to
>
> 1) force the whole register file to be flushed onto this stack
> (SparcStackFuncBags does this on Sparc)
>
> 2) find the top and botom of this stack so that it can be scanned.
>
> It all works with -O0 because nothing is then kept in registers that is not
> also on the main stack, but this is cripplingly slow.
>
> If someone can come up with the assembler and the necessary wrapper to include
> it in gasman.c I can trivially adjust the C code to call it and then scan both
> stacks.
>
>         Steve
>
> On Sun, 26 Aug 2007 21:49:52 -0700
> "William Stein" <[EMAIL PROTECTED]> wrote:
>
>
> > On 8/26/07, Steve Linton <[EMAIL PROTECTED]> wrote:
> > > >   (1) What's the latest status of this question?
> > >
> > > No change.
> > >
> > > >   (2) Is there any hope?
> > >
> > > Yes. It needs a C programmer who can manage a few lines of in-line 
> > > assembler
> > > with GCC, an Itanium to test it on and about 30 lines of code.
> > > If it acquired a high enough priority I would do it, but I can't hope to 
> > > do it
> > > this month or next. I can explain what is needed about GAP in an email if 
> > > you
> > > have a C programmer.
> >
> > I "have a C programmer", so if you could explain what is needed, it would
> > be greatly appreciated.
> >
> > > >   (3) Who should I talk to?
> > > >
> > > Me.
> >
> > Excellent.
> >
> > > > Would giving a certain GAP developer a temporary account on an Itanium
> > > > machine help?  It's possible that this could be arranged.
> > > >
> > >
> > > There aren't many of that are happy doing fiddly C work of this kind. I 
> > > can
> > > see if anyone wants to try.
> >
> > Thanks.  There are actually a lot of Itaniums at supercomputing centers
> > in the US, for some reason.
> >
> > William
>
>
>
> --
> Steve Linton    School of Computer Science  &
>       Centre for Interdisciplinary Research in Computational Algebra
>              University of St Andrews    Tel   +44 (1334) 463269
> http://www.cs.st-and.ac.uk/~sal          Fax   +44 (1334) 463278
>



-- 
William Stein
Associate Professor of Mathematics
University of Washington
http://wstein.org

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/
-~----------~----~----~----~------~----~------~--~---

Reply via email to