All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ian Jackson <ian.jackson@eu.citrix.com>
To: Roger Pau Monne <roger.pau@citrix.com>
Cc: xen-devel@lists.xenproject.org, boris.ostrovsky@oracle.com,
	Wei Liu <wei.liu2@citrix.com>
Subject: Re: [PATCH v2 02/21] libxl: introduce a way to mark fields as deprecated in the idl
Date: Wed, 20 Sep 2017 16:46:16 +0100	[thread overview]
Message-ID: <22978.36168.401712.575456@mariner.uk.xensource.com> (raw)
In-Reply-To: <20170907101642.15782-3-roger.pau@citrix.com>

Roger Pau Monne writes ("[PATCH v2 02/21] libxl: introduce a way to mark fields as deprecated in the idl"):
> The deprecation involves generating a function that copies the
> deprecated fields into it's new location if the new location has not
> been set.

Hi.  We had an IRL conversation which I will summarise.


The first issue is about the scoping and context of the deprecated_by
annotations.  The arrangement you have is that the field name in
deprecated_by is a (textual) reference to an (implicit) enclosing
struct which has copy_deprecated_fn specified.

This is kind of OK but it feels a bit limited and irregular to me.
The practical consequence is that this can be used to bring fields out
into the toplevel, but it is difficult to use it in other ways (for
example, to move a field from one substruct to another, or to
deprecate fields which are part of named substrutures rather than
anonymous ones and which might therefore appear in several places).

We discussed how this might be done better.  To me it seems like the
only really plausible alternative was to replace the
`deprecated_by' and `copy_deprecated_fn' annotations with a single
annotation in the parent structure, something like
  deprecated_fields=['u.hvm','u',['bootloader_args',
                                  'timer_mode', ...]
or maybe even
  deprecated_fields=['u.hvm','u',[('timer_mode_new_name','timer_mode')]]

I really don't want to ask you to implement this general scheme now,
but if you feel like it you could perhaps experiment and see how it
seems.


I have two related comments that do need addressing though: I think
your generate deprecated copy function should check that at most one
of the old and new fields is set.  And, then, to make default setting
idempotent (and avoid memory leaks etc.), it should clear the old
field.


Thanks,
Ian.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

  reply	other threads:[~2017-09-20 15:51 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-07 10:16 [PATCH v2 00/21] libxl/xl: add PVH guest type Roger Pau Monne
2017-09-07 10:16 ` [PATCH v2 01/21] libxl: add is_default checkers for string and timer_mode types Roger Pau Monne
2017-09-19 14:48   ` Ian Jackson
2017-09-20 16:12   ` Wei Liu
2017-09-07 10:16 ` [PATCH v2 02/21] libxl: introduce a way to mark fields as deprecated in the idl Roger Pau Monne
2017-09-20 15:46   ` Ian Jackson [this message]
2017-09-20 16:39     ` Wei Liu
2017-09-21 10:32       ` Ian Jackson
2017-09-22 16:02     ` Roger Pau Monné
2017-09-22 16:09       ` Ian Jackson
2017-09-07 10:16 ` [PATCH v2 03/21] libxl/xl: use the new domain_build_info fields position Roger Pau Monne
2017-09-20 14:48   ` Ian Jackson
2017-09-07 10:16 ` [PATCH v2 04/21] xl: introduce a domain type option Roger Pau Monne
2017-09-20 14:50   ` Ian Jackson
2017-09-21 17:16     ` Roger Pau Monné
2017-09-21 17:22       ` Ian Jackson
2017-09-07 10:16 ` [PATCH v2 05/21] xl: introduce a firmware option Roger Pau Monne
2017-09-20 14:53   ` Ian Jackson
2017-09-07 10:16 ` [PATCH v2 06/21] libxl: introduce a PVH guest type Roger Pau Monne
2017-09-07 10:16 ` [PATCH v2 07/21] libxl: allow PVH guests to use a bootloader Roger Pau Monne
2017-09-07 10:16 ` [PATCH v2 08/21] libxl: set PVH guests to use the PV console Roger Pau Monne
2017-09-07 10:16 ` [PATCH v2 09/21] libxl: add PVH support to domain creation Roger Pau Monne
2017-09-07 10:16 ` [PATCH v2 10/21] libxl: remove device model "none" support from disk related functions Roger Pau Monne
2017-09-07 10:16 ` [PATCH v2 11/21] libxl: set device model for PVH guests Roger Pau Monne
2017-09-07 10:16 ` [PATCH v2 12/21] libxl: add PVH support to domain building Roger Pau Monne
2017-09-07 10:16 ` [PATCH v2 13/21] libxl: add PVH support to domain save/suspend Roger Pau Monne
2017-09-07 10:16 ` [PATCH v2 14/21] libxl: add PVH support to vpcu hotplug, domain destruction/pause and domain configuration Roger Pau Monne
2017-09-07 10:16 ` [PATCH v2 15/21] libxl: add PVH support to memory functions Roger Pau Monne
2017-09-07 10:16 ` [PATCH v2 16/21] libxl: PVH guests use PV nics Roger Pau Monne
2017-09-07 10:16 ` [PATCH v2 17/21] libxl: remove device model "none" support from stream functions Roger Pau Monne
2017-09-07 10:16 ` [PATCH v2 18/21] libxl: add PVH support to USB Roger Pau Monne
2017-09-07 10:16 ` [PATCH v2 19/21] libxl: add PVH support to x86 functions Roger Pau Monne
2017-09-07 10:16 ` [PATCH v2 20/21] xl: add PVH as a guest type Roger Pau Monne
2017-09-07 10:16 ` [PATCH v2 21/21] libxl: remove device model "none" from IDL Roger Pau Monne

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=22978.36168.401712.575456@mariner.uk.xensource.com \
    --to=ian.jackson@eu.citrix.com \
    --cc=boris.ostrovsky@oracle.com \
    --cc=roger.pau@citrix.com \
    --cc=wei.liu2@citrix.com \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.