View previous topic :: View next topic |
Author |
Message |
phoenix
Joined: 06 Mar 2005 Posts: 68
|
Posted: Wed Nov 29, 2006 9:20 am Post subject: Development tasks and contributions |
|
|
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 |
|
|
phoenix
Joined: 06 Mar 2005 Posts: 68
|
Posted: Wed Nov 29, 2006 9:35 am Post subject: |
|
|
Oh and introduce a bit (of relevant info) about yourself . 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 |
|
|
qbert
Joined: 30 Mar 2004 Posts: 209 Location: Dallas, Texas
|
Posted: Wed Nov 29, 2006 2:22 pm Post subject: |
|
|
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 |
|
|
asterite
Joined: 01 Jun 2006 Posts: 235 Location: Buenos Aires, Argentina
|
Posted: Wed Nov 29, 2006 8:39 pm Post subject: |
|
|
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. |
|
Back to top |
|
|
JJR
Joined: 22 Feb 2004 Posts: 1104
|
Posted: Wed Nov 29, 2006 8:50 pm Post subject: |
|
|
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 |
|
|
mangstacular
Joined: 01 Mar 2007 Posts: 2 Location: West Virginia
|
Posted: Thu Mar 01, 2007 5:12 pm Post subject: |
|
|
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. |
|
Back to top |
|
|
brad Site Admin
Joined: 22 Feb 2004 Posts: 490 Location: Atlanta, GA USA
|
Posted: Fri Mar 02, 2007 4:03 pm Post subject: |
|
|
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 |
|
|
mangstacular
Joined: 01 Mar 2007 Posts: 2 Location: West Virginia
|
Posted: Sat Mar 03, 2007 8:46 am Post subject: |
|
|
I guess I should have done my homework. I didn't notice all the other things dsource has. :/ |
|
Back to top |
|
|
fraserofthenight
Joined: 08 Apr 2007 Posts: 33 Location: Seattle, WA
|
Posted: Sun Apr 08, 2007 7:23 pm Post subject: |
|
|
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 |
|
|
asterite
Joined: 01 Jun 2006 Posts: 235 Location: Buenos Aires, Argentina
|
Posted: Tue Apr 17, 2007 9:47 pm Post subject: |
|
|
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 |
|
|
|
|
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
|