[issue32388] Remove cross-version binary compatibility

2019-06-12 Thread STINNER Victor


STINNER Victor  added the comment:

About ABI "foward compatibility", Python 3.8 introduced another backward 
incompatible change: bpo-37250 "C files generated by Cython set tp_print to 
NULL: PyTypeObject.tp_print removed, replaced with tp_vectorcall_offset".

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32388] Remove cross-version binary compatibility

2019-05-29 Thread Antoine Pitrou


Antoine Pitrou  added the comment:


New changeset ada319bb6d0ebcc68d3e0ef2b4279ea061877ac8 by Antoine Pitrou in 
branch 'master':
bpo-32388: Remove cross-version binary compatibility requirement in tp_flags 
(GH-4944)
https://github.com/python/cpython/commit/ada319bb6d0ebcc68d3e0ef2b4279ea061877ac8


--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32388] Remove cross-version binary compatibility

2019-05-29 Thread Antoine Pitrou


Antoine Pitrou  added the comment:

PR is merged now!

--
resolution:  -> fixed
stage: patch review -> resolved
status: open -> closed

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32388] Remove cross-version binary compatibility

2019-05-06 Thread Antoine Pitrou


Antoine Pitrou  added the comment:

I updated the PR (sorry to let this sleep).

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32388] Remove cross-version binary compatibility

2018-06-19 Thread Antoine Pitrou


Antoine Pitrou  added the comment:

> Does it mean that Python 3.8 wil crash on loading C extensions compiled on 
> Python older than this version?

What makes you think that it would be otherwise be able to load and execute 
such C extensions without any bugs?

There is no ABI except the stable ABI, and tp_flags isn't part of the stable 
ABI. 

PS : tp_finalize is in Python 3.4, but that doesn't really matter.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32388] Remove cross-version binary compatibility

2018-06-19 Thread STINNER Victor


STINNER Victor  added the comment:

In which version of Python tp_finalize slot has been added? Does it mean that 
Python 3.8 wil crash on loading C extensions compiled on Python older than this 
version?

--
nosy: +vstinner

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32388] Remove cross-version binary compatibility

2018-03-06 Thread Antoine Pitrou

Antoine Pitrou  added the comment:

Yes, let's retarget to 3.8.

--
versions: +Python 3.8 -Python 3.7

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32388] Remove cross-version binary compatibility

2018-03-03 Thread Stefan Behnel

Stefan Behnel  added the comment:

I'm ok with "removing" this "guarantee" (although it seems too late to apply 
this specific change to 3.7 now).

While Cython users do ask for a way to build cross-version binaries from time 
to time, it's neither supported nor planned, and the underlying problem is IMHO 
solved better via tooling like the manylinux wheel build.

I also generally consider it good to let user code take advantage of new 
features in new CPython releases, even if it means that they need to 
retranslate their Cython code from time to time. The 1.5 years release cycle of 
CPython should exceed that of most "still in maintenance" extension modules out 
there, and it's long enough to not impose a real burden on their maintainers.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32388] Remove cross-version binary compatibility

2018-02-19 Thread Stefan Behnel

Change by Stefan Behnel :


--
nosy: +scoder

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32388] Remove cross-version binary compatibility

2017-12-21 Thread Ned Deily

Change by Ned Deily :


--
nosy: +njs, serhiy.storchaka

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32388] Remove cross-version binary compatibility

2017-12-21 Thread Ned Deily

Change by Ned Deily :


--
nosy: +ncoghlan, ned.deily -njs, serhiy.storchaka
stage: patch review -> 

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32388] Remove cross-version binary compatibility

2017-12-21 Thread Ned Deily

Change by Ned Deily :


--
stage:  -> patch review

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32388] Remove cross-version binary compatibility

2017-12-21 Thread Steve Dower

Steve Dower  added the comment:

Good to know. As I said on the other issue, Windows won't load extension 
modules built for a different version anyway unless they use the stable ABI, so 
there's no real reason these flags need to be binary compatible between 3.x 
versions.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32388] Remove cross-version binary compatibility

2017-12-21 Thread Antoine Pitrou

Antoine Pitrou  added the comment:

That's basically exact.  Actually, there is no ABI guarantee at all (when not 
using the stable ABI), just a best effort for advanced users who know what 
they're doing.

Actually, this PR stems from Nathaniel's message here:
https://mail.python.org/pipermail/python-dev/2017-December/151345.html

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32388] Remove cross-version binary compatibility

2017-12-21 Thread Steve Dower

Steve Dower  added the comment:

Totally okay with this in theory, but wanted to clarify that the linked PR is 
really just taking advantage of removing the guarantee?

That is, the change isn't necessary to remove the requirement.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32388] Remove cross-version binary compatibility

2017-12-20 Thread Antoine Pitrou

Change by Antoine Pitrou :


--
nosy: +serhiy.storchaka

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32388] Remove cross-version binary compatibility

2017-12-20 Thread Antoine Pitrou

Change by Antoine Pitrou :


--
keywords: +patch
pull_requests: +4836
stage:  -> patch review

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32388] Remove cross-version binary compatibility

2017-12-20 Thread Antoine Pitrou

Change by Antoine Pitrou :


--
nosy: +njs

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue32388] Remove cross-version binary compatibility

2017-12-20 Thread Antoine Pitrou

New submission from Antoine Pitrou :

See original discussion on python-dev:
https://mail.python.org/pipermail/python-dev/2017-December/151328.html

Summary: binary compatibility for C extensions which don't use the stable ABI 
is currently "best effort" and uses distinguished flags in the tp_flags field 
of type objects to indicate whether a field is physically present or not.  
Unfortunately, tp_flags is 32 bits and therefore a scarce resource.  Also, 
binary compatibility is 1) not guaranteed anyway 2) of less use nowadays.

So we propose to remove the binary compatibility requirement when creating 
static type objects (i.e. not using the stable ABI).

--
components: Interpreter Core
messages: 308753
nosy: barry, paul.moore, pitrou, steve.dower, tim.golden, zach.ware
priority: normal
severity: normal
status: open
title: Remove cross-version binary compatibility
type: behavior
versions: Python 3.7

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com