Commit Graph

189 Commits

Author SHA1 Message Date
Icxolu 72be1cddba
emit `cargo:rustc-check-cfg=CHECK_CFG` for `pyo3`s config names (#4163) 2024-05-08 05:46:00 +00:00
Alex Gaynor 9e1960ea34
Update MSRV to 1.63 (#4129)
* Bump MSRV to 1.63

* Drop parking_lot in favor of std::sync

* Make portable-atomic dep conditional

* Remove no longer required cfg
2024-04-28 16:11:28 +00:00
David Matos c66ed292ec
Disable PyUnicode_DATA on PyPy (#4116)
* Disable PYUNICODE_DATA on PyPy

* Add newsfragment

* Adjust import on PyString
2024-04-26 06:00:13 +00:00
Georg Brandl c2ac9a98e2
fix vectorcall argument handling (#4104)
Fixes #4093

- Make PY_VECTORCALL_ARGUMENTS_OFFSET a size_t like on CPython
- Remove the assert in PyVectorcall_NARGS and use checked cast
2024-04-22 08:56:39 +00:00
David Hewitt 2c205d4586
release notes for 0.21.2 (#4091) 2024-04-18 08:59:02 +00:00
Adam Reichold 721100a9e9
Suppress non_local_definitions lint as we often want the non-local effects in macro code (#4074)
* Resolve references to legacy numerical constants and use the associated constants instead

* Suppress non_local_definitions lint as we often want the non-local effects in macro code
2024-04-13 12:59:44 +00:00
David Hewitt c1f11fb4bd
release: 0.21.1 (#4032) 2024-04-01 18:51:58 +00:00
David Hewitt 1be2fad9bf
release: 0.21.0 (#3983) 2024-03-25 23:36:08 +00:00
Tim Felgentreff 9a38e709bb
Basic GraalPy Support (#3247)
* graalpy: recognize graalpy implementation when building

* graalpy: global Ellipse, None, NotImplemented, True, and False are only available as pointers

* graalpy: PyObject struct is opaque, use functions for everything

* graalpy: missing many of the same functions as pypy

* graalpy: do not have 128bit conversion functions

* graalpy: add functions for datetime accessor macros

* graalpy: add implementations for list macro functions

* graalpy: skip tuple macros

* graalpy: always use extern Py_CompileString function

* graalpy: disable assertion that does not apply to graalpy

* graalpy: floatobject structure is opaque on graalpy

* graalpy: ignore gc dependent test

* graalpy: add CI config

* graalpy: run rust fmt

* graalpy: add changelog entry

* graalpy: discover interpreter on PATH

* graalpy: interpreter id is not applicable to graalpy (just like pypy)

* graalpy: skip tests that cannot work on GraalPy

* graalpy: fix constructing normalized Err instances

Co-authored-by: David Hewitt <mail@davidhewitt.dev>

* graalpy: correct capi library name, but skip rust tests due to missing symbols

* graalpy: no support for C extensions on windows in latest release

* graalpy: declare support versions

* graalpy: frame, code, method, and function objects access from C API is mostly missing

* graalpy: take care only to expose C structure that GraalPy allocates

* graalpy: Bail out if graalpy version is less than what we support

---------

Co-authored-by: David Hewitt <mail@davidhewitt.dev>
2024-03-25 18:54:52 +00:00
David Hewitt caf80eca66
handle clippy `new_without_default` warnings (#3971)
* handle clippy `new_without_default` warnings

* add newsfragment
2024-03-19 21:41:27 +00:00
David Hewitt 67b1b35013
release: 0.21.0-beta.0 (#3944) 2024-03-10 22:16:18 +00:00
David Hewitt 75af678f43
docs: use kebab-case instead of snake_case for guide URLs (#3942)
* guide: use kebab-case instead of snake_case

* fixup doctest names

Co-authored-by: Icxolu <10486322+Icxolu@users.noreply.github.com>

* review: Icxolu

* fix relative url

* also remap latest pyo3

* fixup python_from_rust

---------

Co-authored-by: Icxolu <10486322+Icxolu@users.noreply.github.com>
2024-03-09 20:10:58 +00:00
Thomas Tanon 0f7ddb19a5
PyPy: remove PyCode (PyCode_Type does not exist) (#3934) 2024-03-06 18:19:43 +00:00
David Hewitt f5eafe23f2
add maximum Python version check (#3821)
* add maximum Python version check

* restore dependency of `pyo3-macros-backend` on `pyo3-build-config`

* fix clippy-all noxfile job
2024-02-13 21:52:53 +00:00
David Hewitt 11b5ae7f5f update ffi structures for PyPy 7.3.15 2024-01-23 20:34:19 +00:00
jadedpasta 83f0f22efe ffi: Add definition for PyType_GetModuleByDef
This API is available starting in 3.11. It is not part of the Stable ABI.

PyType_GetModuleByDef searches the MRO of the given type for a module
matching the given module spec. It can be useful for users use that
`pyo3_ffi` directly and want to support multiple interpreters/per
interpreter GIL. It is useful to obtain access to the module state from
special methods like `tp_new` that can't use the METH_METHOD calling
convention.

This API is not supported on PyPy yet, but guess the symbol name for the future.
2024-01-12 22:13:33 -06:00
David Hewitt 8fef7a5848 fix size of pypy private fields in Py_buffer definition 2024-01-12 15:59:14 +00:00
Adam Reichold 03285835bb
Use a definite version specification when depending on pyo3-build-config.
We already do this for other internal pyo3-* dependencies and it seems prudent
to apply this to pyo3-build-config as well.
2024-01-02 09:32:38 +01:00
Alex Gaynor d92792f8ad Fixes #3645 -- added `abi3-py312` feature 2023-12-21 10:40:14 -05:00
messense 28dda997f9
Add additional definitions for `_PyImport_Frozen*` 2023-12-03 21:47:00 +08:00
David Hewitt 41842f9e4b fix pyo3-ffi beta clippy warnings 2023-11-28 07:29:45 +00:00
David Hewitt 4a43b2f454 bump version to 0.21.0-dev 2023-11-19 06:41:10 +00:00
David Hewitt a9305ab389 ci: move lints to new 1.74 cargo.toml tables 2023-11-17 15:41:52 +00:00
David Hewitt 29ad73b6d5 ci: updates for rust 1.74 2023-11-16 16:06:01 +00:00
Adam Reichold 2b91fea94f
Merge pull request #3548 from davidhewitt/nightly-code
ci: fix nightly unused import warning
2023-10-26 06:01:18 +00:00
David Hewitt 572a27d2d3 ci: fix nightly unused import warnings 2023-10-25 23:30:14 +01:00
David Hewitt e284f3669f add coverage for `emit_pyo3_cfgs` 2023-10-25 22:59:43 +01:00
messense dca18b3e41
Fix `PyMemoryView_FromBuffer` cfg 2023-10-15 22:24:58 +08:00
messense 5b94241bd7
Add `PyMemoryView` type 2023-10-15 17:32:09 +08:00
David Hewitt c77deee18e release: 0.20.0 2023-10-11 14:39:19 +02:00
Erle Carrara 0e0e6623f3
fix _PyFrameEvalFunction. Since python 3.11 it receives a `_PyInterpreterFrame` 2023-10-09 23:36:01 -03:00
mejrs 0cccb9f64b add PyInterpreterConfig api 2023-10-08 22:38:11 +02:00
messense 2d3dc65428
Merge pull request #3497 from davidhewitt/ci-3.12-debug
bump test-debug to 3.12
2023-10-05 03:14:05 +00:00
David Hewitt cbd7370b20
Merge pull request #3490 from davidhewitt/ffi-marshal-limited
disable `marshal.rs` on `Py_LIMITED_API`
2023-10-04 19:05:01 +00:00
David Hewitt 6c6c607ad3 bump test-debug to 3.12 2023-10-04 19:58:27 +01:00
mejrs aa011f4a9d Update PyModuleDef_Slot types 2023-10-03 23:25:45 +02:00
David Hewitt c80a61ee30 disable `marshal.rs` on `Py_LIMITED_API` 2023-10-02 21:36:17 +01:00
David Hewitt bcb01049cc
Merge pull request #3404 from davidhewitt/fix-dealloc
call PyObject_GC_Untrack before deallocating
2023-09-11 05:18:34 +00:00
David Hewitt fc6e22a554 Fix name of `_Py_LocalMonitors` in latest 3.12 RCs 2023-09-10 22:14:29 +02:00
David Hewitt e28403e772 call PyObject_GC_Untrack before deallocating 2023-09-09 22:29:58 +01:00
David Hewitt ad042f3bae add comments to ffi def structures
Co-authored-by: Bruno Kolenbrander <59372212+mejrs@users.noreply.github.com>
2023-09-06 08:56:51 +01:00
David Hewitt 9336e5b605
Merge pull request #3403 from davidhewitt/ffi-objimpl
update definitions for objimpl.h
2023-08-19 12:02:32 +00:00
Adam Reichold e6293a9608
Merge pull request #3405 from davidhewitt/debug-3.11
fix compile warning on pre-3.12 debug builds
2023-08-19 05:25:57 +00:00
David Hewitt 69475b0a83 update definitions for objimpl.h 2023-08-18 22:17:53 +01:00
David Hewitt 7fce07935c fix compile warning on pre-3.12 debug builds 2023-08-18 22:15:29 +01:00
David Hewitt eba2c59778 tidy up some file locations after dual licensing 2023-08-16 08:22:51 +01:00
David Hewitt ff823ac3df
Merge pull request #3390 from puradox/fix/ffi-license
Replace pyo3-ffi LICENSE with ACKNOWLEDGEMENTS
2023-08-15 23:07:55 +00:00
Sam Balana 0607905771
Replace pyo3-ffi LICENSE with ACKNOWLEDGEMENTS
Replace the Python license from pyo3-ffi/LICENSE with an
ACKNOWLEDGEMENTS file. Relicense under the parent Apache 2.0 license.

pyo3-ffi contains a Rust reproduction of the CPython header files, only
copying what is absolutely necessary for binary compatibility. As such,
it is unnecessary to include the Python license.

Fixes #3124
2023-08-15 15:29:53 -07:00
DataTriny 3c3e9401a3 Dual-license 2023-08-15 23:39:45 +02:00
David Hewitt b0f5901ce3 update structmember.rs for Python 3.12 2023-08-11 11:54:16 +01:00