labath added a comment.

In D65185#1599423 <https://reviews.llvm.org/D65185#1599423>, @JDevlieghere 
wrote:

> In D65185#1599262 <https://reviews.llvm.org/D65185#1599262>, @labath wrote:
>
> > .def files can omit fields too: `#define BOOL_PROPERTY(name, global, 
> > default, desc) PROPERTY(name, OptionValue::eTypeBoolean, global, default, 
> > nullptr, {}, desc)`. Some sanity checking sounds like it could be useful, 
> > but I'm not exactly sure what kind of checks you have in mind. Being able 
> > to change the representation is nice, but I expect most of those changes 
> > would also be achievable with the def files. More radical changes (like the 
> > variable thing I mentioned) would probably require changes regardless of 
> > how the properties are generated...
>
>
> I agree with you and I'm not opposed to def-files at all. I think tablegen 
> and `.def` files have different trade-offs and while the latter could 
> probably work for properties, I have the feeling that tablegen is a better 
> fit. The things are mentioned before are just a few things that came to mind.
>
> To give an example of sanity checking: this isn't in the patch (yet) but with 
> tablegen we can ensure that every option has either a default unsigned or 
> string value. In the table you can't differentiate between a default `0` and 
> an explicit default value of `0`.


If you used something like the BOOL_PROPERTY macro from my previous comment, 
then there would be no way to explicitly specify a default string value for a 
boolean property (and similarly for other property types too).

Overall, I'm not strongly opposed to this, but I am not convinced that the 
added complexity of tablegen ("#including a .def file" vs. "running a 
functional program which generates a def file, which is then #included") is 
worth the benefits. I suggest getting someone else to review this to break the 
stalemate. :)


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D65185/new/

https://reviews.llvm.org/D65185



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to