[libvirt] [PATCH] docs: Format bit shift notation for bitwise flag enums

Daniel P. Berrangé berrange at redhat.com
Tue Jan 29 13:45:03 UTC 2019


On Tue, Jan 29, 2019 at 08:41:59AM -0500, John Ferlan wrote:
> 
> 
> On 1/29/19 8:07 AM, Daniel P. Berrangé wrote:
> > On Thu, Jan 24, 2019 at 03:43:15PM +0100, Peter Krempa wrote:
> >> Big number itself does not make much sense in some cases. Format the
> >> bitshift format as well.
> >>
> >> Changes our web page docs from:
> >>
> >> VIR_MIGRATE_POSTCOPY = 32768 : Setting the VIR_MIGRATE_POSTCOPY...
> >> VIR_MIGRATE_TLS      = 65536 : Setting the VIR_MIGRATE_TLS flag...
> >>
> >> to:
> >>
> >> VIR_MIGRATE_POSTCOPY = 32768 (1<<15) : Setting the VIR_MIGRATE_POSTCOPY...
> >> VIR_MIGRATE_TLS      = 65536 (1<<16) : Setting the VIR_MIGRATE_TLS flag...
> > 
> > I tend to question why we are reporting the value in the docs at all.
> > 
> > The whole point of enums/constants is that developers should never care
> > about the actual. They should exclusively use the names.
> > 
> > So if anything I'd suggest we remove the existing numbers from the docs,
> > instead of adding the bitshift values.
> > 
> 
> I think it would look odd without some value, but I could be in the
> minority opinion on that.
> 
> As a developer sometimes you have to debug things and wonder what a
> value means. There's a few values which jump from "smaller" values to
> much larger values (e.g. VIR_CONNECT_GET_ALL_DOMAINS_STATS_NOWAIT) where
> values go from 1, 2, 4, etc. jumping up to 536870912, 1073741824, etc.
> 
> While yes, open source someone can look it up, but perhaps the first
> place to look is the docs. The visual cue of seeing (1 << 29), (1 <<
> 30), etc. would be enough for me.

Actually, yes, I was forgetting about the case of debugging where knowing
the real values is important.

For "flags" at least, the logs will typically have the values printed in
hex & you need to look them up.  So I wonder if we could usefully
print both decimal & hex in the docs (and the bit shift) ?


Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|




More information about the libvir-list mailing list