FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Development tasks and contributions

 
Post new topic   Reply to topic     Forum Index -> Descent
View previous topic :: View next topic  
Author Message
phoenix



Joined: 06 Mar 2005
Posts: 68

PostPosted: Wed Nov 29, 2006 9:20 am    Post subject: Development tasks and contributions Reply with quote

For those interested in contributing to this project (Frank B. in particular) let's talk about possible task assignments.

First of all, as for me, I am currently working on designing a new DOM AST, while making an adapter that converts to it from Descent's AST (the DMD port AST)

It's hard to find some tasks without having first a solid base/"architecture" for the plugin project. But a possible task is to work on the build and launch system like you mentioned in the email. It's fairly parallel, if not mostly independent. There are some requisites for the whole of the plugin: the project descriptor. The core needs to know about source folders, import folders, and possibly also about conditional properties. So the core needs to able to load and store this information.

Another task, which is small and simple (not much working knowledge required), and can be made with someone with not much time available, is to make a test suite that:
For each file in Dstress that is syntatically valid D code, runs it trough the parser, then trough the code formatter, and check that the output is no different than the original, barring whitespaces. No actual knowledge of the IDE or eclipse internals is needed for this. (note that the formatter and parser are not ready currently)
_________________
Bruno Medeiros
Back to top
View user's profile Send private message
phoenix



Joined: 06 Mar 2005
Posts: 68

PostPosted: Wed Nov 29, 2006 9:35 am    Post subject: Reply with quote

Oh and introduce a bit (of relevant info) about yourself Smile . Age, occupation, development experience and how much time do you think (or hope) to have available to contribute.

I'll be working on this project during this school year, as my "college course final project" as they call it.
_________________
Bruno Medeiros
Back to top
View user's profile Send private message
qbert



Joined: 30 Mar 2004
Posts: 209
Location: Dallas, Texas

PostPosted: Wed Nov 29, 2006 2:22 pm    Post subject: Reply with quote

I'd like to contribute also.

I am contract programmer in south texas, am 27 and have been using D for a while now. I hope to contribute a good deal of time to Descent, and would love to see a solid release in time for D 1.0.

I've never done an eclipse plugin, so far I've just been looking through the code and reading articles .

I'd like to work on the build system, I think using bud is probably the best route, but maybe we should support both bud and DMD ?

Also, from the descent.ui and descent.core , how do we make a redistrubutable file that people can install via the Eclipse Plugin Installer ?

Charlie
Back to top
View user's profile Send private message MSN Messenger
asterite



Joined: 01 Jun 2006
Posts: 235
Location: Buenos Aires, Argentina

PostPosted: Wed Nov 29, 2006 8:39 pm    Post subject: Reply with quote

qbert wrote:
I'd like to contribute also.
I'd like to work on the build system, I think using bud is probably the best route, but maybe we should support both bud and DMD ?


Each time a file in the project changes, get it's import declarations, search them in the project path, configured libraries and project references (if there's more than one match, I don't know what to do), and link them. Umm... Just making "dmd -I... -L... file.d" is enough, I think, if everything is placed in the correct path... isn't it?

Currently the "build system" compiles files, but it's not flexible nor powerful (it currenlty dosen't link files to produce executables).

You should ask Frank Benoit how he's planning to do it.

qbert wrote:

Also, from the descent.ui and descent.core , how do we make a redistrubutable file that people can install via the Eclipse Plugin Installer


You create a feature (it's there) and put it on a website. I didn't do it, but it seems to be easy. I haven't done this yet because the plugin dosen't do that much... you can't work with the plugin alone, you have to go to the command line to link, all error messages dosen't show, etc.

What I'm doing now? I'll try to inject JDT classes into the project. Also I'll try to make the AST look as close to the AST in org.eclipse.jdt.dom. If it worked for them, it should work for us. Smile
Back to top
View user's profile Send private message Yahoo Messenger MSN Messenger
JJR



Joined: 22 Feb 2004
Posts: 1104

PostPosted: Wed Nov 29, 2006 8:50 pm    Post subject: Reply with quote

This looks great, guys!

I hope you gents will make sure the IDE plugin works on more than one platform (linux, win32, macosx?). The last plugin seemed to only work for windows... don't know why.

Anyway, good luck!

-JJR
Back to top
View user's profile Send private message
mangstacular



Joined: 01 Mar 2007
Posts: 2
Location: West Virginia

PostPosted: Thu Mar 01, 2007 5:12 pm    Post subject: Reply with quote

Hey, an active D IDE project! Can I help? I've just discovered D about a month ago and would be interested in contributing to this project. I've been reading up on the Eclipse platform for the past couple weeks now, so I have a good understanding of how plug-ins operate. I'm not sure what I'd like to contribute specifically, but in the meantime, I'll look over what you've done so far.

Might I suggest a move to sourceforge.net? Not that I have anything against dsource, but sourceforge is much more fleshed-out in terms of project management. It gives you all kinds of additional tools like bug tracking, mailing lists, a custom webpage (projectName.sourceforge.net), and various statistics on various things. It even lets you define "sub projects", which, after reading the forums here, seems would be helpful in keeping us all organized. The only downside I can see is that it appears to only support CVS, which isn't quite as good as SVN. But that's not such a big deal. If this project continues to grow, having this kind of toolset will prove very helpful.

Anyway, cool to have found you all. Smile
Back to top
View user's profile Send private message Send e-mail
brad
Site Admin


Joined: 22 Feb 2004
Posts: 490
Location: Atlanta, GA USA

PostPosted: Fri Mar 02, 2007 4:03 pm    Post subject: Reply with quote

Couple of things here:

1. Sure, sourceforge.net is a bit more fleshed out. They have a bigger budget.

2. Every project at dsource has bug tracking, wiki, (arguably better) code browser, project.dsource.org, and soon will have mailing lists and statistics. You should visit /projects/descent to check out the Trac instance.

3. Forums will be like the ones in Tango, per project, with as many sub-forums as you want. The forums as they exist now are going away, and none too soon.

4. sf.net does indeed support SVN now.

BA
_________________
I really like the vest!
Back to top
View user's profile Send private message
mangstacular



Joined: 01 Mar 2007
Posts: 2
Location: West Virginia

PostPosted: Sat Mar 03, 2007 8:46 am    Post subject: Reply with quote

I guess I should have done my homework. I didn't notice all the other things dsource has. :/
Back to top
View user's profile Send private message Send e-mail
fraserofthenight



Joined: 08 Apr 2007
Posts: 33
Location: Seattle, WA

PostPosted: Sun Apr 08, 2007 7:23 pm    Post subject: Reply with quote

Hi; I'm interested in contributing to the project; as I like Eclipse as an IDE and need a good development tool for my current D project. I am Robert Fraser, 20 years old, and am currently working as a Software Engineer. My main experience is in networking and mobile application design, but I'm eager to learn more about compiler and IDE design and would like to contribute in any way possible, though with work and my own project (as well as a little real life), I'm not sure if I'll have much time to work on this.

If no one else is woprking on it; I could start out with that test tool you mentioned for code formatting. WOuld you prefer any specific integration into the rest of the project, or format/style/technology for it to be in?
Back to top
View user's profile Send private message Send e-mail AIM Address MSN Messenger
asterite



Joined: 01 Jun 2006
Posts: 235
Location: Buenos Aires, Argentina

PostPosted: Tue Apr 17, 2007 9:47 pm    Post subject: Reply with quote

Hello! Thanks for your interest and will to help!

It would be great if you can do the formatter stuff. Since Descent has copied several aspects of JDT (the plugin for Java), and JDT already has an excellent formatter, the idea is to copy it first, then adapt it to D.

I recommend you first to get the source of the plugins org.eclipse.jdt and org.eclipse.jdt.ui (they are in the org.eclipse.jdt.source folder in the plugins folder of Eclipse) and open them as Eclipse projects (renaming the plugin id's, otherwise you'll get some conflicts).

Then, the classes to study are org.eclipse.jdt.internal.formatter.DefaultCodeFormatter (replicated in descent.internal.formatter.DefaultCodeFormatter ... generally the prefix org.eclipse.jdt is converted into descent) and org.eclipse.jdt.internal.formatter.CodeFormatterVisitor (not replicated yet).

I haven't seen much of their code, but I think the basic idea is:
- visit the AST tree "from left to right"
- pass the information of each node to a scribe (org.eclipse.jdt.internal.formatter.Scribe class). For example: print the token "int", print a name, print an open curly, etc. The scribe's work is to format in turn each of this small pieces (warning: this is just a guess).
- compare somehow the original source code to the code created by the scribe (I guess this is done as the scribe writes). This gives you an object that represents the edit made to pass from the original source to the new source, allowing you to redo what you've done.

Unfortunately, the CodeFormatterVisitor is done on the internal AST of JDT: the internal is a more powerful, closer to the compiler one, while the public AST is nicer, better commented, more useful to the client side. Fortunately, there is a CodeFormatterVisitor2 that operates on the public AST. There is a public AST in Descent very similar to the one in JDT. So you should try to copy that class and make it work in Descent (if you want to understand them in full depth it's up to you, it may not be necessary).

Where to make the changes? If you use eclipse you'll see a large task list, lot's of TODOs. Most of the TODOs have the form "TODO JDT ..." or "TODO JDT UI ...". The ones relating to formatting starts with "TODO JDT formatter" and "TODO JDT UI formatter" and are commented out in Descent's source code, so after writing the visitor you will want to uncomment and fix those parts.

It would be great also if you could wtite tests (if possible) to prove the formatter works as expected... It is also faster than running the product, past a code and format to see if everything works ok.

Fhew! Well... I hope that helps for an introduction. I'm on MSN, you can contact me: asterite at hotmail dot com
Back to top
View user's profile Send private message Yahoo Messenger MSN Messenger
Display posts from previous:   
Post new topic   Reply to topic     Forum Index -> Descent All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group