Skip to content

Conversation

@skirpichev
Copy link
Member

@skirpichevskirpichev commented Jul 31, 2025

@skirpichevskirpichevforce-pushed the deprecate-cval/128813 branch 2 times, most recently from 7cb20b1 to 7b72948CompareJuly 31, 2025 11:52
@skirpichevskirpichevforce-pushed the deprecate-cval/128813 branch from 7b72948 to 40fc415CompareAugust 1, 2025 07:49
@skirpichevskirpichev marked this pull request as ready for review August 1, 2025 07:57
@skirpichevskirpichev requested a review from encukouAugust 1, 2025 07:57
@encukou
Copy link
Member

Per PEP-387, the preferred deprecation period is 5 years (so the removal would be in 3.20). Is there a reason to accelerate that?

@skirpichev
Copy link
MemberAuthor

Per PEP-387, the preferred deprecation period is 5 years (so the removal would be in 3.20). Is there a reason to accelerate that?

Hmm, probably not soo much. I would bet, that M$ compiler will not have complex types in 3.17 nor in 3.20. Though, maybe we could keep legacy code with _Py_c_*() functions just for M$ systems and use native language type for the rest.

Quick search on GH give me very few project (two), that use this undocumented field:
https://github.com/search?q=%2F-%3Ecval%2F+language%3AC&type=code&l=C&p=1
This is the only an excuse to use minimal lag in versions between announce and removal, as permitted by PEP 387.

@encukou
Copy link
Member

maybe we could keep legacy code with _Py_c_*() functions just for M$ systems and use native language type for the rest.

I don't think we want to maintain two implementations.

@skirpichev
Copy link
MemberAuthor

I don't think we want to maintain two implementations.

One of them will be trivial, much like PyFloatObject now. I think that this opportunity could be at least explored. Unless we aren't going into introduction of the imaginary type (which I think is The Right Thing), Annex G double _Complex type - is the future.

I'm fine to delay removal to 3.20. But impact of this deprecation looks to be low and I prefer if it will add as less constraints on us as possible.

CC @vstinner

@skirpichev
Copy link
MemberAuthor

BTW, I can do planned reorganization of docs (#137261 (comment)) here. But, probably, it worth a separate pr.

@vstinner
Copy link
Member

Quick search on GH give me very few project (two), that use this undocumented field

IMO it's fine to only deprecate for 2 releases since it's rare to use the C API to access PyComplex objects. I'm not suprised that a code search only finds 2 projects.

@skirpichevskirpichev requested a review from encukouAugust 7, 2025 15:20
@encukou
Copy link
Member

One of them will be trivial, much like PyFloatObject now. I think that this opportunity could be at least explored.

If we already need to keep the existing implementation (for MS, and any other compilers without Annex G support), I don't see any benefit in adding a second implementation -- even if it's trivial.

@skirpichev requested a review from @encukou 40 minutes ago

I still see no strong reason to use a shorter-than-default deprecation period.

@skirpichev
Copy link
MemberAuthor

Ok, removal deferred to 3.20.

@encukou
Copy link
Member

Thanks! A wording nitpick; but this is ready to go. @vstinner, do you agree?

Co-authored-by: Petr Viktorin <encukou@gmail.com>
Copy link
Member

@vstinnervstinner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@vstinnervstinner enabled auto-merge (squash) August 8, 2025 10:30
@vstinnervstinner merged commit 9743d06 into python:mainAug 8, 2025
26 checks passed
@skirpichevskirpichev deleted the deprecate-cval/128813 branch August 8, 2025 10:38
Agent-Hellboy pushed a commit to Agent-Hellboy/cpython that referenced this pull request Aug 19, 2025
…ython#137271) Co-authored-by: Petr Viktorin <encukou@gmail.com> Co-authored-by: Victor Stinner <vstinner@python.org>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@skirpichev@encukou@vstinner