Why version() ?
Walter Bright
newshound1 at digitalmars.com
Tue Feb 10 18:25:10 PST 2009
Steven Schveighoffer wrote:
> "Walter Bright" wrote
>> Denis Koroskin wrote:
>>> Does it look any better? No way!
>> Of course doing it that way doesn't look any better, because it still just
>> replicates the C preprocessor style of doing it.
>>
>> A far better solution is to create a series of modules:
>>
>> gcnetbsd.d
>> gchurd.d
>> gcsunos5.d
>> ...
>>
>> and inside each one put the specifics for that particular system. The huge
>> advantage of this is that if I want to create a BrightBSD operating
>> system, I just have to write a:
>>
>> gcbrightbsd.d
>
> All you have done is split the mess into separate files. This does not
> solve the problem.
How does it not solve the problem?
>
>> rather than trying to carefully fold it into that conditional compilation
>> mess without inadvertently breaking other platform support. (And I cannot
>> even tell if I broke the SunOS5 platform support or not, because I don't
>> have a SunOS5 platform to test it on.).
>
> But you have, because inadvertently, you changed some code in the actual
> implementation to use the new identifiers you made in your special new file.
> Now you have to go back and rethink the sunos include because you broke it.
> Mess still exists. (of course, I have no idea, but I gave you as much of an
> example/proof as you did ;)
See my example of O_APPEND for the proof that it does solve the problem
without breaking other platforms.
More information about the Digitalmars-d
mailing list