unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
From: Christopher Cramer <crayc@pyro.net>
Cc: guile-devel@gnu.org
Subject: Re: Compilers for Guile (related to roadmap and goals)
Date: Tue, 23 Apr 2002 17:03:38 -0500	[thread overview]
Message-ID: <20020423170338.A10827@kiwi.pyrotechnics.com> (raw)
In-Reply-To: <3CC4FE4E.1B343860@staff.ttu.ee>; from tammet@staff.ttu.ee on Tue, Apr 23, 2002 at 09:25:18AM +0300

On Tue, Apr 23, 2002 at 09:25:18AM +0300, Tanel Tammet wrote:
> 2) The last distro compilation claimed smth about a duplicate
> definition (cannot remember exactly): one of the internet-oriented
> functions ins Guile .c clashed with a standard one in the Linux
> (gcc?) library. I could fix it in source, though.

Anyone who follows bug-guile is not only familiar with, but probably
sick of, this problem. It has been puzzling to me why this wasn't fixed
a long time ago. There seems to be some sort of bureaucratic problem
with releasing another 1.4.x with just a fix for this problem.

>   Obviously, many Guile developers do not think
>   speed is important (otherwise Guile would be at least
>   as fast as SCM and would have a compiler).

In their defense, sometimes other things take priority over speed.
I agree with the rest of your argument though; speed is very important.

>    - It would probably be trivial to make Hobbit understand
>      guile primitives. For example, Aubrey hacked Hobbit
>      to support the last versions of SCM. I can do that too :)   

One of the difficulties, from what I've seen, is that most of the module
system isn't made up of primitives. It leads to sort of a chicken and
egg problem: how do you compile the module system, when the compiler
depends on the module system? But I may be misunderstanding the problem.

>    There are three kinds of code where Hobbit loses in a major
>    way to Stalin etc:
>    
>    - code using call/cc in speed-critical parts. The slowness
>      of this stems from the way scm (and guile) are interpreted
>      (using stack), NOT hobbit. You can make such code compile
>      nicely only with a completely different (non-stack) approach,
>      and many byte-code compilers do this (hence being fast
>      on call/cc).

I think the consensus is that call/cc just isn't going to be fast if
you want to interface with C. I suppose if you can detect upward-only
uses of call/cc, those uses can be done with setjmp.

>    - code relying on fast (proper) implementation of tailrecursion
>      for mutually tail recursive functions. Hobbit (and Bigloo, for
>      example) only recognise tail recursion inside a function, not
>      mutual tail tail recursion between different functions.

This is pretty much impossible to solve without help from the C compiler.
But, hey, we can change gcc, so anything is possible.

> And now, the final question after the long story:
> is anybody from the Guile community right now hacking
> Hobbit or some other scheme-to-c compiler for Guile?

I have tried to get Hobbit working again, but I don't have any experience
with compiler development, and I didn't get very far. Mostly what I got
was an urge to rewrite the module system.

-- 
Christopher Cramer <crayc@pyro.net> <http://www.pyro.net/~crayc/>
Quoi que vous fassiez, écrasez l'infâme, et aimez qui vous aime.
	-- Voltaire

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-devel


  parent reply	other threads:[~2002-04-23 22:03 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-04-23  6:25 Compilers for Guile (related to roadmap and goals) Tanel Tammet
2002-04-23 14:58 ` Rob Browning
2002-04-23 22:03 ` Christopher Cramer [this message]
2002-04-24  2:55   ` Thien-Thi Nguyen
2002-05-14 10:20 ` Thien-Thi Nguyen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20020423170338.A10827@kiwi.pyrotechnics.com \
    --to=crayc@pyro.net \
    --cc=guile-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).