[ros-dev] rosapps

James Tabor jimtabor.rosdev at gmail.com
Mon Mar 9 03:15:28 CET 2009


Hi!

2009/3/8 Timo Kreuzer <timo.kreuzer at web.de>:
> I would even like to go one step further in the long run.
>
> The current situation is that rosbuild takes about 10 minutes for a build.
> With adding more code and more modules to our codebase, this time will
> increase. If we wanted to do something like auto-rejecting commits that
> break build it would lock the commit process for this time on every commit.
>
> Also as we get more developers and maybe start forming teams or whatever,
> things will get problematic with our current "monolithic" approach.
>
> We should think of changing the build process, so that not the whole system
> is rebuild everytime someone changes one module.
> We currently treat reactos like one huge module, but it isn't. It's a bunch
> of more or less independent things. A change in a usermode dll should not
> lead to an notskrnl recompile, it just doesn't make sense and only wastes
> time.
>
> I think it would be better to seperate the components from each other as
> much as possible and only compile the modules that have been changed.
>
> Of cause all modules somehow depend on each other, but mostly through well
> defined interfaces. These are exposed by the headers and import libraries.
> And those 2 are the problem atm.
> It might be a good idea to completely separate the sdk from the os itself.
> The sdk would contain both the headers and the spec files to build the
> import libraries. If we made sure these are in a good shape, we would
> eleminate most interdependencies as they should only rarely change.
>
> We could try to split the current reactos tree into seperate trees, maybe
> like this:
> sdk: headers, import library definitions, crt
> core: rtl, freeldr, hal, ntoskrnl, boot drivers, ntdll, smss
> drivers: other hardware drivers
> win32core: win32k, video drivers, gdi32, user32, csrss

Core DLLs: ntdll, kernel32, gdi32, user32 and sometimes advapi32.

> win32dll: the other win32 dlls
> sound: everything related to sound
> network: everything related to network
> reactx
> services
> apps
>
> Some of these trees could be optional, like network, sound, reactx
> It might even allow to create a bootable core system without win32 stuff,
> booting into a simple native console.
> Working with branches might as well profit from this.
>
> Just my 2 cents,
> Timo
>
>


More information about the Ros-dev mailing list