xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Rob Hoes <rob.hoes@citrix.com>
To: xen-devel@lists.xen.org
Cc: ian.campbell@citrix.com
Subject: [PATCH v2-resend 00/30] libxl: ocaml: improve the bindings
Date: Thu, 22 Aug 2013 11:50:48 +0100	[thread overview]
Message-ID: <1377168678-25492-1-git-send-email-rob.hoes@citrix.com> (raw)


This is a repost of version 2 of this patch series to fix the OCaml binding to libxl.

I believe I have addressed all the points raised by Dave Scott and Ian Campbell. Sorry for the delay in getting this new series out!

The main changes are:
* Several fixes to ensure the bindings play well with the OCaml GC. This includes properly using macros such as CAMLparam* and CAMLreturn* for _all_ OCaml values (even intermediate ones), and using "custom" blocks to encapsulate pointers to C code (including handy "finalize" functions for cleanup.
* Fixes in the way KeyedUnions are handled.
* Use the libxl init function to generate default records for libxl types.
* Improve the functions that deal with event handling. We now have some higher-level functions to makes this easier as well as safer, and errors are translated properly.

---------

The following series of patches fill in most of the gaps in the OCaml bindings to libxl, to make them useful for clients such as xapi/xenopsd (from XCP).
There are a number of bugfixes to the existing bindings as well. I have an experimental version of xenopsd that successfully uses the new bindings.

An earlier version of the first half of the series was submitted to the last by Ian Campbell on 20 Nov 2012. With his permission, I have updated most of them to fix some issues (which were discussed on the mailing list at the time). I have left Ian's signed-off-by line on those patches (please let me know if that is not appropriate).

For convenience, the patches in this series may be pulled using:

git pull git://github.com/robhoes/xen.git hydrogen-upstream-v2-rebased

Cheers,
Rob

         reply	other threads:[~2013-08-22 10:50 UTC|newest]

Thread overview: 146+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-06 17:49 [PATCH v4 00/27] libxl: ocaml: improve the bindings Rob Hoes
2013-11-06 17:49 ` [PATCH v4 01/27] libxl: ocaml: support for Arrays in bindings generator Rob Hoes
2013-11-06 17:49 ` [PATCH v4 02/27] libxl: ocaml: avoid reserved words in type and field names Rob Hoes
2013-11-11 14:17   ` Ian Campbell
2013-11-06 17:49 ` [PATCH v4 03/27] libxl: ocaml: support for KeyedUnion in the bindings generator Rob Hoes
2013-11-06 17:49 ` [PATCH v4 04/27] libxl: ocaml: add some more builtin types Rob Hoes
2013-11-06 17:49 ` [PATCH v4 05/27] libxc: ocaml: add simple binding for xentoollog (output only) Rob Hoes
2013-11-11 15:30   ` Ian Campbell
2013-11-12 13:46     ` Rob Hoes
2013-11-12 13:52       ` Ian Campbell
2013-11-06 17:49 ` [PATCH v4 06/27] libxl: ocaml: allocate a long lived libxl context Rob Hoes
2013-11-06 17:49 ` [PATCH v4 07/27] libxl: ocaml: switch all functions over to take a context Rob Hoes
2013-11-06 17:49 ` [PATCH v4 08/27] libxl: idl: add Enumeration.value_namespace property Rob Hoes
2013-11-11 14:31   ` Ian Campbell
2013-11-06 17:49 ` [PATCH v4 09/27] libxl: make the libxl error type an IDL enum Rob Hoes
2013-11-11 14:31   ` Ian Campbell
2013-11-06 17:49 ` [PATCH v4 10/27] libxl: ocaml: generate string_of_* functions for enums Rob Hoes
2013-11-11 14:33   ` Ian Campbell
2013-11-06 17:49 ` [PATCH v4 11/27] libxl: ocaml: propagate the libxl return error code in exceptions Rob Hoes
2013-11-06 17:49 ` [PATCH v4 12/27] libxl: ocaml: make Val_defbool GC-proof Rob Hoes
2013-11-06 17:49 ` [PATCH v4 13/27] libxl: ocaml: add domain_build/create_info/config and events to the bindings Rob Hoes
2013-11-06 17:49 ` [PATCH v4 14/27] libxl: ocaml: fix the handling of enums in the bindings generator Rob Hoes
2013-11-06 17:49 ` [PATCH v4 15/27] libxl: ocaml: use the "string option" type for IDL strings Rob Hoes
2013-11-06 17:49 ` [PATCH v4 16/27] libxl: ocaml: add dominfo_list and dominfo_get Rob Hoes
2013-11-06 17:49 ` [PATCH v4 17/27] libxl: ocaml: implement some simple tests Rob Hoes
2013-11-06 17:49 ` [PATCH v4 18/27] libxl: ocaml: event management Rob Hoes
2013-08-22 10:50   ` Rob Hoes [this message]
2013-08-22 10:50     ` [PATCH v2-resend 01/30] libxl: Add LIBXL_SHUTDOWN_REASON_UNKNOWN Rob Hoes
2013-08-27 14:54       ` Ian Jackson
     [not found]       ` <12f36dbf-3fdc-45e8-b3c1-5194ea356197@FTLPEX01CL02.citrite.net>
2013-09-10 10:55         ` Ian Campbell
2013-08-22 10:50     ` [PATCH v2-resend 02/30] libxl: idl: allow KeyedUnion members to be empty Rob Hoes
2013-08-27 14:53       ` Ian Jackson
2013-08-27 14:56         ` Ian Campbell
2013-08-27 14:59           ` Ian Jackson
2013-08-27 15:04             ` Ian Campbell
2013-08-27 16:27               ` Ian Jackson
2013-08-22 10:50     ` [PATCH v2-resend 03/30] libxl: idl: add domain_type field to libxl_dominfo struct Rob Hoes
2013-08-27 14:55       ` Ian Jackson
2013-09-10 10:56         ` Ian Campbell
2013-09-10 11:00           ` Ian Campbell
2013-09-10 11:03             ` Rob Hoes
2013-08-22 10:50     ` [PATCH v2-resend 04/30] libxl: idl: complete some enums in the IDL with their defaults Rob Hoes
2013-08-27 14:56       ` Ian Jackson
2013-09-10 10:57         ` Ian Campbell
2013-09-10 11:02           ` Ian Campbell
2013-08-22 10:50     ` [PATCH v2-resend 05/30] libxl: ocaml: fix code intended to output comments before definitions Rob Hoes
2013-08-27 14:57       ` Ian Jackson
2013-09-10 10:57         ` Ian Campbell
2013-08-22 10:50     ` [PATCH v2-resend 06/30] libxl: ocaml: support for Arrays in bindings generator Rob Hoes
2013-08-27 14:59       ` Ian Jackson
2013-08-27 15:06         ` Ian Campbell
2013-08-27 15:12           ` Ian Jackson
2013-08-28 14:37             ` Rob Hoes
2013-08-22 10:50     ` [PATCH v2-resend 07/30] libxl: ocaml: avoid reserved words in type and field names Rob Hoes
2013-08-27 15:01       ` Ian Jackson
2013-08-29 10:29         ` Rob Hoes
2013-08-22 10:50     ` [PATCH v2-resend 08/30] libxl: ocaml: support for KeyedUnion in the bindings generator Rob Hoes
2013-08-27 15:09       ` Ian Jackson
2013-08-27 15:13         ` Ian Campbell
2013-08-27 15:20           ` Ian Jackson
2013-08-27 15:28             ` Ian Campbell
2013-08-28 14:47               ` Rob Hoes
2013-08-22 10:50     ` [PATCH v2-resend 09/30] libxl: ocaml: add some more builtin types Rob Hoes
2013-08-27 15:21       ` Ian Jackson
2013-08-28 14:52         ` Rob Hoes
2013-08-22 10:50     ` [PATCH v2-resend 10/30] libxc: ocaml: add simple binding for xentoollog (output only) Rob Hoes
2013-08-27 15:33       ` Ian Jackson
2013-08-29 12:54         ` Rob Hoes
2013-08-29 13:12           ` Ian Campbell
2013-08-29 15:07             ` Ian Jackson
2013-08-29 15:05           ` Ian Jackson
2013-08-22 10:50     ` [PATCH v2-resend 11/30] libxl: ocaml: allocate a long lived libxl context Rob Hoes
2013-08-27 15:38       ` Ian Jackson
2013-08-28 15:55         ` Rob Hoes
2013-08-22 10:51     ` [PATCH v2-resend 12/30] libxl: ocaml: switch all functions over to take a context Rob Hoes
2013-08-27 15:41       ` Ian Jackson
2013-08-22 10:51     ` [PATCH v2-resend 13/30] libxl: ocaml: propagate the libxl return error code in exceptions Rob Hoes
2013-08-27 15:43       ` Ian Jackson
2013-08-22 10:51     ` [PATCH v2-resend 14/30] libxl: ocaml: make Val_defbool GC-proof Rob Hoes
2013-08-27 15:48       ` Ian Jackson
2013-08-22 10:51     ` [PATCH v2-resend 15/30] libxl: ocaml: add domain_build/create_info/config and events to the bindings Rob Hoes
2013-08-27 15:50       ` Ian Jackson
2013-08-22 10:51     ` [PATCH v2-resend 16/30] libxl: ocaml: add META to list of generated files in Makefile Rob Hoes
2013-08-27 17:49       ` Ian Jackson
2013-08-22 10:51     ` [PATCH v2-resend 17/30] libxl: ocaml: fix the handling of enums in the bindings generator Rob Hoes
2013-08-27 17:41       ` Ian Jackson
2013-08-22 10:51     ` [PATCH v2-resend 18/30] libxl: ocaml: use the "string option" type for IDL strings Rob Hoes
2013-08-27 17:44       ` Ian Jackson
2013-08-28  8:30         ` Ian Campbell
2013-08-28 10:33           ` Ian Jackson
2013-08-28 10:41             ` Ian Campbell
2013-08-22 10:51     ` [PATCH v2-resend 19/30] libxl: ocaml: add xen_console_read Rob Hoes
2013-08-27 17:46       ` Ian Jackson
2013-08-22 10:51     ` [PATCH v2-resend 20/30] libxl: ocaml: add dominfo_list and dominfo_get Rob Hoes
2013-08-27 17:51       ` Ian Jackson
2013-08-22 10:51     ` [PATCH v2-resend 21/30] libxl: ocaml: implement some simple tests Rob Hoes
2013-08-27 17:52       ` Ian Jackson
2013-08-22 10:51     ` [PATCH v2-resend 22/30] libxl: ocaml: event management Rob Hoes
2013-08-27 17:56       ` Ian Jackson
2013-11-11 14:42         ` [PATCH v2-resend 22/30] libxl: ocaml: event management [and 1 more messages] Ian Jackson
2013-11-11 15:39           ` Rob Hoes
2013-11-12 14:56             ` Ian Jackson
2013-11-12 15:49               ` David Scott
2013-11-12 16:41                 ` Ian Jackson
2013-11-12 17:14               ` Rob Hoes
2013-11-12 17:18                 ` Ian Jackson
2013-11-14 17:39                   ` Rob Hoes
2013-11-14 18:08                     ` Ian Jackson
2013-11-26 18:03                       ` Rob Hoes
2013-11-28 16:46               ` Ian Jackson
2013-11-28 17:53                 ` Rob Hoes
2013-08-22 10:51     ` [PATCH v2-resend 23/30] libxl: ocaml: allow device operations to be called asynchronously Rob Hoes
2013-08-22 10:51     ` [PATCH v2-resend 24/30] libxl: ocaml: add NIC helper functions Rob Hoes
2013-08-22 10:51     ` [PATCH v2-resend 25/30] libxl: ocaml: add PCI device " Rob Hoes
2013-08-22 10:51     ` [PATCH v2-resend 26/30] libxl: ocaml: add disk and cdrom " Rob Hoes
2013-08-22 10:51     ` [PATCH v2-resend 27/30] libxl: ocaml: add VM lifecycle operations Rob Hoes
2013-08-22 10:51     ` [PATCH v2-resend 28/30] libxl: ocaml: in send_debug_keys, clean up before raising exception Rob Hoes
2013-08-22 10:51     ` [PATCH v2-resend 29/30] libxl: ocaml: provide defaults for libxl types Rob Hoes
2013-08-22 10:51     ` [PATCH v2-resend 30/30] libxl: ocaml: use CAMLlocal1 macro rather than value-type in auto-generated C-code Rob Hoes
2013-09-10 10:58     ` [PATCH v2-resend 00/30] libxl: ocaml: improve the bindings Ian Campbell
2013-09-10 11:02       ` Rob Hoes
2013-09-10 12:57         ` Ian Campbell
2013-09-10 13:06           ` Rob Hoes
2013-11-06 17:49 ` [PATCH v4 19/27] libxl: ocaml: allow device operations to be called asynchronously Rob Hoes
2013-11-06 17:49 ` [PATCH v4 20/27] libxl: ocaml: add NIC helper functions Rob Hoes
2013-11-11 14:43   ` Ian Campbell
2013-11-06 17:49 ` [PATCH v4 21/27] libxl: ocaml: add PCI device " Rob Hoes
2013-11-06 17:50 ` [PATCH v4 22/27] libxl: ocaml: add disk and cdrom " Rob Hoes
2013-11-11 14:44   ` Ian Campbell
2013-11-06 17:50 ` [PATCH v4 23/27] libxl: ocaml: add VM lifecycle operations Rob Hoes
2013-11-11 14:50   ` Ian Campbell
2013-11-11 15:54     ` Rob Hoes
2013-11-11 15:58       ` Ian Campbell
2013-11-12 12:27         ` Rob Hoes
2013-11-12 13:54           ` Ian Campbell
2013-11-12 14:09             ` Rob Hoes
2013-11-12 14:16               ` Ian Campbell
2013-11-12 14:18   ` Ian Campbell
2013-11-06 17:50 ` [PATCH v4 24/27] libxl: ocaml: in send_debug_keys, clean up before raising exception Rob Hoes
2013-11-06 17:50 ` [PATCH v4 25/27] libxl: ocaml: provide defaults for libxl types Rob Hoes
2013-11-06 17:50 ` [PATCH v4 26/27] libxl: ocaml: use CAMLlocal1 macro rather than value-type in auto-generated C-code Rob Hoes
2013-11-06 17:50 ` [PATCH v4 27/27] libxl: ocaml: add console reader functions Rob Hoes
2013-11-11 15:47 ` [PATCH v4 00/27] libxl: ocaml: improve the bindings Ian Campbell
2013-11-12 11:28   ` Rob Hoes
2013-11-20 17:15     ` Ian Campbell
2013-11-20 17:43       ` Rob Hoes

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=1377168678-25492-1-git-send-email-rob.hoes@citrix.com \
    --to=rob.hoes@citrix.com \
    --cc=ian.campbell@citrix.com \
    --cc=xen-devel@lists.xen.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).