Re: Questionable aspects of QEMU Error's design

2020-07-03 Thread Markus Armbruster
Markus Armbruster writes: > Markus Armbruster writes: > >> QEMU's Error was patterned after GLib's GError. Differences include: > [...] >> * Return value conventions >> >> Common: non-void functions return a distinct error value on failure >> when such a value can be defined. Patterns: >>

Re: Questionable aspects of QEMU Error's design

2020-07-03 Thread Vladimir Sementsov-Ogievskiy
03.07.2020 10:38, Markus Armbruster wrote: Markus Armbruster writes: Vladimir Sementsov-Ogievskiy writes: 28.04.2020 08:20, Vladimir Sementsov-Ogievskiy wrote: 27.04.2020 18:36, Markus Armbruster wrote: FYI, I'm working on converting QemuOpts, QAPI visitors and QOM.  I keep running into b

Re: Questionable aspects of QEMU Error's design

2020-07-03 Thread Markus Armbruster
Markus Armbruster writes: > Vladimir Sementsov-Ogievskiy writes: > >> 28.04.2020 08:20, Vladimir Sementsov-Ogievskiy wrote: >>> 27.04.2020 18:36, Markus Armbruster wrote: FYI, I'm working on converting QemuOpts, QAPI visitors and QOM.  I keep running into bugs.  So far: [...] I go

Re: Questionable aspects of QEMU Error's design

2020-05-14 Thread Markus Armbruster
Vladimir Sementsov-Ogievskiy writes: > 28.04.2020 08:20, Vladimir Sementsov-Ogievskiy wrote: >> 27.04.2020 18:36, Markus Armbruster wrote: >>> Markus Armbruster writes: >>> Markus Armbruster writes: > QEMU's Error was patterned after GLib's GError.  Differences include: [...]

Re: Questionable aspects of QEMU Error's design

2020-05-14 Thread Vladimir Sementsov-Ogievskiy
28.04.2020 08:20, Vladimir Sementsov-Ogievskiy wrote: 27.04.2020 18:36, Markus Armbruster wrote: Markus Armbruster writes: Markus Armbruster writes: QEMU's Error was patterned after GLib's GError.  Differences include: [...] * Return value conventions    Common: non-void functions retur

Re: Questionable aspects of QEMU Error's design

2020-04-27 Thread Vladimir Sementsov-Ogievskiy
27.04.2020 18:36, Markus Armbruster wrote: Markus Armbruster writes: Markus Armbruster writes: QEMU's Error was patterned after GLib's GError. Differences include: [...] * Return value conventions Common: non-void functions return a distinct error value on failure when such a valu

Re: Questionable aspects of QEMU Error's design

2020-04-27 Thread Markus Armbruster
Markus Armbruster writes: > Markus Armbruster writes: > >> QEMU's Error was patterned after GLib's GError. Differences include: > [...] >> * Return value conventions >> >> Common: non-void functions return a distinct error value on failure >> when such a value can be defined. Patterns: >>

Re: Questionable aspects of QEMU Error's design

2020-04-06 Thread Eduardo Habkost
On Mon, Apr 06, 2020 at 11:05:36AM -0300, Eduardo Habkost wrote: > On Sat, Apr 04, 2020 at 12:59:27PM +0200, Markus Armbruster wrote: [...] > > Paolo, Daniel, Eduardo, > > > > Please pick one for QOM: > > Replying this without reading the whole discussion and context: > > > > > * Do nothing. L

Re: Questionable aspects of QEMU Error's design

2020-04-06 Thread Daniel P . Berrangé
On Sat, Apr 04, 2020 at 12:59:27PM +0200, Markus Armbruster wrote: > Paolo, Daniel, Eduardo, > > Please pick one for QOM: > * Return true on success, false on error. Looks like > > if (!object_property_set_bool(..., errp)) { > return; > } My preference is this one, since it

Re: Questionable aspects of QEMU Error's design

2020-04-06 Thread Eduardo Habkost
On Sat, Apr 04, 2020 at 12:59:27PM +0200, Markus Armbruster wrote: > Markus Armbruster writes: > > > Markus Armbruster writes: > > > >> QEMU's Error was patterned after GLib's GError. Differences include: > > [...] > >> * Return value conventions > >> > >> Common: non-void functions return a

Re: Questionable aspects of QEMU Error's design

2020-04-04 Thread Markus Armbruster
Markus Armbruster writes: > Markus Armbruster writes: > >> QEMU's Error was patterned after GLib's GError. Differences include: > [...] >> * Return value conventions >> >> Common: non-void functions return a distinct error value on failure >> when such a value can be defined. Patterns: >>

Re: Questionable aspects of QEMU Error's design

2020-04-04 Thread Markus Armbruster
Markus Armbruster writes: > QEMU's Error was patterned after GLib's GError. Differences include: [...] > * Return value conventions > > Common: non-void functions return a distinct error value on failure > when such a value can be defined. Patterns: > > - Functions returning non-null poin

Re: Questionable aspects of QEMU Error's design

2020-04-03 Thread Markus Armbruster
Vladimir Sementsov-Ogievskiy writes: > 02.04.2020 18:06, Markus Armbruster wrote: >> Vladimir Sementsov-Ogievskiy writes: >> >>> 02.04.2020 11:55, Markus Armbruster wrote: Peter Maydell writes: > On Thu, 2 Apr 2020 at 07:11, Vladimir Sementsov-Ogievskiy > wrote: >> Someho

Re: Questionable aspects of QEMU Error's design

2020-04-03 Thread Markus Armbruster
BALATON Zoltan writes: > On Thu, 2 Apr 2020, Markus Armbruster wrote: >> Vladimir Sementsov-Ogievskiy writes: >>> 02.04.2020 12:36, BALATON Zoltan wrote: [...] Not much better. Could it be something like: [...]     ERRP_RET(object_property_set_link(cpuobj, OBJECT(&s->cpu_contain

Re: Questionable aspects of QEMU Error's design

2020-04-02 Thread Paolo Bonzini
On 02/04/20 10:55, Markus Armbruster wrote: > > When you return non-null/null or true/false on success/error, neglecting > to document that in a function contract can perhaps be tolerated; you're > using the return type the common, obvious way. But when you return 0/-1 > or 0/-errno, please spell

Re: Questionable aspects of QEMU Error's design

2020-04-02 Thread Vladimir Sementsov-Ogievskiy
02.04.2020 18:06, Markus Armbruster wrote: Vladimir Sementsov-Ogievskiy writes: 02.04.2020 11:55, Markus Armbruster wrote: Peter Maydell writes: On Thu, 2 Apr 2020 at 07:11, Vladimir Sementsov-Ogievskiy wrote: Somehow, in general, especially with long function names and long parameter l

Re: Questionable aspects of QEMU Error's design

2020-04-02 Thread BALATON Zoltan
On Thu, 2 Apr 2020, Markus Armbruster wrote: Vladimir Sementsov-Ogievskiy writes: 02.04.2020 12:36, BALATON Zoltan wrote: On Thu, 2 Apr 2020, Vladimir Sementsov-Ogievskiy wrote: 01.04.2020 23:15, Peter Maydell wrote: On Wed, 1 Apr 2020 at 10:03, Markus Armbruster wrote: QEMU's Error was p

Re: Questionable aspects of QEMU Error's design

2020-04-02 Thread Markus Armbruster
Vladimir Sementsov-Ogievskiy writes: > 02.04.2020 11:55, Markus Armbruster wrote: >> Peter Maydell writes: >> >>> On Thu, 2 Apr 2020 at 07:11, Vladimir Sementsov-Ogievskiy >>> wrote: Somehow, in general, especially with long function names and long parameter lists I prefer

Re: Questionable aspects of QEMU Error's design

2020-04-02 Thread Vladimir Sementsov-Ogievskiy
02.04.2020 11:55, Markus Armbruster wrote: Peter Maydell writes: On Thu, 2 Apr 2020 at 07:11, Vladimir Sementsov-Ogievskiy wrote: Somehow, in general, especially with long function names and long parameter lists I prefer ret = func(..); if (ret < 0) { return ret; } Personally I pre

Re: Questionable aspects of QEMU Error's design

2020-04-02 Thread Markus Armbruster
Vladimir Sementsov-Ogievskiy writes: > 02.04.2020 12:36, BALATON Zoltan wrote: >> On Thu, 2 Apr 2020, Vladimir Sementsov-Ogievskiy wrote: >>> 01.04.2020 23:15, Peter Maydell wrote: On Wed, 1 Apr 2020 at 10:03, Markus Armbruster wrote: > > QEMU's Error was patterned after GLib's GErr

Re: Questionable aspects of QEMU Error's design

2020-04-02 Thread Eric Blake
On 4/2/20 12:54 AM, Markus Armbruster wrote: Peter Maydell writes: It's a small improvement. A bigger one is if (object_property_set_link(cpuobj, OBJECT(&s->cpu_container[i]), "memory", errp)) { return; } if (obje

Re: Questionable aspects of QEMU Error's design

2020-04-02 Thread Vladimir Sementsov-Ogievskiy
02.04.2020 12:36, BALATON Zoltan wrote: On Thu, 2 Apr 2020, Vladimir Sementsov-Ogievskiy wrote: 01.04.2020 23:15, Peter Maydell wrote: On Wed, 1 Apr 2020 at 10:03, Markus Armbruster wrote: QEMU's Error was patterned after GLib's GError.  Differences include:  From my POV the major problem

Re: Questionable aspects of QEMU Error's design

2020-04-02 Thread BALATON Zoltan
On Thu, 2 Apr 2020, Vladimir Sementsov-Ogievskiy wrote: 01.04.2020 23:15, Peter Maydell wrote: On Wed, 1 Apr 2020 at 10:03, Markus Armbruster wrote: QEMU's Error was patterned after GLib's GError. Differences include: From my POV the major problem with Error as we have it today is that it

Re: Questionable aspects of QEMU Error's design

2020-04-02 Thread Alex Bennée
Daniel P. Berrangé writes: > On Thu, Apr 02, 2020 at 07:54:11AM +0200, Markus Armbruster wrote: >> Peter Maydell writes: >> >> > On Wed, 1 Apr 2020 at 10:03, Markus Armbruster wrote: >> >> >> >> QEMU's Error was patterned after GLib's GError. Differences include: >> > >> > From my POV the m

Re: Questionable aspects of QEMU Error's design

2020-04-02 Thread Markus Armbruster
Peter Maydell writes: > On Thu, 2 Apr 2020 at 07:11, Vladimir Sementsov-Ogievskiy > wrote: >> Somehow, in general, especially with long function names and long parameter >> lists I prefer >> >> ret = func(..); >> if (ret < 0) { >> return ret; >> } > > Personally I prefer the other approach

Re: Questionable aspects of QEMU Error's design

2020-04-02 Thread Daniel P . Berrangé
On Thu, Apr 02, 2020 at 08:11:11AM +, Peter Maydell wrote: > On Thu, 2 Apr 2020 at 07:11, Vladimir Sementsov-Ogievskiy > wrote: > > Somehow, in general, especially with long function names and long parameter > > lists I prefer > > > > ret = func(..); > > if (ret < 0) { > > return ret; >

Re: Questionable aspects of QEMU Error's design

2020-04-02 Thread Daniel P . Berrangé
On Thu, Apr 02, 2020 at 07:54:11AM +0200, Markus Armbruster wrote: > Peter Maydell writes: > > > On Wed, 1 Apr 2020 at 10:03, Markus Armbruster wrote: > >> > >> QEMU's Error was patterned after GLib's GError. Differences include: > > > > From my POV the major problem with Error as we have it to

Re: Questionable aspects of QEMU Error's design

2020-04-02 Thread Peter Maydell
On Thu, 2 Apr 2020 at 07:11, Vladimir Sementsov-Ogievskiy wrote: > Somehow, in general, especially with long function names and long parameter > lists I prefer > > ret = func(..); > if (ret < 0) { > return ret; > } Personally I prefer the other approach -- this one has an extra line in the

Re: Questionable aspects of QEMU Error's design

2020-04-01 Thread Vladimir Sementsov-Ogievskiy
02.04.2020 8:54, Markus Armbruster wrote: Peter Maydell writes: On Wed, 1 Apr 2020 at 10:03, Markus Armbruster wrote: QEMU's Error was patterned after GLib's GError. Differences include: From my POV the major problem with Error as we have it today is that it makes the simple process of

Re: Questionable aspects of QEMU Error's design

2020-04-01 Thread Markus Armbruster
Peter Maydell writes: > On Wed, 1 Apr 2020 at 10:03, Markus Armbruster wrote: >> >> QEMU's Error was patterned after GLib's GError. Differences include: > > From my POV the major problem with Error as we have it today > is that it makes the simple process of writing code like > device realize f

Re: Questionable aspects of QEMU Error's design

2020-04-01 Thread Vladimir Sementsov-Ogievskiy
01.04.2020 23:15, Peter Maydell wrote: On Wed, 1 Apr 2020 at 10:03, Markus Armbruster wrote: QEMU's Error was patterned after GLib's GError. Differences include: From my POV the major problem with Error as we have it today is that it makes the simple process of writing code like device rea

Re: Questionable aspects of QEMU Error's design

2020-04-01 Thread Peter Maydell
On Wed, 1 Apr 2020 at 10:03, Markus Armbruster wrote: > > QEMU's Error was patterned after GLib's GError. Differences include: >From my POV the major problem with Error as we have it today is that it makes the simple process of writing code like device realize functions horrifically boilerplate

Re: Questionable aspects of QEMU Error's design

2020-04-01 Thread Markus Armbruster
Alex Bennée writes: > Vladimir Sementsov-Ogievskiy writes: > >> Side question: >> >> Can we somehow implement a possibility to reliably identify file and line >> number >> where error is set by error message? >> >> It's where debug of error-bugs always starts: try to imagine which parts of >>

Re: Questionable aspects of QEMU Error's design

2020-04-01 Thread Markus Armbruster
Daniel P. Berrangé writes: > On Wed, Apr 01, 2020 at 11:02:11AM +0200, Markus Armbruster wrote: >> QEMU's Error was patterned after GLib's GError. Differences include: >> >> * &error_fatal, &error_abort for convenience > > I think this doesn't really need to exist, and is an artifact > of the l

Re: Questionable aspects of QEMU Error's design

2020-04-01 Thread Markus Armbruster
Vladimir Sementsov-Ogievskiy writes: > Side question: > > Can we somehow implement a possibility to reliably identify file and line > number > where error is set by error message? > > It's where debug of error-bugs always starts: try to imagine which parts of > the error > message are "%s", and

Re: Questionable aspects of QEMU Error's design

2020-04-01 Thread Alex Bennée
Vladimir Sementsov-Ogievskiy writes: > 01.04.2020 12:02, Markus Armbruster wrote: >> QEMU's Error was patterned after GLib's GError. Differences include: >> * &error_fatal, &error_abort for convenience >> * Error can optionally store hints >> * Pointlessly different names: error_prepend() vs.

Re: Questionable aspects of QEMU Error's design

2020-04-01 Thread Vladimir Sementsov-Ogievskiy
01.04.2020 15:44, Daniel P. Berrangé wrote: On Wed, Apr 01, 2020 at 11:02:11AM +0200, Markus Armbruster wrote: QEMU's Error was patterned after GLib's GError. Differences include: * &error_fatal, &error_abort for convenience I think this doesn't really need to exist, and is an artifact of th

Re: Questionable aspects of QEMU Error's design

2020-04-01 Thread Daniel P . Berrangé
On Wed, Apr 01, 2020 at 11:02:11AM +0200, Markus Armbruster wrote: > QEMU's Error was patterned after GLib's GError. Differences include: > > * &error_fatal, &error_abort for convenience I think this doesn't really need to exist, and is an artifact of the later point "return values" where we com

Re: Questionable aspects of QEMU Error's design

2020-04-01 Thread Vladimir Sementsov-Ogievskiy
01.04.2020 15:10, Vladimir Sementsov-Ogievskiy wrote: 01.04.2020 12:02, Markus Armbruster wrote: QEMU's Error was patterned after GLib's GError.  Differences include: * &error_fatal, &error_abort for convenience * Error can optionally store hints * Pointlessly different names: error_prepend()

Re: Questionable aspects of QEMU Error's design

2020-04-01 Thread Vladimir Sementsov-Ogievskiy
01.04.2020 12:02, Markus Armbruster wrote: QEMU's Error was patterned after GLib's GError. Differences include: * &error_fatal, &error_abort for convenience * Error can optionally store hints * Pointlessly different names: error_prepend() vs. g_error_prefix() and so forth *shrug* * Propag

Questionable aspects of QEMU Error's design

2020-04-01 Thread Markus Armbruster
QEMU's Error was patterned after GLib's GError. Differences include: * &error_fatal, &error_abort for convenience * Error can optionally store hints * Pointlessly different names: error_prepend() vs. g_error_prefix() and so forth *shrug* * Propagating errors Thanks to Vladimir, we'll soon