[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Fwd: inlining enabled in guile-vm: things get faster
From: |
Andy Wingo |
Subject: |
Fwd: inlining enabled in guile-vm: things get faster |
Date: |
Mon, 26 May 2008 10:46:52 +0200 |
Forwarding to the list. I'm temporarily on gmail, on which I'm a newb, sorry :)
---------- Forwarded message ----------
From: Andy Wingo <address@hidden>
Date: Mon, May 26, 2008 at 10:45 AM
Subject: Re: inlining enabled in guile-vm: things get faster
To: Ludovic Courtès <address@hidden>
Hi!
On Mon, May 26, 2008 at 9:55 AM, Ludovic Courtès <address@hidden> wrote:
> Andy Wingo <address@hidden> writes:
>
> > So it turns out that inlining of a number of operations was disabled in
> > guile-vm, from `apply' to `=' and other such things.
>
> That's nice, but it reminds me of that discussion we had when I
> experimented with similar things in the evaluator [0]. I think it's
> important to optimize the general R5RS-compatible case, rather than
> start relying on non-standard behavior for speed.
Oh I think you're right, definitely. But we have two things here: one,
some of these operations are fundamental, like `apply'. Two, the
functions that I inlined are all implemented in C, which is a form of
the hack that you refer to; basically, these inlines make those C
functions compile to code that doesn't have to leave the VM -- as if
they were implemeted in Scheme at the beginning. Also, I would say
that `+' is a valid instruction, wouldn't you?
(Also, this machinery already existed in macros.scm, but it wasn't
being plugged in.)
So I think that we're on the same page :)
Andy