[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Help-smalltalk] Help the gnu-smalltalk project
From: |
Paolo Bonzini |
Subject: |
Re: [Help-smalltalk] Help the gnu-smalltalk project |
Date: |
Tue, 18 Nov 2008 10:15:25 +0100 |
User-agent: |
Thunderbird 2.0.0.17 (Macintosh/20080914) |
> I'm new to gnu-smalltalk and I would like to help you.
> During this summer I've worked on the gtk plugin for squeak.
> May be I can help you on that side or adding the support of webkit
> for gnu-smalltalk or the support of multiprocessors for the vm ;)
You look like a UI guy, but if you don't have problems with more
infrastructure work (that *will* have an effect on the UI in the medium
term), one thing that you can do is to a file-based change management
system: that would be making a set of classes that represent changes
(patches to methods, adding/removing instance variables, and so on), and
being able to apply them to files. A lot of the code from the
Refactoring Browser can actually be leveraged.
To apply changes to files, you'd need a parser for the GNU Smalltalk
syntax; right now there is one in packages/stinst/parser/GSTParser.st
but it just converts the syntax to doits. You can hijack most of the
code, but what you need is a little different because you have to track
the syntax elements (i.e. there should be a visitor API similar to SAX,
tracking the locations so that you can reconstruct the original file as
accurately as possible). It's not a syntax tree, it's not a lot of code
to write.
Plugging that in the browser should not be hard, and would provide the
single missing block that's needed to program GNU Smalltalk in the browser.
I know about your GSOC project, and it's a pity that you cannot leverage
it fully. Unfortunately, even though I ported OB-Core and it all went
fine, the OmniBrowser-based browsers were completely unportable, and it
is easier to rewrite them than to port them. I have some ideas for an
alternative UI model, but it's stuck on the lack of support in GTK+ (it
should go in 2.16, hopefully).
Paolo