jingham added a comment.

In D64599#1581604 <https://reviews.llvm.org/D64599#1581604>, @labath wrote:

> What is the indented relationship between CPPLanguage and CPPLanguageRuntime 
> plugins (and generally between any Language and its LanguageRuntime)? Right 
> now you're having the CPPLanguage depend on the CPPLanguageRuntime plugin. 
> There is no reverse dependency, so this may be fine, if that's how we intend 
> things to be. However, it's not clear to me whether that's the right way to 
> organize things. Intuitively, I'd expect the LanguageRuntime to depend on 
> Language, and not the other way around...


The nominal distinction is that the Language files contain what you can know 
about or need to do with a given language without having a process and thus a 
live runtime to query.  The LanguageRuntimes are supposed to be about what you 
can gather from the actual runtime, or what you need to do to handle things 
like "stepping into steps across ObjC method dispatch functions" or "stepping 
into std::function steps in to the target function".  Given this distinction 
you'd actually expect the two to be independent of one another, but then it 
turns out that in both ObjC and Swift, you can't actually know the sizes of 
objects, or the offsets of ivar members until you have a running process.  So 
things you'd think the Language would know actually require the 
LanguageRuntime...


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

https://reviews.llvm.org/D64599



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

Reply via email to