BTW, not to exclude the positive because it doesn't need discussing: all the 
rest of the changes you were proposing seem appropriate and good to me.  Thanks 
for taking the trouble to clean this up.

Jim

> On Jan 31, 2017, at 5:45 PM, Zachary Turner <ztur...@google.com> wrote:
> 
> Yea, there may be value in both. If i ever tried to do this I'd probably take 
> the approach of converting all the obvious cases first that should enforce 
> checking and then see what's left. Then we could use llvm:Error and 
> lldb::Status, or something 
> On Tue, Jan 31, 2017 at 5:39 PM Jim Ingham <jing...@apple.com> wrote:
> Yeah, I have no idea how you'd make sure that the SBError returned to Python 
> in a Python SBValue was checked before it went out of scope, and I'm not sure 
> it's our business to be enforcing that...  So we're going to have to do 
> something special for those errors.  We also use the pattern where we return 
> a count and an error, but ofttimes you don't care why you got nothing, so you 
> just check the count.  The error is informational.  Making that obnoxious 
> would also not be a plus.  I actually think there's some value to having 
> "programming errors that must be checked" and informational errors.  Maybe we 
> need both.
> 
> Jim
> 
> > On Jan 31, 2017, at 5:32 PM, Zachary Turner <ztur...@google.com> wrote:
> >
> > llvm::Error only enforces checking at the point that it goes out of scope. 
> > So the example you mention should be supported, as long as you propagate 
> > the value all the way up and don't destroy it. There's also ways to 
> > explicitly ignore an Error (similar to casting to void to make the compiler 
> > not warn about unused variables), so as a last resort we could put code 
> > like that in the SB implementation if we had to
> > On Tue, Jan 31, 2017 at 5:23 PM Jim Ingham <jing...@apple.com> wrote:
> > I think we discussed this before, but we need an informational error 
> > object.  IIRC, the llvm::Error has to be checked.  But for instance if you 
> > ask a value object to evaluate itself, but you've moved to a section of 
> > code where the variable has no location, then evaluating that value will 
> > result in an error.  But that isn't an error the value object code needs to 
> > do anything about.  And it might go all the way up through the SB & Python 
> > API's before it's appropriate to check the error.
> >
> > IIRC, the llvm::Error is one of those "you have to check it or you get 
> > smacked by the compiler" dealies.  That's appropriate for some of our uses 
> > of Error, but not all.
> >
> > Jim
> >
> >
> > > On Jan 31, 2017, at 4:01 PM, Zachary Turner via Phabricator via 
> > > lldb-commits <lldb-commits@lists.llvm.org> wrote:
> > >
> > > zturner added a comment.
> > >
> > >> Move Error from Core -> Utility
> > >
> > > Also, I almost forgot.
> > >
> > > Long term: Delete and use `llvm::Error`
> > >
> > >
> > > https://reviews.llvm.org/D29359
> > >
> > >
> > >
> > > _______________________________________________
> > > lldb-commits mailing list
> > > lldb-commits@lists.llvm.org
> > > http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
> >
> 

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

Reply via email to