[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [XEN PATCH for-4.17 v5 16/17] tools/golang/xenlight: Rework gengotypes.py and generation of *.gen.go


  • To: Andrew Cooper <Andrew.Cooper3@xxxxxxxxxx>
  • From: George Dunlap <George.Dunlap@xxxxxxxxxx>
  • Date: Fri, 14 Oct 2022 11:42:27 +0000
  • Accept-language: en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=YUYAnCOl6FJHCAvCkNgS7MLqmz1eDvRsP4Ci0ztpp5k=; b=lwJTflCUAqzei4TGMCVs4eBZR9bWFCyW7GNlbQDxvNCebat/zKA5rxN5CS23JtfULIga4G3vjDAEBifKtaD0RWRSzXjX21OnZDHJlfhOcHLGfVDwihYDk2D8n82tRmcn6fNErULLQvoS056oCAdMEAvgBOsYgVyfQHcPNfcgtA/QomqsDUfecxd9ifGRtMeHWg1mW8rVvBtihC45cIZUHYH9Hv/2AhSo/qBq9gpojPbFAAjMXzaOSB8tdf4joogjeZKrw2TJp3WjW7MxnZBjmdILFZ/c1FSCimCA/gBKZxIymyGrAiPbA7fDplfpGh4V2c5SJ5FFPht8bIkqhOFFFg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Qkw3G1IXhOLIHkVfwcDjfnXdIlEYYYliU+l2UYfNKTdAzdnWvyvchR0uacid3p3oTZuQ+Mg0Et/7P4V259F/G5lxQMlsdKZdTyECy6n5ajIRRmAyStxGNu+S9g/iY7S9u4P10VUHrPB4y9ghWAy/xRPTUMAIQJ9Im5zZVMKALaBUHRuWE2c63k6NurEUGMLOjw9cyRLvfRTIf38XBxibC7+DIgot4xN6/q0vipHaRG/XEL/zD8LpwR+jU2nSk4ann43DiOozs3osQEvthbAdJcusx/CrxXA+0h/bb8pxwjybDLX5c9hyaS6tU5sPcajpO0OT0On7T673n2ADvM1txw==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Cc: Anthony Perard <anthony.perard@xxxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Henry Wang <Henry.Wang@xxxxxxx>, Nick Rosbrook <rosbrookn@xxxxxxxxx>, Wei Liu <wl@xxxxxxx>
  • Delivery-date: Fri, 14 Oct 2022 11:42:40 +0000
  • Ironport-data: A9a23:cKopqqAjlZRsZxVW/4Tiw5YqxClBgxIJ4kV8jC+esDiIYAhSlGxQk DNbHCvTJK7JMVJBSKl1O9izoU8GsJWExtJlGgBo+ShgFi1H8MadC93AIk2pZXrMf5edRU42s Z5BZIedcp5pQHaG+kyhauS+/CciiK/ZLlaQ5JYoHwgoLeMzYHtx2XqP4tIEv7OEoeRVIiuE6 Ij/+sDWNACr12Z5YmxJs6zZph0xsP+ssmsV4QRmNKEXsAfSmUdOAcNEL8ldDZdarqp8RbfmG rmZnNlV2kuDon/B3/v8yu6TnnUiG+KUZ07W4pZvc/DKqgBYoSAv2boMOvMZaENG4x2EhNk0w 9hW3XCKYV5B0pbkxaJMDnG0LwkkZfccoeeefSDl2SCu5xaun0XEkq0G4H4eZeX0ys4vaUlS+ PoRLiw6bxzrr4paF5riF4GALux6RCXaFNt3VkNIlFk1Pt5/KXz3eI3Y5Mcw4dsFrpsm8cAyx SYuQWEHgBzoO3WjM7qMYX40tL/AanLXK1W0pL8JzEaeDqe6IAFZidDQ3NTpltOiR+d8tAWdl Ez8uDr3Ii9LFdGDzjff2yf57gPPtXuTtIM6MpSdr6QvrHjNg2sZBVsRSEexpuS/hgimQdVDJ kcI+y0o668v6EisSdq7VBq9yJKGlkdEB5wMTKtnuUfUlfe8DwWxXwDoShZuZds8u8JwaSEs0 laRt9joGSZuoPueTnf1GrK8/WjrZHdKdzFqiSksbTAYzvi+ht8PkAPQHthfV4+4nIzrMGSlq 9yNhG1k71kJtuYb2qP+8V3ZjjaEopnSUhVz9gjRRnii7A5yeMiifYPAwXjW6+xRarmQSFapt WIB3cOZ6YgmF5aWnjaKR+YLNL6s7veBdjbbhDZHAJ0J5zmrvXm5cuhtDCpWIU5oNoMIfGHva UqK4wdJvsYMYT2tcLN9ZJ+3B4Iy16/8GN/5V/fSKN1Tfpx2cwzB9yZrDaKN413QfIEXuflXE f+mnQyEVB721YwPIOKKetog
  • Ironport-hdrordr: A9a23:r7Pej6GDaJkwHOpqpLqFXpHXdLJyesId70hD6qkvc3Fom52j/f xGws5x6fatskdrZJkh8erwW5VoMkmsj6KdgLNhd4tKOTOLhILGFvAE0WKP+Vzd8mjFh5ZgPM RbAuVD4b/LfD5HZK/BiWHWferIguP3iZxA7t2urUuFODsaD52ImD0JbzpzfHcXeCB2Qb4CUL aM7MtOoDStPV4NaN6gO3UDV+/f4/XWiZPPe3c9dlEawTjLqQntxK/xEhCe0BtbeShI260e/W /MlBG8zrm/ssu81gTX2wbontprcZrau5p+7f63+4sowwbX+0SVjUNaKvi/VQUO0aGSAZAR4Z 3xSlkbToNOAjjqDxyISFPWqnXdOXAVmjPfIBaj8AXeiN28SzQgB8Vbg4VFNhPf9ko7pdl5lL lGxmSDqvNsfFr9dLSU3am2a/hGrDvCnZMZq59ks1VPFY8FLLNBp40W+01YVJ8GASLh8YgiVO 1jFtvV6vpaeU6TKymxhBgl/PW8GnAoWhuWSEkLvcKYlzBQgXBi1kMdgMgShG0J+p4xQ4RNo+ 7ELqNrnrdTSdJ+V9M0OM4RBc+sTmDdSxPFN2yfZVzhCaEcInrI74X65b0kjdvaDKDgDKFC7a gpfGkoxlLaIXieePFm9Kc7gizlUSG6QSnnzN1Y6txwpqD8LYCbQxG+dA==
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHY3wTwBw4XcUEnKkOCwbXR47HHg64MavwAgAFV8ICAAAOrAIAAAWwA
  • Thread-topic: [XEN PATCH for-4.17 v5 16/17] tools/golang/xenlight: Rework gengotypes.py and generation of *.gen.go



On 14 Oct 2022, at 12:37, Andrew Cooper <Andrew.Cooper3@xxxxxxxxxx> wrote:

On 14/10/2022 12:24, George Dunlap wrote:
On 13 Oct 2022, at 16:00, Andrew Cooper <Andrew.Cooper3@xxxxxxxxxx> wrote:

On 13/10/2022 14:05, Anthony Perard wrote:
diff --git a/tools/golang/xenlight/gengotypes.py b/tools/golang/xenlight/gengotypes.py
index ac1cf060dd..ff4c2ad216 100644
--- a/tools/golang/xenlight/gengotypes.py
+++ b/tools/golang/xenlight/gengotypes.py
@@ -723,7 +723,13 @@ def xenlight_golang_fmt_name(name, exported = True):
return words[0] + ''.join(x.title() for x in words[1:])

if __name__ == '__main__':
+ if len(sys.argv) != 4:
+ print("Usage: gengotypes.py <idl> <types.gen.go> <helpers.gen.go>", file=sys.stderr)
This breaks with Py2.7. Needs a

from __future__ import print_function

inserting at the top.
Out of curiosity, did you notice this by inspection, or because you specifically tested Python 2.7, or because a system you were using is still actually using Python 2.7?

Xen's build system can't actually create a build which supports Py2 and
Py3, because xen.lowlevel.{xc,xs} only get built once.  It would be nice
to fix this, but -ETUITS, so we state a specific version in the specfile
and mock ensures there is no trace of the other one.

XenServer is in the process of trying to retire Py2, but it turns out
that Xen isn't actually fully Py3 clean yet, so we use Py2 for Xen.

The build breaks because the libxl build writes the .go files even when
we don't actually want go bindings in the end.

I think the generation code is looped in even when golang is disabled so that we can detect IDL changes during development, even on systems which don’t have golang installed.  In theory if libxl.idl doesn’t change, it shouldn’t trigger the build?  Alternately we could consider skipping the code generation on non-debug builds, since we only really need to detect changes during development.

 -George

Attachment: signature.asc
Description: Message signed with OpenPGP


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.