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

DWT Status

 
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.     Forum Index -> DWT
View previous topic :: View next topic  
Author Message
qbert



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

PostPosted: Sat Jun 12, 2004 5:23 pm    Post subject: DWT Status Reply with quote

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
View user's profile Send private message MSN Messenger
brad
Site Admin


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

PostPosted: Tue Jun 15, 2004 1:08 pm    Post subject: Reply with quote

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

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



Joined: 22 Feb 2004
Posts: 1104

PostPosted: Tue Jun 15, 2004 2:27 pm    Post subject: Reply with quote

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
View user's profile Send private message
qbert



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

PostPosted: Tue Jun 22, 2004 11:51 am    Post subject: Reply with quote

Ok thanks for the responses! Here's hoping youll continue your efforts Wink
Back to top
View user's profile Send private message MSN Messenger
BenHinkle



Joined: 27 Mar 2004
Posts: 76

PostPosted: Fri Jun 25, 2004 2:57 pm    Post subject: Reply with quote

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
View user's profile Send private message
brad
Site Admin


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

PostPosted: Fri Jun 25, 2004 3:09 pm    Post subject: Reply with quote

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
View user's profile Send private message
larsivi
Site Admin


Joined: 27 Mar 2004
Posts: 453
Location: Trondheim, Norway

PostPosted: Sat Jun 26, 2004 1:51 am    Post subject: Reply with quote

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
View user's profile Send private message
brad
Site Admin


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

PostPosted: Sat Jun 26, 2004 9:31 am    Post subject: Reply with quote

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
View user's profile Send private message
brad
Site Admin


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

PostPosted: Sat Jun 26, 2004 9:55 am    Post subject: Reply with quote

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
View user's profile Send private message
jcc7



Joined: 22 Feb 2004
Posts: 657
Location: Muskogee, OK, USA

PostPosted: Sat Jun 26, 2004 7:51 pm    Post subject: Reply with quote

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
View user's profile Send private message AIM Address
Blandger



Joined: 21 May 2004
Posts: 50
Location: Ukraine, Kharkov

PostPosted: Sun Jun 27, 2004 1:23 am    Post subject: Reply with quote

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
View user's profile Send private message
brad
Site Admin


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

PostPosted: Sun Jun 27, 2004 2:26 pm    Post subject: Reply with quote

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
View user's profile Send private message
Blandger



Joined: 21 May 2004
Posts: 50
Location: Ukraine, Kharkov

PostPosted: Mon Jun 28, 2004 8:55 am    Post subject: Reply with quote

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
View user's profile Send private message
brad
Site Admin


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

PostPosted: Mon Jun 28, 2004 9:00 am    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.     Forum Index -> DWT 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