From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, HTML_MESSAGE,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 51876C0650F for ; Tue, 30 Jul 2019 13:32:07 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 2F7432064A for ; Tue, 30 Jul 2019 13:32:07 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2F7432064A Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ainfosec.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hsSEE-0003s6-Rk; Tue, 30 Jul 2019 13:31:46 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hsSEE-0003s0-8k for xen-devel@lists.xenproject.org; Tue, 30 Jul 2019 13:31:46 +0000 X-Inumbo-ID: 5f467635-b2ce-11e9-8980-bc764e045a96 Received: from mail.ainfosec.com (unknown [209.217.208.252]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id 5f467635-b2ce-11e9-8980-bc764e045a96; Tue, 30 Jul 2019 13:31:44 +0000 (UTC) X-ASG-Debug-ID: 1564492304-0dce566a4a2ac9b0001-RNp3Ad Received: from AISEX01.ainfosec.com ([10.201.1.88]) by mail.ainfosec.com with ESMTP id BC0O1GqYXoGUtx1z (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NO); Tue, 30 Jul 2019 09:11:44 -0400 (EDT) X-Barracuda-Envelope-From: rosbrookn@ainfosec.com Received: from AIS-Mustang.ainfosec.com (10.201.1.188) by AISEX01.ainfosec.com (10.201.1.88) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1779.2; Tue, 30 Jul 2019 09:11:44 -0400 Received: from AIS-Mustang.ainfosec.com (10.201.1.188) by AIS-Mustang.ainfosec.com (10.201.1.188) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1779.2; Tue, 30 Jul 2019 09:11:44 -0400 Received: from AIS-Mustang.ainfosec.com ([fe80::dd05:4fde:e2b2:58fb]) by AIS-Mustang.ainfosec.com ([fe80::dd05:4fde:e2b2:58fb%3]) with mapi id 15.01.1779.002; Tue, 30 Jul 2019 09:11:44 -0400 From: Nicholas Rosbrook To: "xen-devel@lists.xenproject.org" Thread-Topic: [RFC] Generating Go bindings for libxl X-ASG-Orig-Subj: [RFC] Generating Go bindings for libxl Thread-Index: AQHVRtfLXTQzyEsJNUC34RhhfUYN2g== Date: Tue, 30 Jul 2019 13:11:44 +0000 Message-ID: <5c6f3ed7b2f444918feea4f4b7cec107@ainfosec.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [172.16.101.172] MIME-Version: 1.0 X-Barracuda-Connect: UNKNOWN[10.201.1.88] X-Barracuda-Start-Time: 1564492304 X-Barracuda-Encrypted: ECDHE-RSA-AES256-SHA384 X-Barracuda-URL: https://10.69.69.46:443/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at ainfosec.com X-Barracuda-Scan-Msg-Size: 3187 X-Barracuda-BRTS-Status: 1 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5002 1.0000 0.7500 X-Barracuda-Spam-Score: 0.75 X-Barracuda-Spam-Status: No, SCORE=0.75 using global scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=9.0 tests=HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.74645 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 HTML_MESSAGE BODY: HTML included in message Subject: [Xen-devel] [RFC] Generating Go bindings for libxl X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Brendan Kerrigan , "wl@xen.org" , "ian.jackson@eu.citrix.com" , George Dunlap , "anthony.perard@citrix.com" , Nicolas Belouin Content-Type: multipart/mixed; boundary="===============3510533917460318703==" Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" --===============3510533917460318703== Content-Language: en-US Content-Type: multipart/alternative; boundary="_000_5c6f3ed7b2f444918feea4f4b7cec107ainfoseccom_" --_000_5c6f3ed7b2f444918feea4f4b7cec107ainfoseccom_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hello, As a follow up to the presentation that Brendan Kerrigan and I gave at Xen summit earlier this month, "Client Virtualization Toolstack in Go", I would= like to open a discussion around the development of Go bindings for libxl. George Dunlap= , Nicolas Belouin and I have had some discussion off-line already. So far, these are the topics of discussion: - Code generation: Should the Go bindings be generated from the IDL? Or sho= uld an existing cgo generator like c-for-go [1] be leveraged? - What does the minimal viable Go package look like? IMO it should be able = to create and destroy domains, attach and detach network and disk devices, list dom= ains, and convert domid to name and vice versa. It is also important that the e= xported APIs reflect idiomatic Go. - Challenges surrounding hypervisor versioning, go modules, etc. ATM, the code generation piece is the primary concern. George - could you explain your thoughts on the code generation topic? The existing bindings that I have been working on are at [2]. Thanks, - Nick Rosbrook [1] https://github.com/xlab/c-for-go [2] https://github.com/enr0n/xen/tree/libxl-go/tools/golibxl/libxl --_000_5c6f3ed7b2f444918feea4f4b7cec107ainfoseccom_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable

Hello,

As a follow up to the presentation that Brendan Kerrigan and I gave at Xen =
summit earlier this month, "Client Virtualization Toolstack in Go"= ;, I would like to open
a discussion around the development of Go bindings for libxl. George Dunlap= ,
Nicolas Belouin and I have had some discussion off-line already.

So far, these are the topics of discussion:

- Code generation: Should the Go bindings be generated from the IDL? Or sho= uld
  an existing cgo generator like c-for-go [1] be leveraged?

- What does the minimal viable Go package look like? IMO it should be able = to create
  and destroy domains, attach and detach network and disk devices, lis= t domains,
  and convert domid to name and vice versa. It is also important that = the exported
  APIs reflect idiomatic Go.

- Challenges surrounding hypervisor versioning, go modules, etc.

ATM, the code generation piece is the primary concern.

George - could you explain your thoughts on the code generation topic?

The existing bindings that I have been working on are at [2].

Thanks,

- Nick Rosbrook

[1] https://github.com/xlab/c-for-go
[2] https://github.com/enr0n/xen/tree/libxl-go/tools/golibxl/libxl

--_000_5c6f3ed7b2f444918feea4f4b7cec107ainfoseccom_-- --===============3510533917460318703== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVs IG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0 cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA== --===============3510533917460318703==--