Re: Status of the "Project Ideas" page / Summer of Code

From:

Andy Wingo

Subject:

Re: Status of the "Project Ideas" page / Summer of Code

Date:

Tue, 25 Apr 2006 16:11:57 +0200

Hi Martin,
On Mon, 2006-04-24 at 23:17 +0200, Martin Kuehl wrote:
> I stumbled upon the Guile Project's "Project Ideas"[1] page while
> looking for inspiration for this year's issue of Google's "Summer of
> Code", and I think guile would make an interesting project to hack on.
Neat! Guile is quite a useful scheme implementation.
I don't know that I would be qualified to mentor, but I can comment on
the potential of some of the ideas. The ideas page is indeed *really*
out of date.
> I'm "mainly" interested in the "Value history", "C parser" and "Henry
> Spencer's regexp matcher" items and garbage collection (I also read
> the "Guile + Boehm GC" thread[4], so I'll assume this is an open
> issue).
>
> I was also thinking about SLIME[5] support, probably by porting
> slime48[6], and maybe even evaluationg what's been done for Pika
> Scheme[7] -- and ripping out the good bits... Feedback anyone?
Value history has existed ((ice-9 history), a 100-line hack) at least
since I started using guile in 2003. I can't bear to go through that
list right now, there are too many old things... someone (ahem) should
find the time to take out the lawn-mower.
Guile+boehm gc would indeed be very interesting. You should probably
talk to han-wen at some point, who afaiu did most of the gc hacking for
1.7/1.8.
Slime support would be verrry interesting (I wrote about it once [0]),
and probably should be done using ports from scheme48. It shouldn't be
too terribly hard, either. Neil Jerram has done a lot of guile<->emacs
work, perhaps he has some thoughts on the subject.
The other perennial topic with guile is compilation -- many important
operations are fundamentally limited by interpreter speed (large GOOPS
libraries, for example) -- compilation is the only reasonable way to
improve this IMO. There have been a few ideas, including a port of
hobbit to guile from a while ago, but a comprehensive solution should
take macros and modules into account. There is was a thread on
guile-devel in 2004 [1] that's still relevant about the topic; also the
"You want it when?" paper by Flatt.
To finish my rambling on compilation: to be something that would be
likely to be used in the future, it should take modules and macros into
account. There have been quite a few halfway attempts. It would probably
be acceptable to ignore r5rs macros, as being very complicated, and in
the hopes that something like srfi-72 replaces them. As for libraries,
guile will probably (I think) adopt r6rs libraries as its native module
format, whenever it is that it gets standardized (srfi-83). It might be
easier to base such a system on a minimal implementation of srfi-83.
So, for summer-of-code it would be very educational for a more advanced
student to have a stab at the compilation problem. You can go very far,
and learn a lot of interesting things. That's the most exciting one
imo :)
[0] http://wingolog.org/archives/2006/01/02/slime
[1]
http://news.gmane.org/find-root.php?group=gmane.lisp.guile.devel&article=1787
Happy hacking,
--
Andy Wingo
http://wingolog.org/