From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58672) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WhKaD-0003gS-Oz for qemu-devel@nongnu.org; Mon, 05 May 2014 11:13:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WhKa6-0000Cp-Pm for qemu-devel@nongnu.org; Mon, 05 May 2014 11:13:33 -0400 Received: from mx1.redhat.com ([209.132.183.28]:4342) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WhKa6-0000Cj-Ij for qemu-devel@nongnu.org; Mon, 05 May 2014 11:13:26 -0400 Message-ID: <5367AA92.1090905@redhat.com> Date: Mon, 05 May 2014 09:13:22 -0600 From: Eric Blake MIME-Version: 1.0 References: <1398764656-27534-1-git-send-email-famz@redhat.com> <1398764656-27534-3-git-send-email-famz@redhat.com> <20140429112436.GE4835@noname.str.redhat.com> <535FA06F.2060603@redhat.com> <87iopktuy8.fsf@blackfin.pond.sub.org> In-Reply-To: <87iopktuy8.fsf@blackfin.pond.sub.org> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="bMvpGEdm1QIC3BHLrXMct2qHsP6XJ8TNe" Subject: Re: [Qemu-devel] [PATCH v2 2/2] qapi: Allow setting default values for optional parameters List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Markus Armbruster Cc: Kevin Wolf , Peter Maydell , Fam Zheng , Michael Roth , qemu-devel@nongnu.org, Luiz Capitulino , akong@redhat.com This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --bMvpGEdm1QIC3BHLrXMct2qHsP6XJ8TNe Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On 05/05/2014 03:51 AM, Markus Armbruster wrote: >> Also, is the default value allowed to change between qemu versions? >> What are the back-compat ramifications if two different releases want = to >> tweak an omitted variable to different defaults? The documentation >> should mention the rule of thumb that we plan on enforcing during >> reviews. I could go either way: the wire format is unimpacted by what= >> default value is used when an argument is omitted, and management can >> always explicitly specify a parameter if they don't trust the default;= >> on the other hand, if changing a default changes visible behavior, the= n >> we have not maintained ABI compatibility. >=20 > We should use common sense. >=20 > Changing the schema in a way that alters the meaning of existing usage > is a no-no, and that applies to defaults as much as to anything else. > But not every change of a default necessarily does that. Contrieved > example: if the value defines a buffer size, and it's specified to > default to a sensible size, then we can and should let the default valu= e > evolve along with our idea of what a sensible size is. I agree - it's more important to declare that we are maintaining documented semantics (omitting the parameter will always pick the best size, even if that size differs over time) than precise values (omitting the parameter will always pick 512 bytes, even if that is not the ideal size for newer versions) - so it is somewhat a documentation game of whether we document default values well enough to let them be flexible :)= --=20 Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org --bMvpGEdm1QIC3BHLrXMct2qHsP6XJ8TNe Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 Comment: Public key at http://people.redhat.com/eblake/eblake.gpg Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEcBAEBCAAGBQJTZ6qSAAoJEKeha0olJ0Nq5RsH/AmEQvLZuICEEp4UE05Ee8aH WsqiUoCMRuKRKFWapy8tmCuc2mWmKxuC1cTquPz/NG+T8z5LUbxBbWD4lrZ9J98A JPH5Op34HweaImPKOyKQUSnt2pWcAmGEYLwHlbNPwCc3AZpmiuwufj5E8Btkmd0u zBpxDrOIuCzon2/4ADtVdV49GzlAaIKL9+qcECpGInRlVWXpTa9IBUbhqHWLE6j3 YeWASadrj6fxGSEJNxbUrV9riEFgSaAz1+kfZwQsjyN7OBV5prBtIFzKe4x6EAcQ zo2h6tqBuJFPCuwySs8SLMdZHfulHe5umNpb9w6HwTC8Tj9pdgC/W9pMJedUCTU= =u8hf -----END PGP SIGNATURE----- --bMvpGEdm1QIC3BHLrXMct2qHsP6XJ8TNe--