[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [r6rs-discuss] Implementors' intentions concerning R6RS
From: |
Neil Jerram |
Subject: |
Re: [r6rs-discuss] Implementors' intentions concerning R6RS |
Date: |
Tue, 30 Oct 2007 22:53:16 +0000 |
User-agent: |
Gnus/5.110006 (No Gnus v0.6) Emacs/21.4 (gnu/linux) |
address@hidden (Ludovic Courtès) writes:
> He, that was sort of a teaser. ;-)
>
> When I started using Guile, I was fully in sync with the "embeddable
> library" approach, which means that I'd write, say, 75% of an
> application in C, and then arrange to have the remainder written in
> Scheme in an extensible fashion.
>
> But I started really enjoying Scheme and wanting to write less C, more
> Scheme. So why bother writing C at all when I could avoid it? Well,
> for "performance reasons".
Completely agreed so far, except that there is another reason for
writing C code: simply to interface with a C library that already
exists. There are a few of those out there. :-)
I have two lines of thought that are compatible with your account, if
not exactly the same.
1. The fundamental premise of writing in a scripting language must be
that it is easier / quicker / more fun / more effective than
writing in C. Therefore one must want to maximize the amount of
scripting language code that one writes, compared to the C code.
2. I originally thought that a software-component-using-Guile should
typically be a complete application - such as Gnucash. Now I think
that a software-component-using-Guile should ideally be a library -
such as a module providing operations on financial objects - and
that applications should be created, in Scheme, through relatively
trivial composition of sophisticated libraries.
> And what are those "performance reasons"?
> The interpreter is pretty slow, which is definitely not due to inherent
> limitations of the language, but to the implementation.
I haven't personally been gated by this yet, but I can't disagree with
it.
> I'm convinced that it's possible to write a Scheme interpreter much
> faster than ours.
It must be possible, because other implementations have done it.
It's difficult at this point to avoid a possibly unwelcome question:
what makes Guile Guile, and why wouldn't we be better off contributing
our resources to an implementation that already is faster?
(I believe that we _do_ have a collection of features that makes Guile
currently unique, but I can't rule out the possibility that another
implementation might be open to accepting enhancements that would
incorporate these features. But perhaps someone else has done the
analysis, and so _can_ rule this out.)
> So I think that's one route we should take in 1.9.
> The next step would be to have a compiler (to byte code, to C,
> whatever). However, I think the interpreter should keep playing a
> central role in Guile (because it always did, and because it's often
> convenient to work with an interpreter), which is why I would consider
> improving/rewriting the interpreter a major goal for 1.9.
Those are welcome goals, and I'm sure that I would appreciate the
increased performance.
> Maybe we should start a discussion about what we'd like to see in 1.9?
> :-)
The kinds of things that I am most interested in are:
- finishing off the debugging infrastructure
- progressive completion and polishing of the manuals
- improving tracking, provision and regression testing of the
available Guile add-on libraries; also providing interesting
examples of how interesting things can be achieved by combining such
libraries
- possibly integrating with other systems' library repositories (such
as Snow)
- in general, any kind of situation where we can create value just by
putting existing stuff together (another possible example: the Emacs
Lisp translation support + existing Emacs Lisp libraries), or by
better tracking of what's available.
The phrase "what we'd like to see" is IMO unrealistic, though. I
don't think any of us (Guile developers) can commit to achieving
particular things by particular dates, and I wouldn't wait to delay a
new release, once a sufficient amount of interesting new stuff has
accumulated, because a particular target has not been met.
Regards,
Neil
- Re: [r6rs-discuss] Implementors' intentions concerning R6RS, Neil Jerram, 2007/10/28
- Message not available
- Re: [r6rs-discuss] Implementors' intentions concerning R6RS, Neil Jerram, 2007/10/28
- Re: [r6rs-discuss] Implementors' intentions concerning R6RS, Ludovic Courtès, 2007/10/29
- Re: [r6rs-discuss] Implementors' intentions concerning R6RS, Neil Jerram, 2007/10/29
- Re: [r6rs-discuss] Implementors' intentions concerning R6RS, Ludovic Courtès, 2007/10/30
- Re: [r6rs-discuss] Implementors' intentions concerning R6RS, Julian Graham, 2007/10/30
- Re: [r6rs-discuss] Implementors' intentions concerning R6RS, Neil Jerram, 2007/10/30
- Re: [r6rs-discuss] Implementors' intentions concerning R6RS, Julian Graham, 2007/10/31
- Re: [r6rs-discuss] Implementors' intentions concerning R6RS, Ludovic Courtès, 2007/10/31
- Re: [r6rs-discuss] Implementors' intentions concerning R6RS,
Neil Jerram <=
- Re: [r6rs-discuss] Implementors' intentions concerning R6RS, Ludovic Courtès, 2007/10/31
- Re: [r6rs-discuss] Implementors' intentions concerning R6RS, Andy Wingo, 2007/10/30
Re: [r6rs-discuss] Implementors' intentions concerning R6RS, Elf, 2007/10/29