win32 port

Holger Schroeder holger-kde at holgis.net
Sat Aug 16 20:20:03 CEST 2003


Hi Al,

i am happy that you like the project. i once started the native port of qt 2 
to native windows without x11 out of curiosity. i wanted to learn a little 
bit of programming and of the internals of qt, and so i ended up starting 
this port. it was a lot of fun. in the beginning there was nothing, then was 
able to open application windows, draw circles them, draw text in them, react 
on key- and mouseevents. but i kind of left it half finished and moved on to 
get into the kde on windows issue.

i would personally be very happy, when the trolltech people would release a qt 
version for windows under gpl. of course they did not release it yet, only 
because some people mailed them that they would like to have it. so the only 
way to convince them is to start the port by your own and wait for their 
reaction.

when you try the actual cvs sources, and start a program like 
examples/demo/demo.exe, you will see that there are still some problems, but 
about 90% is already working fine. when you start it normally, it will be 
quite slow, but that is mainly because of all the debug output. try to start 
it with

demo.exe 2&>1 > /dev/null

and it will be almost usable.

now for the performance problems:

there are three major performance problems in cygwin:

- fork() call

under unix the fork call creates two processes from one, and it is quite fast 
there. the whole kde is optimized for this.
under windows there is no fork call, there is only a create process call. this 
process then has to be fed with the data from the first one and that needs a 
lot of time. an interesting example for this is kmail. it needs few seconds 
to start up under linux, but on the same computer it needs about 2 minutes to 
come up under cygwin.
there are also problems with relocating of libraries in connection with 
forking, as the pointers to the libraries have to be fixed for one process or 
the other.
so some work needs to be done here. for example somebody could look into 
kprocess, and try to get it running with the native create process call, as 
for most things the created process only has to do some stuff, but it doesn't 
have to be a copy of the first one.

- unix domain sockets

ralf did some performance tests on unix domain sockets. they are about 6 
percent of the speed under cygwin as they are under linux on the same 
computer. so somebody should look into the cygwin sources and try to speed 
this up. if i understood it correctly, unix domain sockets are implemented 
using tcp or so.

- file lookup functions in qt and cygwin

as under the windows file system there are no links, they have to be emulated 
in some way. so every try to open a file under cygwin ends up in several file 
system operations, for example it checks if a file *.lnk is there, and if it 
is, it is read and interpreted, and the "link" is followed. if you want to 
execute a file, the system always checks, if there is a file *.exe and when 
it is there, it tries to execute that one. so in general this could be 
improved, but i don't know how...


i have a 2 ghz pentium, and it is not that slow, although it is a lot slower 
than linux native. to improve kde on linux, i would recommend that we fix 
some or all of the abovementioned problems before we go on and get it running 
under native qt. i expect that it will make kde usable also on let's say 500 
mhz computers. we should also first get the main kde applications like kmail, 
koffice, kdevelop and so on running on cygwin using the x11 version of qt.

so we have a good base if working things, which we can start to improve 
upon...

i will be holding a talk about all this on the kde contributor conference. so 
perhaps i can attract one or two new developers for this...


Holger


On Friday 15 August 2003 13:06, Al Major wrote:
> your work with the win32 port is pretty interesting. i happen to believe
> that it won't have a huge impact on trolltech's commercial sales of windows
> licenses. there's many many ISV's and OEM's and corporates that don't want
> to license their product under GPL and will happily pay trolltech's
> licencsing fees. plus people have a thing about being "guaranteed" support.
>
> in a way, my major concern about this port is that if it winds up being
> successful, trolltech is likely to release a GPL version of their windows
> product as well. of course, that would be a good thing for users. however
> it might be a bummer for you hard working folks on the QT3-Win32 project.
>
> that would be my major hesitation in investing a lot of time into this
> project. having said that, i've just started playing with building an app
> under kde-cygwin and find the performance of kde under xfree to be kinda
> slow. a native win32 port of qt might well solve the performance problem.
> dunno. once i've got a first cut of the app done in KDE-cygwin, i'd be
> happy to lend a hand with the port.
>
every help is welcome, feel free to choose something that is interesting for 
you ;-)


> how far along is the port? are there complete apps running under it as yet?
> are you attempting to eliminate the X-11 layer? or all of cygwin?
>
> regards,
>
> al
>
> _______________________________________________
> kde-cygwin mailing list
> kde-cygwin at mail.kde.org
> http://mail.kde.org/mailman/listinfo/kde-cygwin



More information about the kde-cygwin mailing list