This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Concerns with the last minute changes to the PEP 587 API
Type: enhancement Stage: resolved
Components: Versions: Python 3.9, Python 3.8
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: ncoghlan Nosy List: gregory.p.smith, lukasz.langa, ncoghlan, steve.dower, twouters, vstinner
Priority: normal Keywords: patch

Created on 2019-09-30 14:08 by ncoghlan, last changed 2022-04-11 14:59 by admin. This issue is now closed.

Pull Requests
URL Status Linked Edit
PR 16496 open ncoghlan, 2019-09-30 16:38
Messages (6)
msg353573 - (view) Author: Nick Coghlan (ncoghlan) * (Python committer) Date: 2019-09-30 14:08
(Nosy list is RM, PEP 587 BDFL-Delegate, PEP 587 author)

Filing as a release blocker, given that I don't think we should ship rc1 until consensus has been reached on the last minute changes to the PEP 587 configuration API.

Thread at https://mail.python.org/archives/list/python-dev@python.org/thread/C7Z2NA2DTM3DLOZCFQAK5A2WFYO3PHHX/
msg353577 - (view) Author: Nick Coghlan (ncoghlan) * (Python committer) Date: 2019-09-30 14:37
(I'm currently working a PR for this that Victor can review)
msg353581 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2019-09-30 14:48
(Continuing from the email thread, so read that for context if you haven't)

Binary compatibility of an embedding-only struct is totally unnecessary, as posted on the thread. There's no feasible way to embed cross-Python versions on any platform, so we should just officially say that embedding applications are only compatible with the version it was built to target.

(Aside: this is why I keep talking about "embeddable distros", as these help solve the problem of trying to embed an arbitrary system Python.)

AFAICT, this should remove the need for any version or size checks at all.
msg353620 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2019-09-30 20:33
> Binary compatibility of an embedding-only struct is totally unnecessary, as posted on the thread.

Well, I'm fine with removing PyConfig.struct_size right now. I wrote two PRs to remove it:

* PR 16500 (code)
* https://github.com/python/peps/pull/1185 (PEP)

We can still add a similar "version" ("struct_size" or whatever) field later *if* we want to provide a stable ABI for embedded Python.
msg353640 - (view) Author: Łukasz Langa (lukasz.langa) * (Python committer) Date: 2019-10-01 07:46
I suggest closing this and following up in BPO-38304 about a possible graceful error message during invalid embedding.
msg353649 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2019-10-01 08:28
Nick merged my two PRS, so the initial concern is gone :-) I close the issue. Thanks for the feedback, it was an interesting talk. Sorry for the bad timing. I dislike working under pressure of a deadline :-(
History
Date User Action Args
2022-04-11 14:59:21adminsetgithub: 82507
2019-10-01 08:28:10vstinnersetstatus: open -> closed
resolution: fixed
messages: + msg353649

stage: patch review -> resolved
2019-10-01 07:46:11lukasz.langasetpriority: release blocker -> normal

messages: + msg353640
2019-09-30 20:47:05gregory.p.smithsetnosy: + gregory.p.smith
2019-09-30 20:33:03vstinnersetmessages: + msg353620
2019-09-30 16:38:46ncoghlansetkeywords: + patch
stage: commit review -> patch review
pull_requests: + pull_request16084
2019-09-30 15:38:27lukasz.langasetversions: + Python 3.8, Python 3.9
2019-09-30 14:48:32steve.dowersetnosy: + steve.dower
messages: + msg353581
2019-09-30 14:37:07ncoghlansetassignee: ncoghlan
messages: + msg353577
2019-09-30 14:08:11ncoghlancreate