Voting: std.logger

Martin Nowak via Digitalmars-d digitalmars-d at puremagic.com
Fri Aug 1 08:52:25 PDT 2014


On 08/01/2014 04:31 AM, Andrei Alexandrescu wrote:
> On 7/31/14, 7:19 PM, Martin Nowak wrote:
>> You cannot use version identifiers to selectively disable functionality
>> or people would have to compile their own phobos library for every set
>> of version combinations.
>
> Wait, doesn't code work with the version chosen by the user? -- Andrei
>

Well phobos as a library is precompiled, so the versions used to compile 
phobos will be relevant, not the ones in client code.

For templated functions version identifier will "leak" from client code 
into the library, because technically they are instantiated by the 
client code.

Also the version identifiers of client code determine which declarations 
you see.

Relying on this would be a constant source of bugs.

I did proof-of-concept yesterday using type tags and template 
constraints to statically disable certain log levels.
It also has some drawbacks because LogLevel is no longer a plain enum, 
but it's more appropriate than version identifiers.
http://forum.dlang.org/post/lrf362$tkn$1@digitalmars.com


More information about the Digitalmars-d mailing list