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.