tbaederr wrote:

> Given the semantics of pointers at the moment this seems very reasonable, but 
> I need to spend more time looking at how the bytecode interpreter works to 
> really feel comfortable voicing an opinion.
> 
> Given my lack of familiarity I'm basing this on reading of your description 
> and the change itself, so I'd like to confirm my understanding:
> 
> Currently when interacting with block (or whatever) pointers, the design 
> assumes all access it mutating. Given the assumption of mutation, this means 
> any pointers/references to the block or its members are treated essentially 
> as weak pointers, and so you get a pile of excess work that isn't necessary 
> if you're not actually modifying the object[s].
> 
> So the PtrView provides a known readonly view, which covers all the 
> non-mutating operations, and everything becomes much better.
> 
> If that's a correct understanding this seems like a fundamentally Good Thing.

It's not about mutability really, just about the pointer tracking. `PtrView` 
still has `deref()` and `elem()` functions after all, which allow changing the 
block contents.





https://github.com/llvm/llvm-project/pull/184129
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to