ModuleInfo, factories, and unittesting

rikki cattermole via Digitalmars-d digitalmars-d at puremagic.com
Sun Dec 18 15:47:12 PST 2016


On 19/12/2016 12:37 PM, bitwise wrote:
> On Sunday, 18 December 2016 at 22:55:30 UTC, rikki cattermole wrote:
>> - -typeinfo=low/low-min/normal/high/none
>>   None is pretty much -betterC
>>   Low would be unittests + module constructors
>>   Low-min would be like low but with only the fields that is needed
>>   Normal is what we have now more or less
>>   High of course includes all the goodies like class fields and
>> methods reflection
>> - Full class + struct + union symbol reflection, so fields uda's ext.
>
>
> IMO, this seems like too much. I think none/minimal/full would be
> easier, where minimal would be equivalent to what's currently available
> right now. My specific concern is compatibility between compiled objects
> and knowing what symbols to expect. Also, just keeping the question of
> which level to use simple. If one object file was compiled without
> unittests, for example, a project as a whole could pass without error,
> but actually be broken..couldn't it?

Yes, if you don't include unittests via none, then it won't be tested.

The only one of my suggestions that actually breaks typeinfo definitions 
is that of low-min. This is for memory constrained situations like 
kernels or MCU's but when you still want features such as unittesting 
and module constructors.

All others will happily interlink without error.

Overall, when the question is simple, the answer is too. Here the 
question isn't simple and so my answer isn't either.
You've got to take into consideration that bloat depends on use case 
e.g. normal may very well be considered bloated by game dev standards 
while full is just about right for web applications.



More information about the Digitalmars-d mailing list