Antti wrote:Are you wasting your time for waiting the actual compiling or the highly frequent starting and stopping the compiler?
Spawning processes certainly does take some time. However what you're really waiting for is still the actual compiling.
An interesting topic by the way. I was using LFS few years and I had a fully-featured desktop. It surely took time. This was before I started programming. Your example is good because it underlines the problem we have with source code.
And I can't see how giving up modularity, and therefore having to compile much more code, solves it.
Like handling dependencies and rebuilding only these "one hundred" source files that depends on the header file I am modifying instead of all "two hundred". It solves the problem that we do not need to have at all.
You mean because we could just always compile the one whole source file that was created by merging the 200 files - so we don't even have to think about compiling only the half of it because it isn't possible any more?
Antti wrote:Besides, I do not think the current way is very elegant either. Giving some --enable-this-feature and --disable-this-feature flags as parameters to a 6000-line-configure script that would result in a gigantic Makefile that does more magic.
The same could be achieved, even now, by just giving parameters to the compiler directly.
But you do know that these 6000 lines in the configure scripts aren't all nops? A typical configure script does much more, checking which libraries and functions are available, testing for platform-dependent behaviour etc. and are an important part of making programs portable?
-D is a nice compiler switch, but it solves only a minimal part of what configure scripts are doing.
These both are bad. It should be so that when you right-click your (single) source code file and select 'Custom build', the OS-integrated (or otherwise "not-program-specific") wizard will guide you and there are all the enables/disables listed and easily configurable. Then it is not necessary to guess what --enable-myfeatures are really available.
Please leave me alone with your mouse and point-and-click impediments, I want to work efficiently.
Antti wrote:Then we have this IDE with "a tree-like view of the program" and it is easy to see the big picture.
You've never worked on a big project, have you? Can you imagine what the tree-like view of the Linux kernel would look like? Or because you like to say that kernels are different, let's take qemu, with which I'm more familiar anyway. (And that's still the kind of projects that compile in a few minutes, not hours or days like X, KDE or LibreOffice.)