Skip to content

Commit a63e426

Browse files
committed
Some doc and test cleanups mainly around specialization
1 parent e27c4d7 commit a63e426

File tree

5 files changed

+9
-10
lines changed

5 files changed

+9
-10
lines changed

CHANGELOG.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
66

77
## [Unreleased]
88
### Added
9-
- stable rust support
10-
- Add FFI definition `PyObject_AsFileDescriptor` [#938](https://github.com/PyO3/pyo3/pull/938)
9+
- Support stable versions of Rust (>=1.39). [#969](https://github.com/PyO3/pyo3/pull/969)
10+
- Add FFI definition `PyObject_AsFileDescriptor`. [#938](https://github.com/PyO3/pyo3/pull/938)
1111
- Add `PyByteArray::data`, `PyByteArray::as_bytes`, and `PyByteArray::as_bytes_mut`. [#967](https://github.com/PyO3/pyo3/pull/967)
1212
- Add `Py::borrow`, `Py::borrow_mut`, `Py::try_borrow`, and `Py::try_borrow_mut` for accessing `#[pyclass]` values. [#976](https://github.com/PyO3/pyo3/pull/976)
1313

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
[![Actions Status](https://github.com/PyO3/pyo3/workflows/Test/badge.svg)](https://github.com/PyO3/pyo3/actions)
55
[![codecov](https://codecov.io/gh/PyO3/pyo3/branch/master/graph/badge.svg)](https://codecov.io/gh/PyO3/pyo3)
66
[![crates.io](http://meritbadge.herokuapp.com/pyo3)](https://crates.io/crates/pyo3)
7-
[![minimum rustc 1.42](https://img.shields.io/badge/rustc-1.39+-blue.svg)](https://rust-lang.github.io/rfcs/2495-min-rust-version.html)
7+
[![minimum rustc 1.39](https://img.shields.io/badge/rustc-1.39+-blue.svg)](https://rust-lang.github.io/rfcs/2495-min-rust-version.html)
88
[![Join the dev chat](https://img.shields.io/gitter/room/nwjs/nw.js.svg)](https://gitter.im/PyO3/Lobby)
99

1010
[Rust](http://www.rust-lang.org/) bindings for [Python](https://www.python.org/). This includes running and interacting with Python code from a Rust binary, as well as writing native Python modules.

guide/src/class.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -888,12 +888,12 @@ documentation](https://docs.python.org/3/library/stdtypes.html#iterator-types).
888888
Users should be able to define a `#[pyclass]` with or without `#[pymethods]`, while PyO3 needs a
889889
trait with a function that returns all methods. Since it's impossible to make the code generation in
890890
pyclass dependent on whether there is an impl block, we'd need to implement the trait on
891-
`#[pyclass]` and override the implementation in `#[pymethods]`, which is to the best of my knowledge
892-
only possible with the specialization feature, which can't be used on stable.
893-
894-
To escape this we use [inventory](https://github.com/dtolnay/inventory),
891+
`#[pyclass]` and override the implementation in `#[pymethods]`.
892+
To enable this, we use a static registry type provided by [inventory](https://github.com/dtolnay/inventory),
895893
which allows us to collect `impl`s from arbitrary source code by exploiting some binary trick.
896894
See [inventory: how it works](https://github.com/dtolnay/inventory#how-it-works) and `pyo3_derive_backend::py_class` for more details.
895+
Also for `#[pyproto]`, we use a similar, but more task-specific registry and
896+
initialize it by [ctor](https://github.com/mmastrac/rust-ctor) crate.
897897

898898
Specifically, the following implementation is generated:
899899

guide/src/rust_cpython.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ This chapter is based on the discussion in [PyO3/pyo3#55](https://github.com/PyO
66

77
## Macros
88

9-
While rust-cpython has a macro based dsl for declaring modules and classes, PyO3 uses proc macros and specialization. PyO3 also doesn't change your struct and functions so you can still use them as normal Rust functions.
9+
While rust-cpython has a macro based dsl for declaring modules and classes, PyO3 uses proc macros. PyO3 also doesn't change your struct and functions so you can still use them as normal Rust functions.
1010

1111
**rust-cpython**
1212

tests/test_compile_error.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@ fn test_compile_errors() {
1313
t.compile_fail("tests/ui/wrong_aspyref_lifetimes.rs");
1414
t.compile_fail("tests/ui/invalid_pymethod_names.rs");
1515
}
16-
17-
#[rustversion::all(since(1.43))]
16+
#[rustversion::since(1.43)]
1817
fn testcase_latest_stable(t: &trybuild::TestCases) {
1918
t.compile_fail("tests/ui/static_ref.rs");
2019
}

0 commit comments

Comments
 (0)