Commit Graph

4342 Commits

Author SHA1 Message Date
David Hewitt 3b45170824
Merge pull request #2282 from ravenexp/python3-dll-a
pyo3-build-config: Add `python3-dll-a` crate support
2022-04-11 18:54:54 +01:00
Adam Reichold dc5a6702a3
Merge pull request #2291 from PyO3/contributors
Add Nox session to retrieve sorted list of contributors.
2022-04-11 10:08:02 +02:00
Adam Reichold 851e43bc1a Add Nox session to retrieve sorted list of contributors. 2022-04-11 08:57:00 +02:00
Sergey Kvachonok 4347624bd3 Mention `generate-abi3-import-lib` in the features guide
Update the feature list section of the user guide
to include `generate-abi3-import-lib` description.
2022-04-11 09:56:52 +03:00
messense 75ea171927
Use `cargo-xwin` to test windows msvc cross compilation 2022-04-11 00:19:20 +08:00
messense 4ba11f7615
Add a windows msvc cross compilation test 2022-04-10 23:17:21 +08:00
Adam Reichold 551db72b55
Merge pull request #2279 from PyO3/extract-error-is-slow
Add benchmark highlighting the costs of failed calls to FromPyObject::extract.
2022-04-10 17:10:50 +02:00
messense 8368c62858
maturin still requires a Python interpreter on Windows for now
Switch from Python 3.10 to Python 3.8 because I don't want to test with Rust 1.48.0
2022-04-10 22:29:52 +08:00
messense eb6b6457e2
Enable `generate-abi3-import-lib` feature for maturin-starter when abi3
feature is enabled
2022-04-10 22:11:04 +08:00
messense c5ca6d040b
Add Windows abi3 wheel cross comiplation test 2022-04-10 22:05:30 +08:00
Sergey Kvachonok c84cecc1f7 Add a ChangeLog entry for `generate-abi3-import-lib` 2022-04-10 16:47:18 +03:00
Sergey Kvachonok a7c0de3628 Document `generate-abi3-import-lib` crate feature
Update the user guide to describe its applicability to the native
and cross-compilation build scenarios.
2022-04-10 16:45:32 +03:00
Sergey Kvachonok 479fe6781f pyo3-build-config: Add `python3-dll-a` crate support
Automatically generate `python3.dll` import libraries for Windows
compile targets in the build script.

Adds a new PyO3 crate feature `generate-abi3-import-lib` enabling
automatic import library generation.

Closes #2231
2022-04-10 16:45:32 +03:00
David Hewitt e6901e344e
Merge pull request #2289 from davidhewitt/fix-get-tzinfo
ffi: fix segfault in _GET_TZINFO methods
2022-04-10 13:18:40 +01:00
Adam Reichold 10c285b283 Add PyDowncastErrorArguments to delay formatting downcast errors. 2022-04-10 13:13:03 +02:00
Adam Reichold 74e93a2c29 Add benchmark highlighting the costs of failed calls to FromPyObject::extract. 2022-04-10 13:04:27 +02:00
David Hewitt 1d9d60a766 ffi: fix segfault in _GET_TZINFO methods 2022-04-10 10:27:50 +01:00
David Hewitt 2a54641d91
Merge pull request #2288 from ravenexp/fix-py37-abi-version
pyo3-build-config: Use "m" ABI tag for libpython 3.7 by default
2022-04-09 11:52:51 +01:00
Sergey Kvachonok 8f9976ad33 pyo3-build-config: Use "m" ABI tag for libpython-3.7 by default
According to https://bugs.python.org/issue36707, this tag is useless
since version 3.4, but also the default until version 3.8.

For example, Debian 10 ships `libpython3.7m.so`.
2022-04-09 13:28:44 +03:00
David Hewitt 1971dd7a8a
Merge pull request #2286 from RicoHageman/main
Gather test coverage with stable rust
2022-04-08 19:28:13 +01:00
Rico Hageman fe2f83913b Remove nightly toolchain check 2022-04-08 19:23:39 +02:00
David Hewitt 749fe6c4bb
Merge pull request #2285 from PyO3/spin-loop-hint
Replace unhinted spin loops by sleeping events.
2022-04-08 16:15:16 +01:00
Rico Hageman c281275a29 Gather test coverage with stable rust 2022-04-08 14:24:10 +02:00
Adam Reichold 6a4ebbf2d7 Replace unhinted spin loops by sleeping events. 2022-04-08 11:16:40 +02:00
David Hewitt 209221890c
Merge pull request #2284 from mejrs/rust160
Rust 1.60
2022-04-08 07:45:15 +01:00
mejrs 4fc0cdd636 Fix ui test 2022-04-07 23:56:15 +02:00
mejrs 2eb51ceba9 Make clippy happy 2022-04-07 23:14:45 +02:00
David Hewitt d13a4982b5
Merge pull request #2276 from ravenexp/inline-no-python
pyo3-build-config: Inline the `PYO3_NO_PYTHON` switch
2022-04-06 08:31:29 +01:00
Sergey Kvachonok 29476b0d0d pyo3-build-config: Inline the `PYO3_NO_PYTHON` switch
This patch folds the `PYO3_NO_PYTHON` + `abi3` special case into
the existing native and cross compilation code paths.

The cross compilation route is now guaranteed to behave the same
whether `PYO3_NO_PYTHON` is set or not (except for sysconfigdata
discovery for the Unix targets).

The native compilation route now stores the hardcoded abi3 interpreter
configuration in place of the discovered configuration blob.
2022-04-05 17:19:49 +03:00
David Hewitt 0f868e7fa5
Merge pull request #2267 from PyO3/release-0.16.3
release: 0.16.3
2022-04-05 09:20:05 +01:00
David Hewitt 1ae0971a09 release: 0.16.3 2022-04-05 04:05:57 +01:00
David Hewitt 9774a7c1c1
Merge pull request #2273 from PyO3/dog-food-intern
Make use of intern! macro for attribute names used internally
2022-04-05 00:41:35 +01:00
David Hewitt d3ac71a42b
Merge pull request #2269 from PyO3/intern-macro
RFC: Add intern! macro which can be used to amortize the cost of creating Python objects by storing them inside a GILOnceCell.
2022-04-05 00:34:37 +01:00
Adam Reichold f02a060a3d Add a hint on using intern! to Py{,Any}::{set,get}attr. 2022-04-04 23:11:38 +02:00
Adam Reichold 2c95b3abb4 Intern the attribute names used by the derive macro for FromPyObject. 2022-04-04 22:26:14 +02:00
Adam Reichold 5434bbc3f6 Intern the __all__ and __name__ identifiers used by PyModule. 2022-04-04 22:26:14 +02:00
Adam Reichold 821b28daff Intern the __qualname__ identifier used by PyType::name. 2022-04-04 22:05:03 +02:00
Adam Reichold 89577a27d9 Isolate interned strings from their dynamic environment to avoid calling multiple times them with different text values yielding inconsistent results. 2022-04-04 22:04:46 +02:00
David Hewitt 981eb2d90e
Merge pull request #2265 from davidhewitt/pyclass-mapping
pyclass: mapping flag
2022-04-04 19:54:37 +01:00
Adam Reichold 7b99af9b34 Execute the example for intern macro to ensure it is correct. 2022-04-04 20:25:47 +02:00
Adam Reichold 30d414fd49 Add intern macro to hygiene tests and ensure it can handle stringified identifiers. 2022-04-04 18:53:31 +02:00
David Hewitt 9f3ccff8c9 guide: improve documentation for `#[pyclass(mapping)]` 2022-04-04 15:51:01 +01:00
David Hewitt 4e5c874dba
Merge pull request #2272 from ravenexp/cross-python-implementation
pyo3-build-config: Add `PYO3_CROSS_PYTHON_IMPLEMENTATION` env var
2022-04-04 15:27:31 +01:00
Sergey Kvachonok 80675361f4 pyo3-build-config: Add `PYO3_CROSS_PYTHON_IMPLEMENTATION` env var
Adds a new cross-compile target interpreter configuration
environment variable.

This feature allows PyO3 to target PyPy on both Windows and Unix
cross compile targets.
2022-04-04 15:23:11 +03:00
Adam Reichold f777372eed Limit the intern! macro to strings and intern the string contents in addition to the reference. 2022-04-04 10:11:52 +02:00
Adam Reichold 125bf416a2 Separate the fast and slow path of GILOnceCell::get_or_init. 2022-04-03 21:18:09 +02:00
Adam Reichold db109867d3 Add intern! macro which can be used to amortize the cost of creating Python objects by storing them inside a GILOnceCell. 2022-04-03 21:16:42 +02:00
Adam Reichold d3dcbd72ba
Add PyString::intern to enable access to Python's built-in string interning. (#2268) 2022-04-03 21:07:58 +02:00
David Hewitt 040ce8616b
Merge pull request #2241 from ravenexp/cross-compile
pyo3-build-config: Make `PYO3_CROSS_LIB_DIR` optional
2022-04-02 20:59:08 +01:00
David Hewitt c16cc35b30 pyclass: mapping flag 2022-04-02 16:15:44 +01:00