Commit graph

3601 commits

Author SHA1 Message Date
Erik Johnston 672cf62272 Fix memory leak when converting to u128 and i128 2021-05-26 12:19:46 +01:00
messense 5523ad6d5b
Merge pull request #1633 from davidhewitt/async-fn-error
pyfunction: better error message with `async fn`
2021-05-26 14:33:52 +08:00
messense fa07a5e377 Migrate all benchmark to criterion 2021-05-26 14:25:00 +08:00
messense 0acc8bdd12
Merge pull request #1630 from davidhewitt/module-init
pymodule: tidy up module init
2021-05-26 12:57:47 +08:00
messense b3946c3f78
Merge pull request #1629 from davidhewitt/changelog-fixes
changelog: fix missing bits
2021-05-25 18:36:40 +08:00
David Hewitt 9f74336bc9 pyfunction: better error message with async fn 2021-05-25 11:32:52 +01:00
David Hewitt 3e87ea3593 pymodule: don't call PyEval_InitThreads 2021-05-25 11:02:16 +01:00
David Hewitt 355bd0c336 pymodule: tidy up module init 2021-05-25 10:54:16 +01:00
David Hewitt f4dfafa07b changelog: fix missing bits 2021-05-25 07:32:47 +01:00
David Hewitt 9a4e7b5877
Merge pull request #1622 from davidhewitt/pyo3-build-config
pyo3-build-config: new crate to re-use build.rs across crates
2021-05-25 07:11:24 +01:00
David Hewitt 1e1605f0db pyo3-build-config: finish docs 2021-05-24 08:44:20 +01:00
David Hewitt cfdd535eea
Merge pull request #1610 from davidhewitt/pyfn-name
pyfn: deprecate name argument
2021-05-23 23:08:43 +01:00
David Hewitt 284ad1f98a pyo3-build-config: fix build 2021-05-21 23:05:36 +01:00
David Hewitt 6def8fe714 pyo3-build-config: check python version and architecture in PyO3 crate 2021-05-21 08:40:43 +01:00
David Hewitt 825ec08681 pyo3-build-config: docs wip 2021-05-21 08:34:51 +01:00
David Hewitt 7b72dd7a8a
Merge pull request #1621 from birkenfeld/callable_doc
Remove overly specific advice in `callable` docstring
2021-05-21 07:20:30 +01:00
David Hewitt c168466d1f
Merge pull request #1620 from mejrs/pyany
pyany documentation
2021-05-21 07:19:32 +01:00
Georg Brandl ff46b6f30a Reword advice on avoiding callable() 2021-05-20 16:46:07 +02:00
mejrs f0a6a062eb added suggested changes 2021-05-20 15:04:36 +02:00
David Hewitt 79c7149d52 pyo3-build-config: new crate to re-use build.rs across crates 2021-05-20 09:03:33 +01:00
David Hewitt a109640850 pyfn: deprecate name argument 2021-05-20 08:54:29 +01:00
mejrs dac260403a pyany documentation 2021-05-19 23:46:11 +02:00
David Hewitt 8bb72a711a
Merge pull request #1613 from davidhewitt/inline-callback
callback: add `#[inline]` to callback conversion code
2021-05-19 20:57:42 +01:00
Georg Brandl 95d7fa27be
Merge pull request #1617 from birkenfeld/simple_args_bench
pyo3_benchmarks: add a benchmark for the "only simple args" case
2021-05-19 11:44:21 +02:00
Georg Brandl 473474cae7 pyo3_benchmarks: add a benchmark for the "only simple args" case
This is the case that will be helped by fastcall support,
so add it first as a baseline.
2021-05-19 08:17:33 +02:00
Georg Brandl ea0fdb4928
Merge pull request #1615 from birkenfeld/new_clippy 2021-05-17 14:58:34 +02:00
Georg Brandl d9beb1c11f
Merge pull request #1614 from birkenfeld/double_clippy
Fix clippy ignore directives
2021-05-17 10:40:11 +02:00
Georg Brandl 4539e3524b Fix new-in-nightly clippy warning
Example:

error: used `assert_eq!` with a literal bool
   --> src/types/sequence.rs:675:9
    |
675 |         assert_eq!(empty_seq.is_empty().unwrap(), true);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `assert!(..)`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison
2021-05-17 09:59:40 +02:00
Georg Brandl 698dbe038e Fix clippy ignore directives 2021-05-17 09:45:34 +02:00
David Hewitt 51ba541a18
Merge pull request #1609 from davidhewitt/bench-gil
benches: add bench_gil
2021-05-17 08:27:14 +01:00
David Hewitt cb2b70bb8d callback: add #[inline] to callback conversion code 2021-05-17 08:14:05 +01:00
David Hewitt 6f63f63c21
Merge pull request #1612 from birkenfeld/pyfn_noargs
pyfunction: use METH_NOARGS for no-argument functions
2021-05-17 07:49:21 +01:00
David Hewitt 0cc77c77b2 benches: add bench_gil 2021-05-17 07:37:03 +01:00
Georg Brandl f6e4399f26 pyfunction: use METH_NOARGS for no-argument functions
As suggested in #1607.

If I ran the benchmarks correctly, this shaves only about 5ns from
the noargs case.  But since it's relatively easy to do...
2021-05-17 07:53:24 +02:00
Georg Brandl 1c557a52cd
Merge pull request #1611 from TheGhostHuCodes/fix-doc-typos
Fix typos in Architecture and Contributing docs
2021-05-17 07:06:20 +02:00
Yung-Jin (Joey) Hu edb3d0d03b Fix typos in Architecture and Contributing docs 2021-05-16 19:49:23 -07:00
David Hewitt c4b19c7e7c
Merge pull request #1604 from 1tgr/shrink
Improve compilation times for projects using PyO3
2021-05-16 07:18:33 +01:00
David Hewitt 85f1055db8
Merge pull request #1605 from goodbyekansas/cross-compile-wasm
Add support for cross compilation for wasm/wasi
2021-05-16 07:15:02 +01:00
David Hewitt c48e5b08ea
Merge pull request #1608 from alex/opt-no-args
Reduce function calling overhead by ~25% in ReferencePool::update_counts:
2021-05-15 21:11:08 +01:00
Alex Gaynor 56973d762b Reduce function calling overhead by ~25% in ReferencePool::update_counts:
1) Place both increfs and decrefs behind a single mutex, rather than two. Even uncontended mutexes aren't free to acquire.
2) Keep a dirty tracking bool to avoid acquiring any mutexes at all in the common case of no modifications (because everything happened with the GIL held)
2021-05-15 13:19:51 -04:00
Tim Robinson 50352f9137 Apply review suggestions 2021-05-15 10:34:34 +01:00
Simon Rainerson b0f7145f9c Add support for cross compilation for wasm/wasi
When using rust after this commit
1a491e2304
the target family for wasm targets is now set to "wasm". Also fix the
assumption that OsStrExt lives inside std::os::unix for all non-windows
targets.
2021-05-14 14:38:28 +02:00
Tim Robinson 735a9a1156 Update for_each_proto_slot for consistency 2021-05-13 17:32:59 +01:00
Tim Robinson c803033f5e Add to CHANGELOG 2021-05-13 13:17:56 +01:00
Tim Robinson c3b935f06c Reduce size of compiled code for class initialization 2021-05-13 13:08:58 +01:00
Tim Robinson 95636f1ba7 Reduce size of compiled code for methods 2021-05-13 13:06:38 +01:00
Tim Robinson 32dc93e389 Shorten typical argument extraction checks 2021-05-13 13:06:38 +01:00
mejrs 1ae3d87973
More docs+examples (freelist, pyany, pymodule, puthon::check_signals) (#1600)
* expanded freelist docs

* added check_signals doc example

* added doc examples for pyany methods

* doc examples for pymodule + deprecate add_wrapped

* fixed tabs+whitespace...

* stronger wording on running signal handler code

Co-authored-by: Georg Brandl <georg@python.org>

* fix keyboardinterrupt spelling

Co-authored-by: Georg Brandl <georg@python.org>

* remove semicolon

Co-authored-by: Georg Brandl <georg@python.org>

* add space

Co-authored-by: Georg Brandl <georg@python.org>

* add space

Co-authored-by: Georg Brandl <georg@python.org>

* added suggested changes

* fixed doctest

* fixed triple backslash

Co-authored-by: David Hewitt <1939362+davidhewitt@users.noreply.github.com>

* spacing inside struct

Co-authored-by: David Hewitt <1939362+davidhewitt@users.noreply.github.com>

* use ? rather than unwrap in doc examples

Co-authored-by: David Hewitt <1939362+davidhewitt@users.noreply.github.com>

* remove use of "we", "us", "you" from docs

Co-authored-by: David Hewitt <1939362+davidhewitt@users.noreply.github.com>

* add that freelist shouldnt be impl'd by users

* added suggested changes

Co-authored-by: Georg Brandl <georg@python.org>
Co-authored-by: David Hewitt <1939362+davidhewitt@users.noreply.github.com>
2021-05-12 07:32:46 +01:00
David Hewitt cc68f4a021
Merge pull request #1567 from davidhewitt/attribute-tidy
macros: support `#[pyo3(name = "...")]` in pyfunction
2021-05-11 08:14:56 +01:00
David Hewitt 70f9d198e5 docs: add docs for #[pyo3(name = "...")] 2021-05-07 22:43:57 +01:00