-
Notifications
You must be signed in to change notification settings - Fork 167
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
Dropping 32-bit builds #885
Comments
More info on the state of play at the OS level would definitely be useful (i.e. when/if major distros stopped supporting 32-bit OSs, i.e. who we'd be breaking).
|
Windows 10 still supports 32bit and "cross compiling" from a 64bit host to a 32bit target is also fully supported. BTW: AWS/Azure/GCP doesn't rent 32bit VMs of our lowest supported Windows (Server 2008R2). |
There is absolutely still support for 32bit CentOS 6 / RHEL 6 Linux out there. Also, all Debian and Ubuntu releases still have 32bit versions, and Fedora still makes 32bit releases as well. Red Hat dropped 32bit support with RHEL 7. I don't have much of a sense of how many people are using 32bit builds in production. If I had to guess (emphasis mine there), I doubt many people are running 32bit Node builds on production servers, and I suspect the biggest impact might be not so much on production servers, but instead on appliances. For example, here's output from a Synology NAS that I have at home:
And yes, Node is an installable package should I choose to put it on this device. A lot of these appliance gizmos use 32bit chips because they don't have much memory and want to keep costs low, so older 32bit Atom or Celeron processors make sense. Now, having said all that, if we assume I'm right, then I don't think we need to be too concerned about anything other than making sure that Node will in fact build on a 32bit system with a modern enough compiler, because from what I can tell almost all of these appliances have their own packaging formats and tend to build the things they need for those packages themselves. |
@gibfahn I don't see any reason to drop 32-bit builds on Windows.
That shouldn't be a problem. We could just continue running CI jobs on 32-bit platforms where it's easy enough to install a supported compiler, e.g. Ubuntu 14.04. |
We shouldn't drop Windows 32-bit support. While our deps have support for it, it'll be easy for us to maintain. Windows and Visual Studio have full support for 32-bit. |
Apropos Fedora, i686 is in a state of disrepair and has been for years: https://lwn.net/Articles/728207/ There is a Special Interest Group since a few months that fixed some things but I think it's safe to say no one runs Fedora i686 in production and it's not worth spending time on. |
Unfortunately I have seen people running 32bit Fedora out there in the wild (same for CentOS 6 and occasionally an older Debian / Ubuntu release). But generally I feel like all the major distros want to drop it and are sort of looking at each other waiting to see who does it first. I know Arch Linux (not one of the major ones, but important among the more hacker / bleeding edge types) is dropping it officially in November of this year. So I still feel pretty comfortable with what I said above, which is that I think we'd be okay if we continue to "support" it in the sense that we make sure it will in fact build on a 32bit x86 machine, but we stop making official release tarballs for it. |
So maybe the answer is to drop it to Tier 2 or Experimental rather than dropping completely. |
Some informal research shows that there are still a fair number of users using 32-bit builds on smaller IoT devices. I doubt this is a large group, but it's still worth bearing in mind. I'm going to tag this with a tsc-review label. |
@chrislea wrong link? That seems to point to my comment above. |
My bad, try this. |
It's been a week and I see no objections to dropping public 32-bit Linux builds. Perhaps we can proceed with that for now and leave the discussion about dropping 32-bit support (or downgrading it to Experimental) for later? |
@nodejs/release did discuss this at the last meeting. @gibfahn what was the decision (I remember something about IoT, and maybe stop releasing, but keep testing..)? |
Discussed here, there wasn't a decision, but @jasnell mentioned that he believed he knew of some embedded devices that were Intel 32-bit Linux, and that he'd had requests from people for us to not drop 32-bit builds. So more info on that would be good. James did say that he thought continuing to test but not doing releases sounded reasonable.
This was raised for |
That seems like a good idea. So, does anyone have an objection to us ceasing to do 32-bit xLinux releases from Node 9.x onwards? We will continue to run CI. cc/ @nodejs/build @nodejs/lts @nodejs/tsc |
Might want to update the original post if this is about Intel 32-bit only and not other platforms (e.g. ARM). |
It was originally supposed to be a more general discussion (including ARM). The xLinux discussion is just the most pressing matter. |
What is "xLinux?" Is it an IBM thing? |
x86_64 Linux, as opposed to aLinux (ARM Linux), pLinux (Power Linux), and zLinux (z Linux). Probably used more often in IBM, as we deal with more architectures than most, but I don't think it's exclusive. |
Ubuntu is going to stop making 32bit desktop ISOs with their next release, just FYI. |
That full context on the Ubuntu decision is actually pretty informative about their perspective on the future of i386 |
Still no objections. What next? |
No objections raised by anyone in Build or TSC AFAICT, so I think this is agreed unless someone wants to put it on Otherwise this is done, it's just a question of someone adding the correct @rvagg @joaocgreis you've done this more than most I think, if I come up with a diff can you review? |
From https://unofficial-builds.nodejs.org/ , I checked the last one working on Ubuntu 32 bits is v13.0.1-rc.0 . With higher versions, I get core dumps while running npm to reinstall packages. v13.0.1-rc.0 is in https://unofficial-builds.nodejs.org/download/rc/ . I get warnings from npm while reinstalling modules, but it works and better support ECMAScript than v9.x. |
nodejs/node#33019 broken for now, unfortunately the core team doesn't have visibility into x86 failures and build failures on unofficial-builds don't notify us directly, it takes someone to let us know or for one of us to notice (I happened to notice in this case). |
Node.js has deprecated 32-bit builds for x86 Linux: nodejs/build#885
NO! I need it to run on v86! Please bring it back! |
@hello-smile6 Unofficial 32-bit Linux x86 builds can be found at https://unofficial-builds.nodejs.org/. They're unofficial in that they're best effort, and unlike regular builds are not tested. |
Can someone create a NodeJS 16 build for v86 to use, @richardlau ? |
I do! |
@hello-smile6 as @richardlau said, builds are on unofficial-builds, latest v16 is @ https://unofficial-builds.nodejs.org/download/release/v16.3.0/ ( |
This came out of discussion of #809 in the last WG meeting (#875, minutes at #881). Discussion paraphrased below.
Basically updating CentOS 6 to gcc 4.9.3 requires
devtoolset-6
, which means that we can no longer do 32-bit xLinux builds.It's difficult to know how many people are currently using x86_64 32-bit Node. The metrics show it looking pretty stagnant, but it's difficult to know how many of the downloads are from CI.
@rvagg suggested that the best way to find out would be to drop 32-bit builds in an odd-numbered release and see how many people complain, that way we have the option of adding them back in a minor version. The question was whether 9.x is too soon to do this.
Rod also said that he thought CentOS6 and Ubuntu 14 no longer had a 32-bit version, meaning that anyone relying on a 32-bit OS had already been left behind by Node 8.x. If we could confirm that this is true for most Linux and Windows versions then that would make the decision much easier.
Todo (if we decide to drop 32-bit)
The text was updated successfully, but these errors were encountered: