View previous topic :: View next topic |
Author |
Message |
qbert
Joined: 30 Mar 2004 Posts: 209 Location: Dallas, Texas
|
Posted: Sat Jun 12, 2004 5:23 pm Post subject: DWT Status |
|
|
Hey DWT team, was just wondering if you could give us a report on the status of DWT ? ( ? complete ... D troubles that might make it not doable etc )
Thanks,
Charlie |
|
Back to top |
|
|
brad Site Admin
Joined: 22 Feb 2004 Posts: 490 Location: Atlanta, GA USA
|
Posted: Tue Jun 15, 2004 1:08 pm Post subject: |
|
|
I'll just start typing and see what I have at the end of it. Then you can pepper the forum with questions.
It's hard to put a ? complete on this, because of the forward reference issues. I could guess at 75?, knowing that we have yet to do the events sub-system with delegates, and have a few more issues to clean up with the original port of Java implementation to D. And this is all just for the Win32 platform.
- Forward references seem to require that every file that's downstream from the original file being compiled actually compile correctly itself. So it's very difficult to tell how close we are. There were a lot of files that we just commented out the implementation hoping to get a compile. Now we're far enough along that most of the comments surround only the events subsystem, and most of the implementation is exposed and trying to compile.
- Events using delegates are not very far along. It is what I'm planning on tackling next, unless someone else wants to jump in. I think Andy did some work on callbacks with a Python script.
- using struct instead of classes like Java did, is proving a bit difficult. It is the D way, and I agree with us doing it, but we may have an issue with Unicode vs. non-Unicode. My current issue is that I'm working on LOGFONT, LOGFONTA, and LOGFONTW, and have figured out a way to use version() blocks. However, if the version = Unicode, how do I also do a version=GTK or version=Win32? I'd actually like to stay using the variable in the OS class, isUnicode. How do I make LOGFONT either A or W without using version. Or, how do I use two different versions on the same complie?
- Most of the API calls had to be changed to accept pointers to our structs. I envision a bit of debugging here, after we get it to compile.
Even if we get it to compile, there is the question of correctly functioning. We'll then be tweaking and playing to get proper behavior of all of the graphics and widgets and such. Then we have to move to another platform.
Personally, I'm accomplishing goals that I set out to do. 1. Learn more about D - 2. Learn more about GUI libs. and 3. Get a lot better with object-oriented paradigm. However, this doesn't solve a lot of the public's problems, as they want a working copy of this thing to use in their programs.
I was getting some help from Ant early on, and Andy Friesen reworked Graphics and Internal areas. John Reimer was working on the forward references separate from my development branch, and had some luck. Steve Roy helped for a bit. And Yuriy was helping out as well, but can't get access to Subversion via his ISP. No one person is really cranking on this thing all the time. I'll throw a few weekend days at it each month, and it appears that the rest are putting in even less time than that.
So, I'm not sure I'd be counting on seeing much from the group in the near future.
BA _________________ I really like the vest! |
|
Back to top |
|
|
JJR
Joined: 22 Feb 2004 Posts: 1104
|
Posted: Tue Jun 15, 2004 2:27 pm Post subject: |
|
|
I'm afraid I've been guilty of letting this project slide a bit. Initially, I tried to make a goal for myself, but I eventually found it very hard to consistantly meet that goal in parallel with outside challenges.
So Brad's summary is accurate. From my perspective, I think he's been putting the most effort into DWT. I tried to put lots of energy into certain portions of it earlier, but it appeared that I wasn't working in tandem with other people on the project at the time. This was especially the case when I was trying to work out the delegates/event system. Other things were a priority for others at the time, so I ended up on my own then. I likely made the mistake of jumping too far ahead on features before other contributers were ready to look into that stage.
This has been part of the problem with the momentum of the project. Each of us who contribute have varying amounts of time to contribute. We go through stages of activity and inactivity based on how busy our external lives are. As a result this project is much like a manual-shift vehicle being operated by a novice driver who is just learning to drive a standard -- it lurches and stalls in a cyclical pattern.
I'm going to modify my goal, basically to do what I can when I can. I aslo think that I may just try to contribute in areas that are currently being worked on by others. My efforts may be more likely to pay off that way instead of getting lost in the process. The difficulties we've experienced in this project have much to do with the youth of the dmd compiler. So I'm thinking that brain-storming in the same area (over the divide-and-conquer method) will be more important to solving problems that keep surfacing during the conversion.
Definitely no promises anymore on a completion time. It's a big project and needs more experienced contributers who are interested in seeing its success. It seems there are many just watching and waiting as of now and few with any real passion for it's completion.
- John |
|
Back to top |
|
|
qbert
Joined: 30 Mar 2004 Posts: 209 Location: Dallas, Texas
|
Posted: Tue Jun 22, 2004 11:51 am Post subject: |
|
|
Ok thanks for the responses! Here's hoping youll continue your efforts |
|
Back to top |
|
|
BenHinkle
Joined: 27 Mar 2004 Posts: 76
|
Posted: Fri Jun 25, 2004 2:57 pm Post subject: |
|
|
brad wrote: |
- using struct instead of classes like Java did, is proving a bit difficult. It is the D way, and I agree with us doing it, but we may have an issue with Unicode vs. non-Unicode. My current issue is that I'm working on LOGFONT, LOGFONTA, and LOGFONTW, and have figured out a way to use version() blocks. However, if the version = Unicode, how do I also do a version=GTK or version=Win32? I'd actually like to stay using the variable in the OS class, isUnicode. How do I make LOGFONT either A or W without using version. Or, how do I use two different versions on the same complie?
|
Could LOGFONT be an alias for either LOGFONTA or LOGFONTW depending on a version statement? |
|
Back to top |
|
|
brad Site Admin
Joined: 22 Feb 2004 Posts: 490 Location: Atlanta, GA USA
|
Posted: Fri Jun 25, 2004 3:09 pm Post subject: |
|
|
I gave that a try, but was discouraged because I didn't know if it was possible to do multiple version statements.
Obviously, we will need a platform version (Win32, GTK, Motif, MacOSX), but can we also have another one that is Unicode or non-Unicode? Or A vs. W ?
How would that be possible? Nesting version statements?
Code: |
version (Win32) {
version (Unicode) {
}
version (NonUnicode) {
}
}
|
I would hate to go down the road of stringing version statements together for this purpose:
Win32_Unicode
Win32_NonUnicode
GTK_Unicode
GTK_NonUnicode
I think I just resigned myself to use OS.isUnicode, after I had gone down the road that you suggested. However, I think I'm to the point in the port that this needs to be addressed.
BA _________________ I really like the vest! |
|
Back to top |
|
|
larsivi Site Admin
Joined: 27 Mar 2004 Posts: 453 Location: Trondheim, Norway
|
Posted: Sat Jun 26, 2004 1:51 am Post subject: |
|
|
brad wrote: |
How would that be possible? Nesting version statements?
Code: |
version (Win32) {
version (Unicode) {
}
version (NonUnicode) {
}
}
|
|
I don't know if you find this solution good enough, but nested version statements should work. |
|
Back to top |
|
|
brad Site Admin
Joined: 22 Feb 2004 Posts: 490 Location: Atlanta, GA USA
|
Posted: Sat Jun 26, 2004 9:31 am Post subject: |
|
|
So how do I compile? and/or set versions in code?
If I set version=Win32 and version=Unicode, does the version mechanism in the language hold them both? What is the limit, if any?
There's not much in the spec, but if this works, we may be able to progress farther. _________________ I really like the vest! |
|
Back to top |
|
|
brad Site Admin
Joined: 22 Feb 2004 Posts: 490 Location: Atlanta, GA USA
|
Posted: Sat Jun 26, 2004 9:55 am Post subject: |
|
|
Oops. I just re-read the spec and will try something along the lines of this:
Code: |
version (ProfessionalEdition)
{
version = FeatureA;
version = FeatureB;
version = FeatureC;
}
version (HomeEdition)
{
version = FeatureA;
}
...
version (FeatureB)
{
... implement Feature B ...
}
|
I'm still wondering how to get more than one version on the command-line to compile. But at least I'll be able to group them into Win32-Unicode and Win32-nonUnicode, etc. Am I on the right track here? _________________ I really like the vest! |
|
Back to top |
|
|
jcc7
Joined: 22 Feb 2004 Posts: 657 Location: Muskogee, OK, USA
|
Posted: Sat Jun 26, 2004 7:51 pm Post subject: |
|
|
brad wrote: | I'm still wondering how to get more than one version on the command-line to compile. | This seems to work: Code: | dmd versions.d -version=FeatureA -version=FeatureB |
|
|
Back to top |
|
|
Blandger
Joined: 21 May 2004 Posts: 50 Location: Ukraine, Kharkov
|
Posted: Sun Jun 27, 2004 1:23 am Post subject: |
|
|
Hi all.
What's the way we can move on in the DWT ?
I got last sources from Brad last week, made some changes and finally got strict f.ref error. What we can do next? Will we wait for DMD maturity, stability or will looking for work arounds this issue? Or may be it's only thing to do now is searching and replacing code concerning windows D Strucs vs. Java Classes implementation, "version" blocks, other minor issues?
What's you opinion? _________________ Regards, Yuriy |
|
Back to top |
|
|
brad Site Admin
Joined: 22 Feb 2004 Posts: 490 Location: Atlanta, GA USA
|
Posted: Sun Jun 27, 2004 2:26 pm Post subject: |
|
|
Yuriy,
I hope to get your code posted later today.
As for how we proceed, it is like I've been saying for a while. If we solve all of the compile-time bugs, I think forward references go away. I think we can do this with version blocks, structs, and delegates. The first two are being worked on in the /branches/0.1 area of SVN. The last one (delegates) needs some attention.
I think that between DMD 0.93 and 1.0, there will not be a silver-bullet change that will help us. It's just a gut feeling, but I think we have a compiler that can get us to where we need to go. _________________ I really like the vest! |
|
Back to top |
|
|
Blandger
Joined: 21 May 2004 Posts: 50 Location: Ukraine, Kharkov
|
Posted: Mon Jun 28, 2004 8:55 am Post subject: |
|
|
brad wrote: | As for how we proceed, it is like I've been saying for a while. If we solve all of the compile-time bugs, I think forward references go away. |
I'm sure unfortunatly f.ref. won't go away by itself after fixing all compile-time errors. Moreover we won't be able to fix all this errors because DMD sticks with f.ref. at the first dwt\widgets\button.d class and doesn't go further. I have this doubts from my experience also. First experience when I tried to compile 'full DWT' version with 'java style' calling convensions, second when I worked with 'simplified DWT widgets' class hierarchy. Both this cases have a f.ref. error.
Now I'm trying to compile three subversions of 'simplified DWT' class's hierarchy (I've sent you long time ago) using DMD 0.93 I have the same three types of errors. There are the same results for subversions: 1. compiled classes, 2. f.ref. error, 3. DMD crash. So nothing has changed for this f.ref. error since DMD 0.88.
Quote: | I think we can do this with version blocks, structs, and delegates. |
I'm not sure about it at this time. DWT class hierarchy is inherited from SWT. DWT hierarchy is 'twisted' for D compiler. So DMD can't solve this issue as a Java compiler does.
Quote: | The first two are being worked on in the /branches/0.1 area of SVN. The last one (delegates) needs some attention. |
I don't think we should go further without solving f.ref. first. Am I wrong in this statement?
Quote: | I think that between DMD 0.93 and 1.0, there will not be a silver-bullet change that will help us. |
Agree. Did you try to apply for Walter about this issue?
I can post 'simplified widgets' code and we ask for suggestions from other people. What do you think?
Quote: | It's just a gut feeling, but I think we have a compiler that can get us to where we need to go. |
If so we should find another way to solve it. May be by redesigning DWT (it's a hell), trying to tweak 'private import' directives or something else?
I have a feeling we can't go further because we completely stuck with f.ref. at last. _________________ Regards, Yuriy |
|
Back to top |
|
|
brad Site Admin
Joined: 22 Feb 2004 Posts: 490 Location: Atlanta, GA USA
|
Posted: Mon Jun 28, 2004 9:00 am Post subject: |
|
|
Blandger wrote: |
I can post 'simplified widgets' code and we ask for suggestions from other people. What do you think? |
Yes, please do. The more people working on it the better. Maybe someone on the newsgroup will be able to help. Keep it short, though.
Oh, and I got your changes merged with my recent changes and checked in as of revision 27. _________________ I really like the vest! |
|
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
|