package pyml
 sectionYPositions = computeSectionYPositions($el), 10)"
  x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
  >
  
  
  OCaml bindings for Python
Install
    
    dune-project
 Dependency
Authors
Maintainers
Sources
  
    
      pyml.20220905.tar.gz
    
    
        
    
  
  
  
    
  
        sha512=7c3a37f9f396e02529769b3db824fc1e8ad63064a1abeaac52f7fbbc4ef698f8a56643e80afc446667f4e885c5a28a8b7e5f695aad126477e895be26eb30b005
    
    
  doc/CHANGES.html
[*] marks changes that break compatibility with previous versions.
2022-09-05
- Support for OCaml 5.0
- Support for Python 3.11. All OCaml exceptions raised in callbacks are now encapsulated with their backtrace in Python exceptions instead of bypassing the Python interpreter. The former behavior led to segmentation faults in the test-suite, and nothing indicate that previous versions of Python were supposed to support that well. The new behavior can break existing code, especially code relying on Py.Run.simple_string, which now catches all exceptions, including OCaml exceptions. If you need proper exception handling, you can usePy.Run.eval. (reported by Jerry James, https://github.com/thierry-martinez/pyml/issues/84)
- New function Py.Object.dir.
- New functions Py.Err.set_interruptand, for Python >=3.10,Py.Err.set_interrupt_ex.
- New functions Py.Dict.{to_bindings_seq, to_bindings_seq_map, to_bindings_string_seq}.
- New function Py.Capsule.create, equivalent toPy.Capsule.make, but returning the record{ wrap; unwrap }of the new type'a Py.Capsule.tinstead of a pair.
- Do not let pythoncapturesigintby default (can be changed by passing~python_sigint:truetoPy.initialize):Ctrl+Cnow interrupts the program, even afterPy.initializeis called. (reported by Arulselvan Madhavan, https://github.com/thierry-martinez/pyml/issues/83)
- Bindings for exceptions: PyExc_EncodingWarning(added in Python 3.10),PyExc_ResourceWarning(added in Python 3.2) (reported by Jerry James, https://github.com/thierry-martinez/pyml/issues/84)
- Fixes in bindings for PyCompilerFlags,PyMarshal_WriteObjectToFile, andPySet_Clear(reported by Jerry James, https://github.com/thierry-martinez/pyml/issues/84)
2022-06-15
- Numpy.to_bigarray_kis continuation-passing-style version of- Numpy.to_bigarray, allowing caller to convert Numpy arrays to bigarrays without having to know the kind and the layout of the array (suggested by Lindsay Errington and Andie Sigler, https://github.com/thierry-martinez/pyml/issues/81)
2022-03-25
- Fix debug build detection
- Expose the function Py.Callable.handle_errors
2022-03-22
- New function Py.Import.exec_code_module_from_string(suggested by Francois Berenger, https://github.com/thierry-martinez/pyml/issues/78)
- New function Py.Module.compileprovides a better API thanPy.compile.
- Py.Object.tcan now be serialized (with Marshal or output_value), using Python pickle module
- Cross-compiling friendly architecture detection (suggested by @EduardoRFS, https://discuss.ocaml.org/t/a-zoo-of-values-for-system/8525/20)
- Detect macro unixinstead of__linux__, to handle *BSD OSes (reported by Chris Pinnock, https://github.com/thierry-martinez/pyml/issues/74)
- Fix bug in Windows
- Null checks for many functions raising OCaml exceptions, instead of segmentation fault (initial implementation by Laurent Mazare, https://github.com/thierry-martinez/pyml/pull/72)
- Fix wide character conversion bugs leading to segmentation fault in Py_wfopen (fixed by Jerry James, https://github.com/thierry-martinez/pyml/pull/75)
- Gc.full_major ()before unloading- libpythonin- Py.finalize, to prevent segfaulting on finalizing dangling references to Python values after the library had been unloaded (reported by Denis Efremov on coccinelle mailing list)
- Fix segmentation fault when ~debug_build:truewas passed toPy.initialize(reported by Stéphane Glondu, https://github.com/thierry-martinez/pyml/issues/79)
2021-10-15
- More portable architecture detection (inspired by the discussion https://discuss.ocaml.org/t/a-zoo-of-values-for-system/8525 initiated by Olaf Hering, with helpful comments from Daniel Bünzli, @EduardoRFS, David Allsopp, kit-ty-kate and jbeckford)
- Better compatibility with Windows
- Correct version detection for Python 3.10
2021-09-24
- Use - duneas default build system (dunification done by Laurent Mazare, https://github.com/thierry-martinez/pyml/pull/28)- This should in particular fix build problems of reverse dependencies with the byte-code compiler (reported by @nicoTolly, https://github.com/thierry-martinez/pyml/issues/62) - Handle more platforms with dune (reported by Olaf Hering, https://github.com/thierry-martinez/pyml/issues/68)
- pyutilsis no longer used by generate and is shipped with- pymlpackage as it was the case with Makefile-based build system (reported by Olaf Hering, https://github.com/thierry-martinez/pyml/issues/69)
 
- Support for raising exceptions with traceback from OCaml (implemented by Laurent Mazare, https://github.com/thierry-martinez/pyml/pull/65)
- Fix soundness bug with numpy(reported by Richard Alligier, https://github.com/thierry-martinez/pyml/pull/65)
- Fix Py.Array.numpyarrays on 32-bit platforms (reported by Olaf Hering, https://github.com/thierry-martinez/pyml/pull/70)
- Fix soundness bug on strings with OCaml <4.06 (reported by OCaml CI)
2021-02-26
- Compatibility with Python 3.10 (reported by Richard W.M. Jones) - PyObject_AsCharBuffer,- PyObject_AsReadBuffer,- PyObject_AsWriteBufferbindings are marked optional as they have been removed in Python 3.10.
- Py_fopenis optional and- Py_wfopenis used instead if available.
 
- More general handling of Unix architectures. (Fixed by Pino Toscano, https://github.com/thierry-martinez/pyml/pull/57)
- Add Py.Setmodule for Python sets. (Added by Laurent Mazare, https://github.com/thierry-martinez/pyml/pull/58)
- Fix #61: Numpy.to_bigarrayraises an exception if source value is not a Numpy array instead of segfaulting. (Reported by Jonathan Laurent, https://github.com/thierry-martinez/pyml/issues/61)
- Fix #56, #59: Add python-configheuristics to find Python library. (Reported by Anders Thuné and Nils Becker, https://github.com/thierry-martinez/pyml/issues/56 https://github.com/thierry-martinez/pyml/issues/59)
- Fix import_module_optfor Python <3.6 (Reported by opam CI.)
2020-05-18
- Fix: Add an __iter__method to python iterators. (Fixed by Laurent Mazare, https://github.com/thierry-martinez/pyml/pull/47)
- Add Py.Seq.{of_seq_map, to_seq_map, unsafe_to_seq_map, of_list, of_list_map}functions.
- Remove Py.Import.cleanup, which has been removed from Python 3.9, and was marked "for internal use only" before. (Reported by Victor Stinner, https://github.com/thierry-martinez/pyml/issues/49)
- Fix: memory leak in pyml_wrap_closure(Fixed by Laurent Mazare, https://github.com/thierry-martinez/pyml/pull/53)
- Add Py.Module.set_docstring, for Python >=3.5. (Added by Laurent Mazare, https://github.com/thierry-martinez/pyml/pull/54)
- Fix: install .cmxfiles (Reported by Jonathan Laurent, https://github.com/thierry-martinez/pyml/issues/55)
2020-02-22
- Fix: do not fail if GIL functions are unavailable
- Fix: include stdcompat.hprovided with stdcompat version 13 for the prototype ofcaml_alloc_initialized_string.
- Fix: reference to the native plugin (.cmxs) in META
2020-01-15
- Compatible with OCaml 4.10.0.
- [PR 36] GC issue when registering a function with a dynamically allocated docstring. (Fixed by Laurent Mazare, https://github.com/thierry-martinez/pyml/pull/36)
- [PR 34] Ensure that every function starting with "CAMLparamK" ends with "CAMLreturnX". (Fixed by Xavier Clerc, https://github.com/thierry-martinez/pyml/pull/34)
- [GitHub issue #37] Fix test suite: 'list' object has no attribute 'clear' (Reported by Olaf Hering, https://github.com/thierry-martinez/pyml/issues/37)
- [PR 38] Check for executable called python3. (Fixed by Olaf Hering, https://github.com/thierry-martinez/pyml/pull/38)
- [PR 39] Expose is-instance and is-subclass. (Contribution by Laurent Mazare, https://github.com/thierry-martinez/pyml/pull/39)
- [PR 44] Expose some GIL functions (functions from the Python C API related to the global interpreter lock. (Contribution by Laurent Mazare, https://github.com/thierry-martinez/pyml/pull/44)
- Fix dynamic loading of stubs. (Fixed by Stéphane Glondu)
2019-06-26
- Support for debug build of Python library (Suggested by Arlen Cox: https://github.com/thierry-martinez/pyml/issues/18)
- Bug fix in pyml_check_symbol_available
- Py.compileis a wrapper for the built-in function- compile(Suggested by Dhruv Makwana: https://github.com/thierry-martinez/pyml/issues/25)
- Guarantees for structural and physical equalities on Py.Object.tare now documented. New predicates Py.is_none, Py.is_null, Py.Bool.is_true, Py.Bool.is_false, Py.Tuple.is_empty. (Suggested by Laurent Mazare: https://github.com/thierry-martinez/pyml/pull/31)
- Fix Py.Array.numpy to handle OCaml GC's moving the floatarray (Reported by Ilias Garnier: https://github.com/thierry-martinez/pyml/issues/30)
2018-05-30
- Py.importis an alias for- Py.Import.import_module.
- Use *_optnaming convention for the functions that return an option instead of an exception:Py.import_opt,Py.Object.find_opt,...
- of_seq/to_seq converters
- get_attr/get_attr_string now returns option type
- Indexing operators (for OCaml 4.06.0 and above) defined in Pyops
 sectionYPositions = computeSectionYPositions($el), 10)"
  x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
  >