Re: Removal of hppa support

John Paul Adrian Glaubitz <[email protected]>
Newsgroups gmane.lisp.guile.devel,gmane.linux.debian.ports.hppa
Message-ID <[email protected]>
Hi!

On 1/27/20 4:46 PM, Andy Wingo wrote:
> William is correct.  HPPA support is not gone from Guile; and indeed
> it's good to hear from you :)  I wasn't sure there were any IA64 users
> remaining.

It fails to build from source on Debian hppa, however:

> https://buildd.debian.org/status/fetch.php?pkg=guile-3.0&arch=hppa&ver=3.0.0%2B1-1&stamp=1580702308&raw=0

continuations.c: In function 'scm_dynthrow':
continuations.c:326:5: error: too few arguments to function 'grow_stack'
  326 |     grow_stack (cont);
      |     ^~~~~~~~~~
continuations.c:276:1: note: declared here
  276 | grow_stack (SCM cont, uint8_t *mra)
      | ^~~~~~~~~~

I'm currently working on a patch.

> Initially in Guile I planned to use GNU Lightning, in part because of
> its great platform support.  However it turned out to not be the right
> thing, and reluctantly I ended up doing something that was more like a
> rewrite than a refactor.  In that context I personally don't have the
> budget to write the IA64 backend.  So, Guile 3 still runs on IA64, just
> without JIT support.

It also fails on ia64 at the moment:

> https://buildd.debian.org/status/fetch.php?pkg=guile-3.0&arch=ia64&ver=3.0.0%2B1-1&stamp=1580702151&raw=0

continuations.c:146:23: error: missing binary operator before token "or"
  146 | # if !(defined __ia64 or defined __ia64__)
      |                       ^~

I fixed the preprocessor conditional, but then I'm running into another
issue:

continuations.c: In function 'capture_auxiliary_stack':
continuations.c:152:7: warning: implicit declaration of function 'getcontext' [-Wimplicit-function-declaration]
  152 |   if (getcontext (&ctx) != 0)
      |       ^~~~~~~~~~
continuations.c:158:21: error: invalid type argument of '->' (have 'ucontext_t' {aka 'struct ucontext_t'})
  158 |   top = (char *) ctx->uc_mcontext.sc_ar_bsp;
      |                     ^~
continuations.c:167:26: error: 'scm_thread' {aka 'struct scm_thread'} has no member named 'auxiliary_stack_base'
  167 |     top - (char *) thread->auxiliary_stack_base;
      |                          ^~
continuations.c:171:48: error: 'scm_thread' {aka 'struct scm_thread'} has no member named 'auxiliary_stack_base'
  171 |   memcpy (continuation->auxiliary_stack, thread->auxiliary_stack_base,
      |                                                ^~
continuations.c: In function 'restore_auxiliary_stack':
continuations.c:180:17: error: 'scm_thread' {aka 'struct scm_thread'} has no member named 'auxiliary_stack_base'
  180 |   memcpy (thread->auxiliary_stack_base, continuation->auxiliary_stack,
      |                 ^~

Working on a patch here as well.

> If someone would like to write an IA64 backend for Lightening, I would
> be happy to accept it :)  The beginnings of one are there in the git
> history.

Ok. I assume that applies to alpha, hppa, m68k, powerpc*, riscv*, sparc* as well.

Adrian

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - [email protected]
`. `'   Freie Universitaet Berlin - [email protected]
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.