package ctypes-foreign
- ctypes 0.22.0
- ctypes 0.21.1
- ctypes 0.21.0
- ctypes 0.20.2
- ctypes 0.20.1
- ctypes 0.20.0
- ctypes 0.19.1
- ctypes 0.19.0
- ctypes 0.18.0
- ctypes 0.17.1
- ctypes 0.17.0
- ctypes 0.16.0
- ctypes 0.15.1
- ctypes 0.15.0
- ctypes 0.14.0
- ctypes 0.13.1
- ctypes 0.13.0
- ctypes 0.12.1
- ctypes 0.12.0
- ctypes 0.11.4
- ctypes 0.11.3
- ctypes 0.11.2
- ctypes 0.11.1
- ctypes 0.11.0
- ctypes 0.10.2
- ctypes 0.10.1
- ctypes 0.10.0
- ctypes 0.9.2
- ctypes 0.9.1
- ctypes 0.9.0
- ctypes 0.8.0
- ctypes 0.7.0
- ctypes 0.6.2
- ctypes 0.6.1
- ctypes 0.6.0
- ctypes 0.5.1
- ctypes 0.5.0
- ctypes 0.4.2
- ctypes 0.4.1
- ctypes 0.4
- ctypes 0.3.4
- ctypes 0.3.3
- ctypes 0.3.2
- ctypes 0.3.1
- ctypes 0.3
- ctypes 0.2.3
- ctypes 0.2.2
- ctypes 0.2.1
- ctypes 0.2
- ctypes 0.1.1
- ctypes 0.1
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=cae47d815b27dd4c824a007f1145856044542fe2588d23a443ef4eefec360bf1
md5=b1af973ec9cf7867a63714e92df82f2a
doc/CHANGES.html
ctypes 0.23.0
- Support for 'const' and 'volatile' https://github.com/yallop/ocaml-ctypes/pull/780
- Make
stringa view ofptr (const char), notptr charhttps://github.com/yallop/ocaml-ctypes/pull/782 - Add
CArray.iterihttps://github.com/yallop/ocaml-ctypes/pull/775
Thanks to Antoine Provot (@Ant1-Provot) and @prgbln for contributions to this release.
ctypes 0.22.0
- Support for OCaml 5.2.0 https://github.com/yallop/ocaml-ctypes/pull/764
Thanks to Nick Roberts (@ncik-roberts) and Danny Willems (@dannywillems) for contributions to this release.
ctypes 0.21.1
- Add missing version information to dune-project
ctypes 0.21.0
- Switch to dune https://github.com/yallop/ocaml-ctypes/pull/588
Thanks to Anil Madhavapeddy (@avsm) and Etienne Millon (@emillon) for contributing to this release.
ctypes 0.20.2
- Restore compilation of cmxs for 5.0 https://github.com/yallop/ocaml-ctypes/pull/727
- Update build rules to make .o files a dependency of cmxs https://github.com/yallop/ocaml-ctypes/pull/723
- update CArray.of_string comment to accurately reflect the length https://github.com/yallop/ocaml-ctypes/pull/716
Thanks to @houseofsuns, @ygrek, Alpha Diallo (@moyodiallo), François Bobot (@bobot) and Alfredo Tupone (@atupone) for contributions to this release.
ctypes 0.20.1
- Fix warning 9 [missing-record-field-pattern] in generated OCaml code https://github.com/yallop/ocaml-ctypes/pull/700
Thanks to Antonin Décimo (@MisterDA) for contributing to this release.
ctypes 0.20.0
- Remove naked pointers from the Dl library https://github.com/yallop/ocaml-ctypes/pull/681
- Avoid running a full GC cycle on every FFI closure allocation https://github.com/yallop/ocaml-ctypes/pull/694
- Check output of
brew ls --versionswhen detecting homebrew https://github.com/yallop/ocaml-ctypes/pull/697
Thanks to Martin Kletzander (@nertpinx) and Arseniy Alekseyev (@aalekseyev) for contributions to this release.
ctypes 0.19.1
- Fix use of CAMLdrop in generated code https://github.com/yallop/ocaml-ctypes/pull/680
ctypes 0.19.0
- Drop compatibility with 4.02, and improve compatibility with Multicore OCaml https://github.com/yallop/ocaml-ctypes/pull/673
Thanks to Kate Deplaix (@kit-ty-kate) for contributing to this release.
ctypes 0.18.0
- Remove the
Unixdependency by usingbigarray-compathttps://github.com/yallop/ocaml-ctypes/pull/660 - Remove the threaded/unthreaded split in ctypes-foreign https://github.com/yallop/ocaml-ctypes/pull/651
- Eliminate some
constwarnings in generated code https://github.com/yallop/ocaml-ctypes/pull/646 https://github.com/yallop/ocaml-ctypes/pull/638 - Speed-up
CArray.makewith initial value https://github.com/yallop/ocaml-ctypes/pull/644 - Fix complex allocation size https://github.com/yallop/ocaml-ctypes/pull/642
- Report names of missing symbols also under windows https://github.com/yallop/ocaml-ctypes/pull/641
- Remove a level of boxing from struct and union values https://github.com/yallop/ocaml-ctypes/pull/640
- Fix a markup issue in the
funptrdocstring https://github.com/yallop/ocaml-ctypes/pull/633 - Move conf-pkg-config dependency to ctypes-foreign https://github.com/yallop/ocaml-ctypes/pull/631
Thanks to Andreas Hauptmann (@fdopen), Anil Madhavapeddy (@avsm), Anton Bachin (@aantron), Calascibetta Romain (@dinosaure), Sora Morimoto (@smorimoto) and and Stéphane Glondu (@glondu) for contributions to this release.
ctypes 0.17.1
- Hide the managed component in pointer values https://github.com/yallop/ocaml-ctypes/pull/629 (This is an internal-only change that addresses a problem introduced in 0.17.0)
ctypes 0.17.0
- ocaml_bytes now corresponds to 'unsigned char *', not 'char *' https://github.com/yallop/ocaml-ctypes/pull/625
- Distinguish bytes and string in generated stub code https://github.com/yallop/ocaml-ctypes/pull/622
- Reflect "managed" status in the types of fat pointers https://github.com/yallop/ocaml-ctypes/pull/619 (This is an internal-only change.)
ctypes 0.16.0
- Add
Foreign.dynamic_funptr, a variant ofForeign.funptrwith explicit life cycle management. https://github.com/yallop/ocaml-ctypes/pull/595 - fix ctypes-foreign depexts to work with opam 2 https://github.com/yallop/ocaml-ctypes/pull/617
- Build with -strict-sequence https://github.com/yallop/ocaml-ctypes/pull/613
Thanks to Andreas Hauptmann (@fdopen), Andrew Ray (@andrewray), Anil Madhavapeddy (@avsm), Armaël Guéneau (@Armael) and Matthias Horn (@tiash) for contributions to this release.
ctypes 0.15.1
- Fix <complex.h>-related compilation issues on FreeBSD https://github.com/yallop/ocaml-ctypes/pull/608
ctypes 0.15.0
- Avoid unaligned stores/loads https://github.com/yallop/ocaml-ctypes/pull/584
- Fix LDouble.to_int bug resulting from upstream Val_long change https://github.com/yallop/ocaml-ctypes/pull/583
- use CMPLX[FL]? macros instead of I https://github.com/yallop/ocaml-ctypes/pull/585
- Various Windows fixes https://github.com/yallop/ocaml-ctypes/pull/586
- Drop OCaml 4.01 support https://github.com/yallop/ocaml-ctypes/pull/577
- Eliminate uses of <complex.h> on Android https://github.com/yallop/ocaml-ctypes/pull/579
Thanks to Anton Bachin (@aantron), Andreas Hauptmann (@fdopen) and @ygrek for contributions to this release.
ctypes 0.14.0
- Add
CArray.of_stringhttps://github.com/yallop/ocaml-ctypes/pull/562 https://github.com/yallop/ocaml-ctypes/pull/563 - Attach ocaml_integers.h to the cstubs subpackage https://github.com/yallop/ocaml-ctypes/pull/557
- fix custom operations of ComplexL https://github.com/yallop/ocaml-ctypes/pull/549
Thanks to Andreas Hauptmann (@fdopen), Rudi Grinberg (@rgrinberg) and Marcello Seri (@mseri) for contributions to this release.
ctypes 0.13.1
- Add -no-keep-locs to the foreign-(un)?threaded build rules. https://github.com/yallop/ocaml-ctypes/pull/553
ctypes 0.13.0
- Print typedefed enums correctly https://github.com/yallop/ocaml-ctypes/pull/547
- Move the TYPE and FOREIGN signatures from cstubs to ctypes https://github.com/yallop/ocaml-ctypes/pull/544 https://github.com/yallop/ocaml-ctypes/pull/537
Thanks to Leo White (@lpw25) for contributing to this release.
ctypes 0.12.1
- Preserve intermediate values from views across foreign calls. https://github.com/yallop/ocaml-ctypes/pull/531
ctypes 0.12.0
- Support for Fortran-layout bigarrays https://github.com/yallop/ocaml-ctypes/pull/523
- Use the integers package for signed and unsigned integer support https://github.com/yallop/ocaml-ctypes/pull/515
- Add support for binding enums defined without tags https://github.com/yallop/ocaml-ctypes/pull/510
Thanks to Bertrand Bonnefoy-Claudet (@bbc2) and Leo White (@lpw25) for contributions to this release.
ctypes 0.11.4
- Fix function pointer support on no-exec platforms https://github.com/yallop/ocaml-ctypes/pull/511
Thanks to Matthias Horn (@tiash) for contributing to this release.
ctypes 0.11.3
- Stub out some
long doublefunctions that are not supported on NetBSD and OpenBSD https://github.com/yallop/ocaml-ctypes/pull/503 - Fix the build when shared libraries are not available https://github.com/yallop/ocaml-ctypes/pull/495
Thanks to Andreas Hauptmann (@fdopen) and Peter Zotov (@whitequark) for contributions to this release.
ctypes 0.11.2
Bug fixes
- Fix truncation in UInt64.of_int; remove other uses of
Val_int/Int_valhttps://github.com/yallop/ocaml-ctypes/pull/492
ctypes 0.11.1
Bug fixes
- Stub out some
long double complexfunctions that are not supported on Android https://github.com/yallop/ocaml-ctypes/pull/486
Thanks to Peter Zotov (@whitequark) and Jeremie Dimino (@diml) for contributions to this release.
ctypes 0.11.0
Features
- Support for the
long doubleandlong double complextypes https://github.com/yallop/ocaml-ctypes/pull/475 - Support for binding foreign arrays https://github.com/yallop/ocaml-ctypes/pull/470
- Improved printing for structs and unions without tags https://github.com/yallop/ocaml-ctypes/pull/467
- Added a function
is_nullhttps://github.com/yallop/ocaml-ctypes/pull/463
Bug fixes
- Custom operations (namely deserializing) for unsigned integers registered https://github.com/yallop/ocaml-ctypes/pull/480
- All objects kept live when the runtime lock is released https://github.com/yallop/ocaml-ctypes/pull/473
Thanks to Andrew Ray (@andrewray) and Yunxing Dai (@yunxing) for contributions to this release.
ctypes 0.10.2
Bug fixes
- Fix generated code for Lwt jobs where the return type is
void. https://github.com/yallop/ocaml-ctypes/pull/460
Thanks to David Sheets (@dsheets) for contributions to this release.
ctypes 0.10.1
Bug fixes
- Always extend integers returned from closures to full word size (Fixes incorrectly-promoted integers returned from callbacks on ARM and MIPS) https://github.com/yallop/ocaml-ctypes/pull/456
Thanks to Andreas Hauptmann (@fdopen) for contributions to this release.
ctypes 0.10.0
Features
- Windows support for registration of C threads from callbacks https://github.com/yallop/ocaml-ctypes/issues/450
- Auto-load custom printers in the OCaml toplevel https://github.com/yallop/ocaml-ctypes/issues/448
- Add some extra
CArrayfunctions:sub,copy,fold_right,fold_left,mapi,map,iterhttps://github.com/yallop/ocaml-ctypes/pull/323
Bug fixes
- Build fix for OpenBSD https://github.com/yallop/ocaml-ctypes/issues/454
- Fix for platforms (e.g. NetBSD) where standard integer types are defined as macros https://github.com/yallop/ocaml-ctypes/issues/453
- Add missing bounds check in
CArrayhttps://github.com/yallop/ocaml-ctypes/issues/447
Compatibility
- Dl.dlsym now returns
nativeint, notCtypes_ptr.voidphttps://github.com/yallop/ocaml-ctypes/issues/445
Thanks to Andreas Hauptmann (@fdopen) for contributions to this release.
ctypes 0.9.2
Bug fixes
- Revert a ctypes-foreign build regression in 0.9.1 https://github.com/yallop/ocaml-ctypes/pull/443
ctypes 0.9.1
Bug fixes
- Fix build rules on OpenBSD https://github.com/yallop/ocaml-ctypes/issues/428
- Fix a memory leak that occurs when passing closures to C https://github.com/yallop/ocaml-ctypes/issues/436
Thanks to Enguerrand Decorne (@engil) for contributing to this release.
ctypes 0.9.0
Features
- NetBSD support
- Support for releasing the runtime lock in generated stubs https://github.com/yallop/ocaml-ctypes/issues/429
- Support for Lwt_preemptive https://github.com/yallop/ocaml-ctypes/issues/430
Thanks to Martin Lucina (@mato) for contributing to this release.
ctypes 0.8.0
Features
- Use unboxed types for
uint8_tanduint16_thttps://github.com/yallop/ocaml-ctypes/issues/413 - Reset
errnoin Lwt jobs before invoking job function https://github.com/yallop/ocaml-ctypes/issues/426 - Add a
~thread_registrationargument tofunptrto support registering C threads with the OCaml runtime. https://github.com/yallop/ocaml-ctypes/issues/420
Bug fixes
- Use
-opaquefor module interfaces whosecmxfiles are not installed. https://github.com/yallop/ocaml-ctypes/issues/423 - Install
cstubscmxfiles. https://github.com/yallop/ocaml-ctypes/issues/424
Thanks to David Sheets (@dsheets) and Demi Obenour (@DemiMarie) for contributions to this release.
ctypes 0.7.0
Features
- Add support for bytecode-only architectures https://github.com/yallop/ocaml-ctypes/issues/410
- Add a new
sinttype corresponding to a full-range C integer and updateerrnosupport to usesinthttps://github.com/yallop/ocaml-ctypes/issues/411
Bug fixes
- Handle small integer return types correctly on big-endian platforms https://github.com/yallop/ocaml-ctypes/issues/404 https://github.com/yallop/ocaml-ctypes/issues/405
- Fix a bug with callbacks that return small types (less than a word) https://github.com/yallop/ocaml-ctypes/issues/405
Thanks to Stephane Glondu (@glondu) for contributions to this release.
ctypes 0.6.2
Bug fixes
- Fix for argument quoting in the Windows build after new cross compilation support https://github.com/yallop/ocaml-ctypes/pull/399
- Improve Lwt jobs support for functions with many or no arguments https://github.com/yallop/ocaml-ctypes/pull/400
Thanks to Andreas Hauptmann (@fdopen) for contributing to this release.
ctypes 0.6.1
Bug fixes
- Fix constructor qualification in code generated for inverted stubs: https://github.com/yallop/ocaml-ctypes/pull/397
ctypes 0.6.0
Features
The
Cstubs.FOREIGNinterface has been extended withreturningand@->, and some new types. See the pull request for details: https://github.com/yallop/ocaml-ctypes/pull/389NB: code that generates bindings using
Cstubsmay need to be updated to selectreturnand@->from the bindings functor argument rather than from theCtypesmodule. Code that needs to be updated will fail to compile with the new interface. The pull request shows how to update your code, if necessary.- The
Cstubsmodule can now generate asynchronous bindings to C functions using the Lwt jobs framework. See the pull request for details: https://github.com/yallop/ocaml-ctypes/pull/391 - The
Cstubsmodule now supports optionally returningerrnoalongside the return value of bound C functions. See the pull request for details: https://github.com/yallop/ocaml-ctypes/pull/392 - Cross-compilation support is improved: the configuration step no longer runs binaries on the host. See the pull request for details: https://github.com/yallop/ocaml-ctypes/pull/383
- The
Unsigned.Sinterface has newof_int64andto_int64functions.
Compatibility
- The deprecated
*:*and+:+functions have been removed. UseCtypes.fieldinstead. - OCaml 4.00.* is no longer supported. The earliest supported OCaml release is 4.01.0
Thanks to Spiros Eliopoulos (@seliopou), @orbitz, Leonid Rozenberg (@rleonid) and Peter Zotov (@whitequark) for contributions to this release.
ctypes 0.5.1
Bug fixes
- Use a C function, not
Pervasives.ignore, to keep values alive.
ctypes 0.5.0
Thanks to Andreas Hauptmann (@fdopen), David Sheets (@dsheets), Etienne Millon (@emillon), Goswin von Brederlow (@mrvn), Leonid Rozenberg (@rleonid), @orbitz, Max Mouratov (@cakeplus), and Peter Zotov (@whitequark) for contributions to this release.
Features
- Build and install
*.cmtand*.cmtifiles. - Expose
time_tas an unsigned value - Expose larger interfaces for POSIX types known to be integer types.
- Add support for 1- and 2-byte unsigned integer typedefs.
- Add support for 1-byte and 2-byte integer typedefs.
- Add a
Signed.Intmodule. - Expose more information in the
Uncoercibleexception. allocate_nnow defaults to zeroing its memory.Add public root management interface.
NB: the interface is experimental and subject to change.
- Look through views to add fields to structs and unions.
- Support signed arithmetic operations for
ssize_t. - Add support for
ptrdiff_tas a typedef for a signed integer type. - Support
intptr_tanduintptr_tas typedefs - Support coercions between object and function pointers.
- Add public
funptr_of_raw_addressfunction. - Support
static_funptrcoercions Add function pointers to the core type language
(See the
Ctypes_static.static_funptrtype, on whichForeign.funptrandForeign.foreignare now based.)- Better support for functions returning void with inverted stubs.
- Add support for releasing runtime lock to Cstubs_inverted.
Bug fixes
- Fix: inconsistent use of
caml_stat_*functions - Fix: a memory leak in
ctypes_caml_roots_release
ctypes 0.4.2
- Fix a bug involving access to local roots while the runtime lock was not held.
ctypes 0.4.1
Thanks to Etienne Millon (@emillon) for contributing to this release.
- Fix placement of docstring titles
- Add funptr's optional arguments to funptr_opt
- Fix a typo in libffi detection code
- Synchronize foreign.mli files (documentation)
ctypes 0.4
Thanks to A. Hauptmann (@fdopen), David Sheets (@dsheets), Maverick Woo (@maverickwoo), Peter Zotov (@whitequark), David Kaloper (@pqwy), Ramkumar Ramachandra (@artagnon), Thomas Braibant (@braibant), Hugo Heuzard (@hhugo) and Edwin Török (@edwintorok) for contributions to this release.
Major features
- Support for the C99 bool type
- Typedef support
- Enum support
- Support for accessing C globals with foreign_value in generated stubs
- Support for retrieving #define and enum constants from C
Windows support
There is now support for Windows (32-bit and 64-bit, using MinGW) and automatic building and testing on Windows using Appveyor.
Support for releasing the runtime lock in C calls
The new
release_runtime_lockargument toForeign.foreignindicates whether the OCaml runtime lock should be released during the call to the bound C function, allowing other threads to run.Support for acquiring the runtime lock in callbacks
There is a new
runtime_lockargument toForeign.funptr. Settingruntime_locktotrueindicates that the OCaml runtime lock should be acquired during calls from C to OCaml and released during calls through function pointers from OCaml to C.Support for passing 'bytes' values directly to C
See the relevant section of the FAQ.
- Add support for custom printers in views.
- Optionally obtain struct and union layout from C
Other changes
- string_opt wraps char *, not void *.
- Remove some poorly-supported POSIX types
- Use nativeint to represent pointers
- Support zero-argument callbacks
- findlib package naming: ctypes.foreign-base ~> ctypes.foreign.base &c.
- Make it possible to print a field name
- Better exception handling when using RTLD_NOLOAD
- RTLD_LOCAL support
- Changed the #include path to $(ocamlfind query ctypes)
- Renamed some internal modules to avoid name clashes
ctypes 0.3.4
Bug fixes
Thanks to Yakov Zaytsev (@ysz) for contributing to this release.
- fix printing for nullary function stubs
ctypes 0.3.3
Bug fixes
- respect
pbyte_offsetwith cstubs
ctypes 0.3.2
- Add bytes to the META "requires" field
ctypes 0.3.1
New features
- Support for 'bytes'
Bug fixes
- Avoid invalidated pointer access
ctypes 0.3
Thanks to Peter Zotov (@whitequark), David Sheets (@dsheets), Mike McClurg (@mcclurmc) and Anil Madhavapeddy (@avsm) for contributions to this release.
Major features
Support for passing OCaml strings directly to C
(Patch by Peter Zotov.)
The implications are discussed in the FAQ.
Support for generating C stubs from names and type declarations.
There are various examples available of packages which use stub support: see the fts example in the distribution (which uses a custom Makefile), this fork of async_ssl (which uses OCamlMakefile), and the cstubs branch of ocaml-lz4 (which uses oasis and ocamlbuild).
Support for turning OCaml modules into C libraries.
See the ocaml-ctypes-inverted-stubs-example repository for a sample project which exposes a part of Xmlm's API to C.
Other changes
- Add a function
string_from_ptrfor creating a string from an address and length. - Generate codes for libffi ABI specifications.
- Support for passing complex numbers to C using the stub generation backend.
- Add
raw_address_of_ptr, an inverse ofptr_of_raw_address. - Add a function
typ_of_bigarray_kindfor convertingBigarray.kindvalues toCtypes.typvalues. - Improved coercion support
Backwards incompatibilities
Arrayhas been renamed toCArray.
ctypes 0.2.3
Bug fixes
- Fix GC-related bug that shows up on OS X.
ctypes 0.2.2
- Don't install ctypes-foreign cmx files.
ctypes 0.2.1
- Bump META version
ctypes 0.2
Thanks to Ivan Gotovchits, Greg Perkins, Daniel Bünzli, Rob Hoes and Anil Madhavapeddy for contributions to this release.
Major features
Bigarray support.
See Bigarray types and Bigarray values for details.
Give the user control over the lifetime of closures passed to C.
See the FAQ for details.
Top level printing for C values and types
Loading the new findlib package ctypes.top in the toplevel will install custom printers for C types and values.
Other changes
- Basic coercion support
- Remove
returning_checking_errno; pass a flag toforeigninstead. - Add an optional argument to
Foreign.foreignthat ignores absent symbols. (Patch by Daniel Bünzli.) - More precise tests for whether types are 'passable'
- Compulsory names for structure and union fields (
*:*and+:+are deprecated, but still supported for now.) UInt32.of_int32,UInt32.to_int32,UInt64.of_int64, andUInt64.to_int64functions.- Finalisers for ctypes-allocated memory.
- Add a
string_optview (Patch by Rob Hoes.) - Add the 'camlint' basic type.
- Complex number support
- Abstract types now have names.
ctypes 0.1.1
Bug fixes
- Remove hard-coded alloc size
ctypes 0.1
initial release
- ctypes 0.22.0
- ctypes 0.21.1
- ctypes 0.21.0
- ctypes 0.20.2
- ctypes 0.20.1
- ctypes 0.20.0
- ctypes 0.19.1
- ctypes 0.19.0
- ctypes 0.18.0
- ctypes 0.17.1
- ctypes 0.17.0
- ctypes 0.16.0
- ctypes 0.15.1
- ctypes 0.15.0
- ctypes 0.14.0
- ctypes 0.13.1
- ctypes 0.13.0
- ctypes 0.12.1
- ctypes 0.12.0
- ctypes 0.11.4
- ctypes 0.11.3
- ctypes 0.11.2
- ctypes 0.11.1
- ctypes 0.11.0
- ctypes 0.10.2
- ctypes 0.10.1
- ctypes 0.10.0
- ctypes 0.9.2
- ctypes 0.9.1
- ctypes 0.9.0
- ctypes 0.8.0
- ctypes 0.7.0
- ctypes 0.6.2
- ctypes 0.6.1
- ctypes 0.6.0
- ctypes 0.5.1
- ctypes 0.5.0
- ctypes 0.4.2
- ctypes 0.4.1
- ctypes 0.4
- ctypes 0.3.4
- ctypes 0.3.3
- ctypes 0.3.2
- ctypes 0.3.1
- ctypes 0.3
- ctypes 0.2.3
- ctypes 0.2.2
- ctypes 0.2.1
- ctypes 0.2
- ctypes 0.1.1
- ctypes 0.1