SEAL Forum Index SEAL
The SEAL Forums
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Me again !

 
Post new topic   Reply to topic    SEAL Forum Index -> Seal 3.0 Development
View previous topic :: View next topic  
Author Message
ganesh



Joined: 11 Jul 2002
Posts: 133
Location: Vancouver, BC, CA

PostPosted: Tue Dec 31, 2002 1:03 am    Post subject: Me again ! Reply with quote

Heya...

Its been a long time. Ive moved to Canada for my undergrads.

I just caught up on the 4 month lag that Ive left at SEAL. Ive been reading some more books on OO design, and found fundamental flaws in my SEAL 3.0 code (not counting some major memleaks....)

Its still early on in the API design phase, so making changes is very easy. And, the code is all split up and modular.

IMHO, The 2.0 API is too hard.

If you guys are thinking of cleaning up 2.0 codebase, I am all for it. The first thing that must be cleaned up is the platform specific code (and DJGPP code). I could help with Linux/FreeBSD compatibility.

BTW, that XFCE theme is cool....

DOS compatibility is just too hard. I found frequent lags in the event handling (even after loads of optimization), because the keyboard and mouse event handlers were sequential and not threaded. Now, supporting threads under DOS is almost impossible (Ive seen code doing threads, but not in the neat, clean C way)

I was also thinking of a network transparent windowing system (read a lot of berlin docs).

I do not have Windows/DOS at hand, and just me supporting multiple operating systems is not feasible.

So, what do you guys think ?
_________________
Ganesh lives @
www.iamganesh.com
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
ganesh



Joined: 11 Jul 2002
Posts: 133
Location: Vancouver, BC, CA

PostPosted: Tue Dec 31, 2002 1:10 am    Post subject: Reply with quote

This is a small list that I had posted to one of my local LUGS:

Code:


1) There was a huge memory leak in one of the drawing algorithms. I had
used Valgrind to trace memleaks, and fixed so many other leaks, but not
this one. In about a day of uptime, the machine would start to crawl. Never thought about a Garbage Collector before hand.

2) Windows eXPloit had a DirectDraw redraw problem. The screen would
just go blank suddenly. Fixed in new version of Allegro.

3) Doubly linked lists no good for Trees. I was using a simple tree for
my widgets. Doing profiling with GCC profiler, I found that my slowest
code was the tree recursion loop. That was a major design flaw. The tree
recursion loop was generic, with a callback function pointer. It was only
5 lines of code, but that was called the most number of times. No
solution without taking the backbone apart.

4) Our lowest common platform was DOS w/DJGPP. There were some CPP
issues with name mangling (which was partially solved with extern "C"
kludge), but it provided no threads for the input streams. The dynamic
linker (dl* functions on Linux) functions had no match on DOS, and DLLs
with mingw was a another hack. Platform issues sucked !

5) Compiler differences. I wrote a Virtual File System, so that no
matter what underlying platform you are using, it provides a consistent
file system. I wrote it using diropen/... for parsing filesystems, but
there were no equivalents for MSVC. You could easily create drivers.
Sample drivers were VFAT (maps to default underlying FS)

6) Networking. I was really interested in a network transparent
windowing system. The documentation center was Berlin. I did a basic
implementation of it (with a lot of "stealing" from AtheOS/Syllable).
It worked, but again network differences between platforms sucked !

7) Skinning. I again read a lot of documentation on skinning algorithms.
I found one which was easy to implement and worked. It splits the bitmap
into regions, and blits them across the widget. Sucked on 8-bit mode.
Worked beautifully on 16, 24, and 32-bit modes.

8) This is when I read about the HURD. Provide drivers for everything. I
wrote a sound driver and an image driver (IIRC). That way, you just got
to use ONE api to play a sound, irrespective of format.

9) Event handlers. Like I told, it used signals and slots. So, I used to
compare with strings, like "clicked", "mouse_moved", "mouse_down". This
was very expensive in the recursive loop. Partially solved bu creating a
"hash number" for the string. Code performance improved by 450%. Wow !

[event.type and l_type are objects of a class called string, and the ==
operator was overloaded]

   if(event.type == l_type)
   do_event_handler();

-vs-

[event.type and l_type are longs]

   if(event.type == l_type)
   do_event_handler();



So, I could address these immediate issues. But, no promises. My first year of school is _hard_.
_________________
Ganesh lives @
www.iamganesh.com
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
biggyp



Joined: 16 Oct 2001
Posts: 1473
Location: England, United Kingdom

PostPosted: Tue Dec 31, 2002 4:58 am    Post subject: Reply with quote

well, it's good to hear from you again, good luck with your studies, i'm not really able to comment on the intentions with regards to S2 vs S3, but i think it may be usefull to mintain S2 and get another release ready while developing S3, seal3 wont be ready for end users for quite a while yet so seal2 is still a viable project.

thanx for the comment, it's my favourite GTK2 theme so i thought i'd see if i could emulate it and produce a complementing window theme, i actually did the images from scratch rather than using screenshots so it's not identical.

anyway, wait and see what happens now i guess.
_________________
http://www.theopencd.org/ - OpenSource for the Masses

Gallery

Back to top
View user's profile Send private message Send e-mail Visit poster's website Yahoo Messenger MSN Messenger
_xduffy_
Administrator


Joined: 15 Mar 2002
Posts: 894
Location: Sweden

PostPosted: Fri Jan 03, 2003 7:49 am    Post subject: Reply with quote

Nice to hear from you again ganesh!

Well, I wont do any S3 coding right at the moment, i have to take one thing at a time... So getting my life together the comming days and then releasing a new version S2 is on the top of my priority list, and getting a laptop too... is Packard Bell good? Anyone with experience on newer models?
_________________
http://xduffystuff.sourceforge.net/Desktop/
www.xduffy.com
Back to top
View user's profile Send private message Send e-mail Visit poster's website MSN Messenger
ganesh



Joined: 11 Jul 2002
Posts: 133
Location: Vancouver, BC, CA

PostPosted: Fri Jan 03, 2003 7:13 pm    Post subject: Reply with quote

Amazing !

Please keep working on the next release of Seal 2, much needed. I would love to see the portability issue taken first.

Do you guys have a plan-of-action for the next release. I think it would be better if we tackle module by module.

Ill look through the dynamic linking code in Seal 2.0, and add the Linux/FreeBSD stuff.

I am thinking of a #define in the code. Is this name OK ? Iam asking because it has to be consistent throughout the code.



Code:


__DJGPP__
__LINUX__




Does anybody remember what flag DJGPP exports. I am not too sure if its __DJGPP__, if it does, then good, we dont have to invent any !
_________________
Ganesh lives @
www.iamganesh.com
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
_xduffy_
Administrator


Joined: 15 Mar 2002
Posts: 894
Location: Sweden

PostPosted: Sun Jan 05, 2003 6:05 am    Post subject: Reply with quote

Well

My todo list for the next S2 release is (I might have to modify this soon):
* Getting the latest code from Owen
* Adding new translations
* Adding additions to The Desktop that Lukas did in CubeOS
* Getting the new skinning system to work fully
* Adding new programs to Seal, like RISK and The Desktop.

And probably more... if anyone here wants to do anything of this or something else, you're very much welcome

I think it is the __DJGPP__ flag, but I'm not sure... I think it would be good with these defines, and since I'm the maintainer now a days, you can consider that official, if not anyone has a very good reason to not have these defines...
_________________
http://xduffystuff.sourceforge.net/Desktop/
www.xduffy.com
Back to top
View user's profile Send private message Send e-mail Visit poster's website MSN Messenger
orudge
Administrator


Joined: 07 Oct 2001
Posts: 1332
Location: United Kingdom

PostPosted: Sun Jan 05, 2003 7:08 am    Post subject: Reply with quote

ganesh wrote:
Does anybody remember what flag DJGPP exports. I am not too sure if its __DJGPP__, if it does, then good, we dont have to invent any !


Yes, it's __DJGPP__. This is set to the major version of DJGPP. __DJGPP_MINOR__ is the minor version. As Technical Administrator and former maintainer, I suggest you use this too.

PS: Sources on the way, David.
_________________
Owen Rudge
http://www.owenrudge.net/

Currently Playing (last time I was online, anyway):
Back to top
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger MSN Messenger
ganesh



Joined: 11 Jul 2002
Posts: 133
Location: Vancouver, BC, CA

PostPosted: Tue Jan 07, 2003 7:10 pm    Post subject: Reply with quote

I just got this idea (I dont claim to be the first !)

Why dont we do a code audit on the current codebase ?

What we can do is, for example, is have a list of all source files (no apps), and have a status record for them.

You may want to have a look at

[url]
http://open-beos.sourceforge.net/status.php
[/url]

Instead of the Team (as the site calls it), we could have the name of each file. Then, we can have milestones for each stage. For example, by the alpha stage, the file should be completely portable.

Remember, we are here for fun (atleast I am), and we have no deadlines. We are _not_ here to put M$ out of business, or put other desktop environments to shame.
_________________
Ganesh lives @
www.iamganesh.com
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
_xduffy_
Administrator


Joined: 15 Mar 2002
Posts: 894
Location: Sweden

PostPosted: Thu Jan 09, 2003 7:27 am    Post subject: Reply with quote

Well, first it would be cool to get the 2.0.12 release out... and maybe do the code audit for the next release after that... since the 2.0.12 have waited for so many months I think it's essential that this release will come out soon...


BTW, Owen, I get compile problems with dlxgen.c when I run make, do you know why? Otherwise I have to track it down myself... the message I get talks about called "genininum" and the like (dont remember, I am in school right now...)
_________________
http://xduffystuff.sourceforge.net/Desktop/
www.xduffy.com
Back to top
View user's profile Send private message Send e-mail Visit poster's website MSN Messenger
orudge
Administrator


Joined: 07 Oct 2001
Posts: 1332
Location: United Kingdom

PostPosted: Wed Jan 15, 2003 8:56 am    Post subject: Reply with quote

If you can give me the exact messages, I can investigate.
_________________
Owen Rudge
http://www.owenrudge.net/

Currently Playing (last time I was online, anyway):
Back to top
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger MSN Messenger
_xduffy_
Administrator


Joined: 15 Mar 2002
Posts: 894
Location: Sweden

PostPosted: Thu Jan 16, 2003 6:43 am    Post subject: Reply with quote

Well, we've discussed those problems earlier... and it was the allegro.exp or something like that which didn't match, strangely enought, and it got solved...
_________________
http://xduffystuff.sourceforge.net/Desktop/
www.xduffy.com
Back to top
View user's profile Send private message Send e-mail Visit poster's website MSN Messenger
Display posts from previous:   
Post new topic   Reply to topic    SEAL Forum Index -> Seal 3.0 Development All times are GMT - 7 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