<div dir="ltr">Hi Zachary,<div><br></div><div>I'm new to LLDB so take my opinion with a grain of salt, but this sounds like a good idea to me. LLDB is likely to encounter more and more LLVM APIs using llvm::Error in the future, so renaming lldb_private::Error to reduce confusion seems sensible.<br></div><div><br></div><div>Replacing lldb_private::Error at some point in the future probably makes sense too. The author of lldb_private::Error seems to have had a similar idea:</div><div><br></div><div><div><font face="monospace, monospace">/// ...In the future we may wish to switch to a                                                                                                                                                 </font></div><div><font face="monospace, monospace">/// registration mechanism where new error types can be registered at                                                                                                                                              </font></div><div><font face="monospace, monospace">/// runtime instead of a hard coded scheme.</font></div></div><div><br></div><div>The challenge here will be interoperability with the python APIs, which look like they map the current lldb_private::Error into Python. That will take some thought, but I think it should be possible.</div><div><br></div><div>For any LLDB devs who are interested in llvm::Error, the lightning talk that introduced it is at: <a href="https://www.youtube.com/watch?v=Wq8fNK98WGw">https://www.youtube.com/watch?v=Wq8fNK98WGw</a> , and the API is covered in more detail in the LLVM programmer's manual: <a href="http://llvm.org/docs/ProgrammersManual.html#recoverable-errors">http://llvm.org/docs/ProgrammersManual.html#recoverable-errors</a> .</div><div><br></div><div>Cheers,</div><div>Lang.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Apr 28, 2017 at 8:40 PM, Zachary Turner <span dir="ltr"><<a href="mailto:zturner@google.com" target="_blank">zturner@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I have a patch locally that renames lldb_private::Error to lldb_private::LLDBError.  As you might expect, this is a pretty large patch so I don't plan to put it up for review, but since it's kind of a fundamental class I figured I should at least start a discussion.<div><br></div><div>The primary motivation for this is to enable cleaner interop between lldb's Error class and llvm::Error.  Currently there is an ambiguity between the two.  Obviously they are scoped in different namespaces, but it's still confusing when looking at code to see such similarly named classes.</div><div><br></div><div>There are a number of advantages to llvm::Error over lldb Error which I'm happy to elaborate on if anyone needs some clarification (I've also cc'ed lang on here, who wrote the original llvm Error implementation).</div><div><br></div><div>Long term I would eventually like to deprecate lldb's Error class entirely, and switch entirely to llvm::Error.  An intermediate transition phase would likely involve making something like LLDBWrapError which interoperates with llvm::Error and wraps an lldb_private::LLDBError.</div><div><br></div><div>For now though, I'm only proposing a very simple rename with minimal invasiveness.</div><div><br></div><div>Comments?</div></div>
</blockquote></div><br></div>