What to do with Descent?

Jacob Carlborg doob at me.com
Thu May 6 08:58:12 PDT 2010


On 5/6/10 17:10, Ary Borenszweig wrote:
> 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.

If you refer to Tiport then it has been abandoned. It was developed to 
port SWT to D but eventually it turned out that you basically need to 
port almost the whole Java API.

> 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.

That is too bad. I really like descent, using it almost every day.

> 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