Aleksey Bragin wrote:
Please, this would be my last reply to this thread.
Yet another time
I'm getting an answer that reshuffling files in the directory makes
build time shorter. Seriously, am I writing with background and
foreground text colors being set to the same value or what?
Is there any real, serious reason to break /compatibility with all
existing branches,/
This is a valid point. One of the few to take care of.
make modules harder to find,
It will actually
make modules much easier to find. When I look for a
module I usually know what kind of module it is. When I look for gdi32,
I know it's a core win32 thing and I don't have to look through hundreds
of wine dlls, just to find gdi32. If I don't know what kind of module
that is, I should either stay away from it, or simply use doxygen, that
will tell me where it is. But this should be really the exception.
whatever else, BESIDES hacking around a broken build
system which
can't have proper grouping?
Did I write in chineese letters on greek
background? How can the build
system care for shorter build times if we always do a clean rebuild of
*everything*? It can't. How can a different file layout do that? Easy:
the buildbot can decide what part of reactos was commited to and only
clean and rebuild THAT part. If I commit some audio file, just rebuild
the audio part. The rest of the tree is unaffected. We also don't
recompile gcc when someone commited to the kernel. The only dependency
that all stuff shares is the "SDK", containing the core headers and core
libs like crt.
This way we could divide our buildbot's build time probably by 5 to 10.
Now please tell me how rbuild or cmake or sysgen can do that?
Another thing is dependencies. Currently everyone just adds dependencies
wherever he likes. There's so much interdependency you can't just not
build something like dlls. For the amd64 port, I added a bunch of hacks
to only compile kernel mode stuff to save a lot of compilation time, but
that took me quite some time to get it working and it's pretty hacky.
The new file layout would allow to simply "comment out" one directory
from the root folder and still everything would build.
I proposed to properly solve this with either sysgen,
cmake or
anything else. With a build system which does not suck. Not with a
build system, where you need to adjust file paths in order to be able
to control build process!
I'm glad to participate in a discussion about pros and cons of
a proposed new tree layout, but so far the only thing I keep listening
to is that it's somehow going to make build time shorter.
The only thing on the
other side of the argumentation that I heard so
far is, that it doesn't matter how bad our file layout is, we can work
around it with a complex build system. But that's not true.
Let's be honest: It won't. If a 1 liner in
PSDK causes whole tree
to rebuild, it will take the same with the new layout. It will just be
built in a different order, but still all will be rebuilt, because of
(somehow broken, or too strict, or incompatible with the makefile)
dependencies tracking. It won't make build time shorter until a new
build system is in place.
WBR,
Aleksey Bragin.