From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id 5B6667EE35 for ; Mon, 21 Mar 2016 20:42:07 +0100 (CET) IronPort-PHdr: 9a23:SKT7qhL2C1ZG+0lHYNmcpTZWNBhigK39O0sv0rFitYgVKv/xwZ3uMQTl6Ol3ixeRBMOAu6IC0rOd6vq5EUU7or+/81k6OKRWUBEEjchE1ycBO+WiTXPBEfjxciYhF95DXlI2t1uyMExSBdqsLwaK+i760zceF13FOBZvIaytQ8iJ35Txjrn5oseKKyxzxxODIppKZC2sqgvQssREyaBDEY0WjiXzn31TZu5NznlpL1/A1zz158O34YIxu38I46Fp34d6XK77Z6U1S6BDRHRjajhtpZ6jiR6WRhee/nYHGjEdjgtQDhPt6BDhQoy3tSDzs+473zOVa4m+ZrkxXXyG7rx3AEvjgSIDcjo4633/i8pqjasdrgj39DJlxIuBQoyPOf9vNpLUedcdXSIVT89VUytZKoy5ZooLSeEGOLAL/MHGu1ISoE7mVkGXD+T1x2oN3yeu0A== Authentication-Results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=yallop@gmail.com; spf=Pass smtp.mailfrom=yallop@gmail.com; spf=None smtp.helo=postmaster@mail-qg0-f52.google.com Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of yallop@gmail.com) identity=pra; client-ip=209.85.192.52; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="yallop@gmail.com"; x-sender="yallop@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of yallop@gmail.com designates 209.85.192.52 as permitted sender) identity=mailfrom; client-ip=209.85.192.52; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="yallop@gmail.com"; x-sender="yallop@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-qg0-f52.google.com) identity=helo; client-ip=209.85.192.52; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="yallop@gmail.com"; x-sender="postmaster@mail-qg0-f52.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0B3BABmTfBWizTAVdFeg1E1egaoAAQDhySLAYFwIYUigXIHOhIBAQEBAQEBARABAQEICwsJHzGCLYItEQQZARseAxIQDwImAiQBEQEFASIBNIdvAQMSDqFQgTE+MYs2gWqCV4VMChknDVGEDwEXAQUKBW2RIoJWBZdXhXGIE4IwjFUCjUgRHoEPJw6CQYFRPC4BAQGKAwEBAQ X-IPAS-Result: A0B3BABmTfBWizTAVdFeg1E1egaoAAQDhySLAYFwIYUigXIHOhIBAQEBAQEBARABAQEICwsJHzGCLYItEQQZARseAxIQDwImAiQBEQEFASIBNIdvAQMSDqFQgTE+MYs2gWqCV4VMChknDVGEDwEXAQUKBW2RIoJWBZdXhXGIE4IwjFUCjUgRHoEPJw6CQYFRPC4BAQGKAwEBAQ X-IronPort-AV: E=Sophos;i="5.24,373,1454972400"; d="scan'208";a="209309438" Received: from mail-qg0-f52.google.com ([209.85.192.52]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/AES128-GCM-SHA256; 21 Mar 2016 20:42:06 +0100 Received: by mail-qg0-f52.google.com with SMTP id a36so129465124qge.0 for ; Mon, 21 Mar 2016 12:42:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to; bh=MeV7idDDwE5A+0yXRNNOOtRT7j0Z2RwSAJfubKqySPE=; b=w2lCDAOnJG614UKLBI3rXATJaQb0TOoo8mX6W9dAIBoyl9/crHSbC1C+7Qub4AXsDG y8z0m401H/y+ZpBTnkoYM9F+vagU6+tynrTQdHNgaCKZHMu4lBcFQXwTnq0J6Fr+QXS3 wpknO4TNDKiKPsruBh3GGSqmnQxJIoT7yurujc21IgFLD+M95LpcBGntXx3m3nYEoIPB A1HYNT51NALfTbLhEV+VlF1slrA+vM1hpxu0IMsEa1RjpS0E8XlEYU0MEvecF855wO17 PWU++Z4uAjf0BTgrKo1n+YFkVijjddfcyn+ZhHPEuaeCilaCYjoBMP2HKdqXICILVuJm IsSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to; bh=MeV7idDDwE5A+0yXRNNOOtRT7j0Z2RwSAJfubKqySPE=; b=YDdgzhOnAXTC5Wra76gC2CHeiEQHNZtY7gjE92bcmHZSNKNU17u302lrF5TsWzwKYf k7wtROV72f2lkIiS7OqAo3GBUFrkaLe9nVvReX+T6nnmhtJOpOSVD2zuIfKi4DeYzh2a anr/Q9mVpUsFUNdn/63qsDL/MsJZ/ggF7xc+G1E8C0Ujo4AxvFIGXS6CGYd42kL2m1+u WLQQ4wSSTBij6t4EY7LT/hUbv0fTKqsjRcVprM4vvzDZquk2vYSd9Qzeoy5XJhfCCs+9 nrq4bDngXJDQNhxsNRj53DIX/mplDCzv1l66XUtcvgmmjq4qxidOqWZSfknFhpMoKEHo ooPg== X-Gm-Message-State: AD7BkJLZKpzMN7xwOD5kaL662ajcOStlrWvjCUwVf3DLmdnQLG2nuBDsXn5sLYL/VBwKmtibGqKhtZ6ryqTntQ== MIME-Version: 1.0 X-Received: by 10.140.20.197 with SMTP id 63mr42124194qgj.18.1458589325299; Mon, 21 Mar 2016 12:42:05 -0700 (PDT) Received: by 10.55.104.66 with HTTP; Mon, 21 Mar 2016 12:42:05 -0700 (PDT) Date: Mon, 21 Mar 2016 19:42:05 +0000 Message-ID: From: Jeremy Yallop To: ctypes , Caml List Content-Type: text/plain; charset=UTF-8 Subject: [Caml-list] ANN: ocaml-ctypes 0.5.0, a library for calling C functions directly from OCaml I'm pleased to announce release 0.5.0 of ocaml-ctypes, which is now available on OPAM. == About ocaml-ctypes == The ocaml-ctypes library makes it possible to call C functions from OCaml without writing any C code. The core of the library is a set of combinators for describing C types -- scalars, functions, structs, unions, arrays, and pointers to values and functions. Type descriptions can then be used to bind native functions and values. Here's a simple example: # let puts = foreign "puts" (string @-> returning int);; val puts : string -> int = # puts "Hello, world!";; Hello, world! Ctypes includes many more features, including functions for retrieving constants, values and details about object layout from C, a way of building C libraries from OCaml modules, and a variety of binding strategies such as dynamic linking and static stub generation. Further information is available at the links below: Tutorial: https://github.com/ocamllabs/ocaml-ctypes/wiki/ctypes-tutorial Examples: https://github.com/ocamllabs/ocaml-ctypes/tree/master/examples Some packages using ctypes: http://opam.ocaml.org/packages/ctypes/ctypes.0.5.0/ API documentation: http://ocamllabs.github.io/ocaml-ctypes/ Github repository: https://github.com/ocamllabs/ocaml-ctypes Direct download: https://github.com/ocamllabs/ocaml-ctypes/archive/0.5.0.tar.gz == Selected new features in 0.5.0 == * Improved support for various standard C and POSIX integer types (time_t, ssize_t, ptrdiff_t, intptr_t, uint8_t, and many more). * Improved support for conversions between function pointers and other pointer types * Support for releasing the runtime lock in the Cstubs_inverted module. * An experimental interface for managing OCaml roots. See the release notes for the full list of changes: https://github.com/ocamllabs/ocaml-ctypes/blob/0.5.0/CHANGES.md == Thanks == I'm grateful to Andreas Hauptmann, David Sheets, Etienne Millon, Goswin von Brederlow, Leonid Rozenberg, @orbitz, Max Mouratov, and Peter Zotov for contributions to this release.