On 24.12.2011 11:53, Stefan Sperling wrote: > On Sat, Dec 24, 2011 at 11:24:14AM +0100, Branko Čibej wrote: >> On 24.12.2011 09:41, Stefan Küng wrote: >>> On 23.12.2011 23:52, Branko Čibej wrote: >>>> Ranting is all very well, but I've yet to hear a suggestion from you >>>> about how the libraries should handle unrecoverable errors. Like, for >>>> example, the case where wc.db contains inconsistent and/or invalid data. >>> Simple: return an error! >>> That way the application can go on running, only the svn command is >>> stopped. >>> Sure, returning an error isn't always easy because it requires that >>> you code a path to return to a known state. But for a library that's >>> what has to be done. >> In the case of Subversion, that would imply: >> >> * second, removing all uses of SVN_ERR_MALFUNCTION* and SVN_ERR_ASSERT*; > I disagree.
Exactly. So do I. :) >> * but first, making every library function return an svn_error_t. > I doubt that's really an issue. > Virtually any important call TSVN needs does return svn_error_t already. Ah, but our private functions definitely do not. Just saying, if we wanted to have a "completely recoverable" error handling model, then what I said is what would have to be done. With the obvious alternative of doing setjmp/longjmp magic, but that's a /really/ bad idea. -- Brane