+----- On Wed, 11 Feb 1998 10:57:56 +0100, Casper Dik writes:
|
| >+----- On Tue, 10 Feb 1998 15:04:50 +0100, Casper Dik writes:
|
| >| hear, hear!
| >|
| >| Compile time options are evil. Apart from making configuring and testing
| >| hard (oops, want to change this option needs recompile) it makes binary
| >| distributions infeasible.
| >|
| >| Keep in mind that many people now download binary distributions (very
| >| popular for Linux and also for Solaris). Do we need 2^n binary
| >| distributions (where n is the number of binary options)? I think not.
| >
| >I disagree, having non-compile time options leads to program bloat. Now
| >we have 2 evils which can easily be resolved by making the compile
| >time option yes/no/runtime. Look at Linux, should the kernel cater for
| >every device imaginable, or should you get something that works
| >reasonably well for most machines but which can be tuned to your system
| >if you want.
|
|
| Your argument doesn't follow.
|
| We're not talking substantial things such as adding device drivers
| or compiling kernels (of course, we all know that device drivers should
| be loaded dynamically, so that point is moot anyway).
I guess that I must be stupid then, I thought that there were
advantages in loaded with the kernel, particularly now that Linux uses
multiple psects (or whatever the ELF term is).
| And in binary device driver distributions, the kernel configuration is
| still easily adapted.
I work with Solaris 2 and if you know the parameter then it is easy,
would anyone care to hazard a guess as to what dosynctodr does? I will
admit though that SunOS wasn't easier to configure in this regard. One
comparison that I can make between the two is that my SS10 died when I
replaced SunOS 4.1.4 with Solaris 2.5.1 and it wasn't usable until
nearly tripled the memory, the comparison isn't totally fair (may be
not fair at all) as I also went from X11 and NIS to OpenWindows and
NIS+.
| For programs compile time options are evil and should be exterminated;
| first of all, there's hardly any source code bloat.
|
| #ifdef FOO vs if (foo)
|
|
| The code will be somewhat bigger, but I doubt it will be more than 1% or 2%
| for typical options.
It depends on the option, whether or not we statically link and
whether we use RISC or CISC machines.
| Giving a choice between yes/no/runtime is more evil as it makes the source
| code potentially much more complex.
A lot depends on the compiler, some will remove code that can't be
reached (all should but I don't think that they do). Then you just need
code to set the option if it isn't defined.
/Michael