Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BLD: remove support for 32 bit #44453

Closed
jreback opened this issue Nov 14, 2021 · 19 comments
Closed

BLD: remove support for 32 bit #44453

jreback opened this issue Nov 14, 2021 · 19 comments
Labels
32bit 32-bit systems Build Library building on various platforms

Comments

@jreback
Copy link
Contributor

jreback commented Nov 14, 2021

seems microsoft has removed support starting 3.10 (as is numpy)

we should do the same

@jreback jreback added 32bit 32-bit systems Build Library building on various platforms labels Nov 14, 2021
@jreback jreback added this to the 1.4 milestone Nov 14, 2021
@thesamesam
Copy link
Contributor

Apologies if I'm misunderstanding here, but it looks like Numpy isn't dropping 32-bit support entirely. It looks like they're only dropping wheel generation because of infra constraints but will continue to test.

I'm interested because in Gentoo, we still support a number of 32-bit architectures (arm, x86 being the two main ones), and Pandas ends up in the depgraph often unavoidably if we want to run test suites on programs.

Is the plan for Pandas to drop support entirely for 32-bit or to just stop producing wheels?

@jreback
Copy link
Contributor Author

jreback commented Nov 15, 2021

why should we support 32 bit at all?

this is just more work - sure it's probably easy but we are all volunteer

@mgorny
Copy link
Contributor

mgorny commented Nov 15, 2021

Does being a volunteer justify removing work already done by (other) volunteers?

@jorisvandenbossche
Copy link
Member

To be clear, @jreback only did a proposal to remove them, nothing has been decided yet, and your feedback on this idea is welcome.

Since numpy is not removing them, and if we also switch to cibuildwheel (cfr #44027, assuming this makes it easier to keep 32bit wheels), I personally think we can follow numpy on this.

@mgorny
Copy link
Contributor

mgorny commented Nov 15, 2021

For the record, I don't have a problem with removing 32-bit wheels or 32-bit testing, if that is cumbersome. However, what I would like to avoid is removing the code to support 32-bit setups, or rejecting patches that fix them.

@jreback
Copy link
Contributor Author

jreback commented Nov 15, 2021

For the record, I don't have a problem with removing 32-bit wheels or 32-bit testing, if that is cumbersome. However, what I would like to avoid is removing the code to support 32-bit setups, or rejecting patches that fix them.

@mgorny these would always be welcome

it's the testing / support that can be cumbersome (it's not so burdensome more that if others are dropping support then we should as well; note that numpy is usually the last to drop support for things)

@jbrockmendel
Copy link
Member

i agree with @jorisvandenbossche, following numpy's lead on this seems reasonable

xref https://discuss.python.org/t/dropping-32-bit-packages/5476

@lithomas1 lithomas1 removed this from the 1.4 milestone Nov 15, 2021
@lithomas1 lithomas1 added the Needs Discussion Requires discussion from core team before further action label Nov 15, 2021
@lithomas1
Copy link
Member

At the very least, I'd like to stop making 32-bit wheels by 2.0.
Note that this issue of dropping 32 bit has already come up before. xref #15889

@fangchenli
Copy link
Member

+1

@lithomas1
Copy link
Member

FYI, we are dropping Linux 32 bit builds after numpy 1.22 comes out, where they also will be dropping 32 bit Linux builds. Windows 32 bit will not be affected, and we will still test/support 32 bit.

@lithomas1 lithomas1 removed the Needs Discussion Requires discussion from core team before further action label Nov 22, 2021
@lithomas1 lithomas1 added this to the 1.4 milestone Nov 23, 2021
@jreback jreback modified the milestones: 1.4, 1.5 Dec 31, 2021
@KOLANICH
Copy link

KOLANICH commented Mar 1, 2022

why should we support 32 bit at all?

this is just more work - sure it's probably easy but we are all volunteer

Pro tip: by not contributing into open source at all instead of contributing (and by not doing any other work you can avoid doing) you can keep even more work away of you.

@mroeschke mroeschke modified the milestones: 1.5, 2.0 Aug 15, 2022
@mroeschke mroeschke removed this from the 2.0 milestone Jan 13, 2023
@mattip
Copy link
Contributor

mattip commented May 21, 2023

I personally think we can follow numpy on this.

I proposed to drop 32-bit windows wheels in numpy/numpy#23717. I do not recall seeing 32-bit windows issues or requests over the past few years, has pandas? FWIW, SciPy already dropped 32-bit windows wheels.

@KOLANICH
Copy link

KOLANICH commented May 21, 2023

I am episodically using python on a Pentium III-based PC on Linux and until a very recent time I was also using a Core2Duo-based PC (clearly 64-bit capable, but it has only 2 GiB of RAM so I cannot afford wasting it on 64-bit pointers, also it has quite some other software installed, including some drivers for some expensive and legacy hardware that are 32-bit only. Now that PC is still used, including Python, but by other people (it is a company PC) ).

I do not recall seeing 32-bit windows issues or requests over the past few years

I guess it wouldn't have changed anything, users just have no power of vote in the matters involving the software they got free of charge (but, TBH, but to a lesser extent, in proprietary paid software too, but there - to lesser extent depending on how much unique and needed that software is). The decision to drop platforms is made by devs, not by users. If someone needs a platform devs are not willing to support, then he has to maintain an own fork (and undo the sabotage the devs of original will eventually do, and constantly fix the merge conflicts, and build the software himself (sometimes it is infeasible too) ) or find someone who is willing to do the required job and maybe pay him if he is unwilling to do it for free. Or just pay for new systems, if it is cheaper than to pay people for supporting old ones.

@lithomas1
Copy link
Member

lithomas1 commented May 23, 2023

IMO, the only thing worth keeping 32-bit support for is WASM, at least until the memory64(https://github.com/WebAssembly/memory64) proposal goes through, as people seem interested in using pandas with pyodide.

I am episodically using python on a Pentium III-based PC on Linux and until a very recent time I was also using a Core2Duo-based PC (clearly 64-bit capable, but it has only 2 GiB of RAM so I cannot afford wasting it on 64-bit pointers, also it has quite some other software installed, including some drivers for some expensive and legacy hardware that are 32-bit only. Now that PC is still used, including Python, but by other people (it is a company PC) ).

Is there a reason that you are not OK using older versions of pandas?

@KOLANICH
Copy link

Is there a reason that you are not OK using older versions of pandas?

"Just use an old version" is a very poor argument. Of course I'm free to use old versions of everything (because a lot of things drop support with old versions of their dependencies, it is easy and pleasant to stop doing things you personally are not rewarded for, as Linus says, "good riddance", and as the Russian proverb says "[taking] a woman off a cart [makes it] easier for the horse"), but when one has to use old versions of everything because his machine cannot be used with new versions of everything, and something new requiring the new versions, that means that his machine is not a machine, but a piece of junk which proper place is on junkyard and not in a flat/home. When someone drops support of some hardware in something, he is essentially transforms someone's property into junk. I understand, there is ain't no such a thing as free lunch and it is unethical to demand people to do unpaid work. I just want everyone to always remember about that. There is a big difference between "something is broken just because our software is a complex system and noone IRL tests for it and noone has fixed that yet" and "something is broken because we have decided that in our software it will be broken, throw your calculator into junk and buy what we currently support", where dropping support is exactly this. Of course, only the latter option qualifies for "good riddance".

@jbrockmendel
Copy link
Member

@KOLANICH i hope that rant was cathartic bc it was not a useful answer to the question

@KOLANICH
Copy link

You ask for simple answers, but our world is complex. The simple answer: right now I don't need bleeding edge version of Pandas on that machine. The complex answer:

  1. I may need it in future
  2. every drop of support creates chain reactions in multiple ways.
    a. forces users to replace their hardware, decreasing incentives to maintain support of older hardware for other software
    b. creates incentives for packages depending on the one that has dropped support to drop support. They are broken any fay for that hardware - why to waste resources on maintaining the redundant code then?

That's why I'm against of dropping support even in packages i don't use. Because dropping support in them makes closer the dropping in the packages I depend on.

@mgorny
Copy link
Contributor

mgorny commented May 24, 2023

I'm a little confused here. Didn't we agree that general 32-bit support will be kept and patches will still be accepted? If that is the case, I'm not sure I don't understand what you are talking about now.

Gentoo very much needs 32-bit support in the latest version. Supporting old versions for a limited time usually triples the maintenance cost for us (and we're just a few volunteers maintaining hundreds of packages), and permanently is simply a no-go. Old versions tend to collect bugs (and Python is moving fast, so regressions aren't uncommon) and — more importantly — vulnerabilities. If we need to support the old version, it falls on us to fix all of them, and we simply can't afford to do that, let alone do it reliably when most of the projects are explicitly forcing us to install a newer version.

@mroeschke
Copy link
Member

I think the decision here was that pandas no longer distributes wheels for 32 bit platforms (starting 2.1 IIRC) but pandas will continue to accept patches and test on 32 bit Linux so going to close

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
32bit 32-bit systems Build Library building on various platforms
Projects
None yet
Development

Successfully merging a pull request may close this issue.

10 participants