On December 8, 2002 03:27 pm, Patrik Stridvall wrote:
It is faster. Mucher faster. Using cpp/gcc -E needs to fork a new process for example.
What?!? You got to be kiddin', right? If you can measure any difference in build time between the forking gcc -E and using wpp I'll give you a dollar in small change.
I personally have only tried piping every file parsed by winapi_check through "gcc -E" and it is was unbearably slow, so I removed the code. The parsing it itself can't possibly taken that extra time.
So I'm pretty sure that I can measure it, yes.
However, the big question is not if it is measuarable but rather if it is worth the cost or not. So, yes, I agree that we need to discuss the question.
On Linux process creating is extremely fast, and we do fork 1000s of processes while building wine, this sort of argument is just silly.
Well, it is not really the "fork" in it self that is the problem it is the overhead of loading and initializing gcc and that sort of things.
By the same rationale I suggest having a complete copy of gcc, ld, nm, and whatever tools we use while building wine.
It is not primarily a question of having a complete copy of whatever. It is a question of having whatever accessable as functions in a library to avoid a lot of unnessary overhead.
It would be very nice it something made a GNU C compiler library to support among other things only running the preprocessor.
So no, if speed is the only argument, I say we get rid of it: it's not worth maintaining a fraction of all that additional code.
1. Depending on "gcc -E" will make it harder to port wrc to Windows. 2. It might be less flexible (not sure though).
And then of course using "gcc -E" would possibly cause a GPL violatation. Not that it would matter very much if wrc and friend were GPL:ed.
WTF are you talking about?!? How did you figure this one out? Really, this is simply false, you can fork GPL programs all you want, and cause no GPL violation.
The FSF claims that you forking and calling a GPL:ed executable is the same as linking with a GPL:ed library and calling functions in that library.
This is of course absurd and would IMHO opinion nether fly in a court of law but still....
Sure wrc and friend are under a GPL compatible license (LGPL), so it wouldn't be a direct violation. However Wine has a policy that we do not link with GPL:ed libraries regardless in order to avoid possible problems for companies working with Wine so no we really can't make wrc depend of "gcc -E".