What to do with Descent?
Ary Borenszweig
ary at esperanto.org.ar
Thu May 6 08:10:28 PDT 2010
Jacob Carlborg wrote:
> On 5/5/10 21:29, Arlo White wrote:
>> I just played with dmd 2.045 and Descent yesterday for the first time.
>> Yes Descent is a bit buggy (couldn't get builds or context-assist
>> working), but I still stuck with it because I'm familiar with Eclipse
>> and none of the other D editors looked that mature either (or weren't
>> available for Linux).
>
> You can build a project (with external tools). Context-assist should work.
Not sure it works with dmd 2.025, though.
>
>> As someone mentioned, it's much easier for people to learn a new
>> language if they don't have to learn a new IDE at the same time. Eclipse
>> is a pretty solid platform to build on and a lot of people are familiar
>> with it. If D expects to be a popular programming language an Eclipse
>> plugin is almost a necessity.
>>
>> True, not many people use Descent now, but if/when D becomes popular a
>> lot of people will want a good Eclipse plugin, and you'll want to be
>> ready for them, which means having Descent ready when D2 is.
>>
>> I'm surprised that the language updates can't be automated, but I'm not
>> familiar with how Eclipse does language syntax under the hood.
>
> For Java Eclipse uses the built in incremental java compiler as far as I
> know. For D the DMD frontend is translated into Java and somewhat
> modified, adding caches and similar, the DMD frontend is not made for
> this kind of things. Then the frontend also needs to integrated with the
> existing Eclipse APIs
Yes, exactly. The tasks when a new D version comes out are:
- Update the lexer/parser and basically port the diff between the
version to Java and Descent.
- Update the public AST (read below...)
- Check which small features the IDE can provide with these new
features. For example if there's a new keyword, autocompletion of it
must be checked. Another example: when alias this was introduced
autocompleteion offered completions of the aliased symbol.
That's basically it. The problem is, the last ported version is like 2.030
http://www.dsource.org/projects/descent/browser/trunk/descent.core/src/descent/internal/compiler/parser/port.txt
And diffs between each version are huge, it takes a lot of time to do
it. Frank Benoit started working on a tool to more or less automate this
process, but I don't knnow what happened with that.
But the real problem is that I don't want to do it. I don't want to
spend time on it. I'm a little tired of it.
Maybe another problem is that Descent want to do a lot of things, but
it's very hard to do it (specially if not many people are working on the
project)
>
>> If the task is really that menial maybe it could be automatically
>> divided up and farmed out to volunteers?
Yes, the diff can be splitted into several people.
>>
>> Could you add a page to your wiki describing the problem you're having
>> keeping up with the language and some examples of how a D language
>> change translates to a Descent change. Also, show why it's hard to
>> automate. Then post a link here and maybe some people can look at the
>> problem and give you ideas on how to automate it or divide up the task.
>
> I've answer most of this in the above answer, you can also look at:
> http://www.dsource.org/projects/descent/wiki/Development
That page is a little outdated, but most of what it says is correct. The
implementation details defer (for example there's no IModule, that was a
first approach).
>
>> I would be willing help you out if you can describe what I need to do
>> and where the code is. I downloaded the descent.core source, but there's
>> a lot in there and I'm not even sure where the D language stuff is.
The port is here:
http://www.dsource.org/projects/descent/browser/trunk/descent.core/src/descent/internal/compiler/parser/
This is the public AST (different from the port in that it contains more
useful information for the IDE, and in a homogeneous way):
http://www.dsource.org/projects/descent/browser/trunk/descent.core/src/descent/core/dom
Thanks for wanting to help! I can give info on how to modify the project
and make it grow, coding a little, but I'm not sure I will spend lots of
time on it from now on.
More information about the Digitalmars-d-ide
mailing list