labath wrote:

I've been trying to stay out of this, as I don't think I can be objective here, 
but since I've been summoned, here's what I think. :)

For me, the worst possible outcome of this is an incomplete transition -- 
having a third (maybe fourth, since I sort of also count dwim-print) 
expression-like syntax, which is "almost" complete, but for whatever reason 
(technical or political) can't replace the previous one. With that in mind, I'd 
try to stage this in a way that minimizes this risk. Building the whole thing 
in layers from the bottom up is not the best way to achieve that, I think.

If I were doing this, I'd prioritise replacing the current "frame var" 
implementation as soon as possible. Ideally, the steps would be something like:
1. implement the minimal necessary functionality to match current "frame var" 
feature set. (I think that's `&`, `[]`, `*` and `->`)
2. flip the switch
3. remove the old implementation
4. add other features, one group of related operators at a time

Besides managing that risk (if this fades out for whatever reason, there's less 
dead code around), I think this would also make it easier to review, as we 
could have patches like "add operator/ to the DIL", which would focus solely on 
that, and also come with associated tests. I think it would also make it easier 
to discuss things like whether we want to add modifying operations (operator++) 
or obviously language-specific features (dynamic_cast), both of which I think 
are very good questions.

https://github.com/llvm/llvm-project/pull/95738
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to