[Python-Dev] Re: Move support of legacy platforms/architectures outside Python

2021-02-21 Thread glaubitz
(Since my first reply here somehow got lost, I'm posting this again).

Rust doesn't prevent anyone from building Tier 2 or Tier 3 targets. There is no 
limitation for "legacy" or "deprecated" targets. Any target can be built and 
any target can be selected by the Rust compiler for cross-compliation.

So, if you want to mimic the behavior of the Rust compiler, you would obviously 
not guard any architectures or platforms in configure.ac.

I am objecting this change as it does not reduce code complexity (on the 
contrary) and only causes more maintenance burden for downstream distributions.

Thanks,
Adrian
___
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/EEFDCMVRNHDBUHRUXOC4TEFFYA6NETPB/
Code of Conduct: http://python.org/psf/codeofconduct/


[Python-Dev] Re: Move support of legacy platforms/architectures outside Python

2021-02-21 Thread glaubitz
Rust doesn't keep any user from building Rust for Tier 2 or Tier 3 platforms. 
There is no separate configure guard. All platforms that Rust can build for, 
are always enabled by default. No one in Rust keeps anyone from cross-compiling 
code for sparc64 or powerpcspe, for example.

So if you want to copy Rust's mechanism, you should just leave it as is and not 
claim that users are being confused because "m68k" shows up in configure.ac.

Adrian
___
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/5DXDCNS4C3JS43JGLIKYTRNV6AAQE5TD/
Code of Conduct: http://python.org/psf/codeofconduct/


[Python-Dev] Re: Move support of legacy platforms/architectures outside Python

2021-02-21 Thread glaubitz
There are zero technical reasons for what you are planning here.

You are inflating a few lines of autoconf into a "platform support", so you 
have a reason to justify adding multiple lines of extra autoconf codes to make 
life for downstream distributions harder.

I could understand the maintenance burden argument if there was actually any 
maintenance burden, there isn't.

The thing is you made assumptions about how downstream distributions use Python 
without doing some research first ("16-bit m68k-linux"). I have explained that 
these assumptions are not correct and that downstreams do actively use Python 
in ways that upstream no longer considers supported, yet you want to make 
changes to make everything for downstreams harder.

I have not seen any other upstream project that is so bothered about a few 
lines of autoconf code. All other upstream projects I have worked with, be it 
Rust, OpenJDK, abseil-cpp and so on: None of them had problems when I sent 
patches to improve the code on more architectures.

But in Python, it's suddenly a problem and you start long discussions about a 
few lines of autoconf code that pose zero maintenance burden.

I absolutely don't get it.

Adrian
___
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/RD75H2KJQS2YC5H6P75PNGEDZ5UNCTHQ/
Code of Conduct: http://python.org/psf/codeofconduct/


[Python-Dev] Re: Move support of legacy platforms/architectures outside Python

2021-02-21 Thread glaubitz
> The main thing from a project maintenance perspective is for platforms to
not become a burden to other code maintainers.  PRs need to be reviewed.
Every #if/#endif in code is a cognitive burden.  So being a minor platform
can come with unexpected breakages that need fixing due to other changes
made in the codebase that did not pay attention to the platform.  As we
cannot expect everyone working on code to care about anything beyond the
tier-1 fully supported platforms, buildbot or not.

Yes, but all this doesn't apply here. We're literally talking about a few lines 
of autoconf and preprocessor defines [1]. In fact, the change to remove "s390 
support" (in quotes because these few lines don't really can be considered 
platform-specific code), introduces more lines than it removes because of the 
comments.

Adrian

> [1] https://github.com/python/cpython/pull/24534/files
___
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/OFBMDNWADAULXH7IS4ABGNSAYF4KFMI7/
Code of Conduct: http://python.org/psf/codeofconduct/


[Python-Dev] Re: Move support of legacy platforms/architectures outside Python

2021-02-22 Thread John Paul Adrian Glaubitz
On 2/22/21 12:30 PM, Victor Stinner wrote:
> On Mon, Feb 22, 2021 at 8:19 AM  wrote:
>> There are zero technical reasons for what you are planning here.
> 
> Multiple core developers explained how it's a maintenance burden. It
> has been explained in multiple different ways.

Well, that doesn't mean these statements are correct.

Please don't assume that the people you are talking to are inexperienced
developers, we aren't. Downstream distribution maintainers certainly have
enough experience with project maintenance to be able to asses whether
your claims are valid or not.

>> You are inflating a few lines of autoconf into a "platform support", so you
>> have a reason to justify adding multiple lines of extra autoconf codes to 
>> make
>> life for downstream distributions harder.
> 
> "Making life harder" sounds to me like oh, maybe supporting one
> additional platform is not free and comes with a cost. This cost is
> something called the "maintenance burden".

Please explain to me how guarding some platforms with *additional* lines
autoconf is helping to reduce maintenance burden for the upstream project.

> My question is if Python wants to pay this cost, or if we want
> transfering the maintenance burden to people who actually care about
> these legacy platforms and architectures.
> 
> Your position is: Python must pay this price. My position is: Python should 
> not.

No, my position is that such changes should have valid technical reasons
which is simply not the case. You're not helping your point if you are
basing your arguments on incorrect technical assumptions.

> Honestly, if it's just a few lines, it will be trivial for you to
> maintain a downstream patch and I'm not sure why we even need this
> conversation. If it's more than a few lines, well, again, we come back
> to the problem of the real maintenance burden.

This argument goes both ways. The code we are talking about here are
just a few lines of autoconf which are hardly touched during normal
development work. And the architecture-mapping you have in [1] is probably
not even needed (CC @jrtc27).

>> The thing is you made assumptions about how downstream distributions use
>> Python without doing some research first ("16-bit m68k-linux").
> 
> I'm talking about 16-bit memory alignment which causes SIGBUS if it's
> not respected on m68k. For example, unicodeobject.c requires special
> code just for this arch:
> 
> /*
>  * Issue #17237: m68k is a bit different from most architectures in
>  * that objects do not use "natural alignment" - for example, int and
>  * long are only aligned at 2-byte boundaries.  Therefore the assert()
>  * won't work; also, tests have shown that skipping the "optimised
>  * version" will even speed up m68k.
>  */
> #if !defined(__m68k__)
> (...)
> 
> Such issue is hard to guess when you write code and usually only spot
> it while actually running the code on such architecture.

This is the only such place in the code where there is an extra section
for m68k that I could find. And the bug was fixed by Andreas Schwab [2],
so another downstream maintainer which was my point earlier in the discussion.

We downstreams care about the platform support, hence we keep it working.

Thanks,
Adrian

> [1] 
> https://github.com/python/cpython/blob/63298930fb531ba2bb4f23bc3b915dbf1e17e9e1/configure.ac#L724
> [2] 
> https://github.com/python/cpython/commit/8b0e98426dd0e1fde93715256413bc707759db6f

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaub...@debian.org
`. `'   Freie Universitaet Berlin - glaub...@physik.fu-berlin.de
  `-GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
___
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/4OALXE4CUIFA4JGH3Y2BCLQ7WI4LR6U6/
Code of Conduct: http://python.org/psf/codeofconduct/


[Python-Dev] Re: Move support of legacy platforms/architectures outside Python

2021-02-24 Thread John Paul Adrian Glaubitz
Hello!

On 2/22/21 12:30 PM, Victor Stinner wrote:
>> The thing is you made assumptions about how downstream distributions use 
>> Python without doing some research first ("16-bit m68k-linux").
> 
> I'm talking about 16-bit memory alignment which causes SIGBUS if it's
> not respected on m68k. For example, unicodeobject.c requires special
> code just for this arch:
> 
> /*
>  * Issue #17237: m68k is a bit different from most architectures in
>  * that objects do not use "natural alignment" - for example, int and
>  * long are only aligned at 2-byte boundaries.  Therefore the assert()
>  * won't work; also, tests have shown that skipping the "optimised
>  * version" will even speed up m68k.
>  */
> #if !defined(__m68k__)
> (...)
> 
> Such issue is hard to guess when you write code and usually only spot
> it while actually running the code on such architecture.

Just as a heads-up: There is a PR by Jessica Clarke now [1] which gets rid of 
this
architecture-specific #ifdef. I think this is a good approach as it gets rid of 
one
of your complaining points.

I have already verified that these changes don't break on 32-bit PowerPC, 
64-bit SPARC
and, of course, M68k.

Thanks,
Adrian

> [1] https://github.com/python/cpython/pull/24624

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaub...@debian.org
`. `'   Freie Universitaet Berlin - glaub...@physik.fu-berlin.de
  `-GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
___
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/TQVOGEZ3NXQP6PN5RTOG5IDBCGTIPAU5/
Code of Conduct: http://python.org/psf/codeofconduct/