[Top][All Lists]

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

Re: [Qemu-devel] get_func() hangs with gcc 3.4.2 on MinGW and WinXP host

From: Rob Browning
Subject: Re: [Qemu-devel] get_func() hangs with gcc 3.4.2 on MinGW and WinXP host
Date: Sun, 19 Dec 2004 21:31:52 -0600
User-agent: Gnus/5.1007 (Gnus v5.10.7) Emacs/21.3 (gnu/linux)

Johannes Schindelin <address@hidden> writes:

> If you would ask me, I'd rather go for GNU Lightning, which is LGPL,
> and has a clean interface. I did not yet play with it, but a friend
> told me that it's quite fast, and maybe it's possible to do
> something Hotspot like. The downside: Lightning only supports i386,
> ppc and sparc backends AFAIK. OTOH this could lead to a synergetic
> effect.

It might be interesting to note that languages like Scheme have
similar needs, at least when considering direct compilation.  Scheme
requires tail-call optimization, and so compiling Scheme functions
directly to C functions using the normal C ABI won't work because the
caller, rather than the callee, cleans up the stack, and tail-call
optimization requires that there be no stack growth when possible.

I did have a conversation with one of the gcc developers about whether
or not it might be possible to make gcc more amenable to non-C-like
languages, specifically with respect to tail-calls, and he was very
helpful.  In the end he suggested that the most likely way that the
relevant changes would be accepted into gcc would be if they were done
at the RTL level.  So it would be possible to create a front end for a
particular language that took advantage of the new RTL annotations.

For similar reasons the language Mercury actually uses (or has used)
what they call "The Evil Mangler"
which post-processes gcc's assembly.

With respect to your comment about GNU Lightning, a while ago there
was also a bit of experimentation with using it in Guile.

In any case, I mention all of this because it suggests that there
might be a non-trivial audience for a good, cross-platform method of
generating code or code-fragments when your needs don't quite match
the C ABI.

Oh, and another possibly relevant project that was mentioned to me,
but I havent investigated much yet, is C--

Rob Browning
rlb @defaultvalue.org and @debian.org; previously @cs.utexas.edu
GPG starting 2002-11-03 = 14DD 432F AE39 534D B592  F9A0 25C8 D377 8C7E 73A4

reply via email to

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