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.

Reply via email to