Earlier quoted context omitted.
The switch to the 'python' command running python 3, as a non-arch user, put me off Arch forever. It just broke everything, which had long assumed 'python' would run python 2. Not installing python 2, and just python 3, with the name python3, would have been fine. Arch put us in a situation where it was basically impossible to run python 2 with a #! line, as some distros hadn't yet introduced a 'python2' symlink yet.
Those scripts should probably be using something like the following, if they really are python2-only: #!/usr/bin/env python2 I get your frustration though, it's a change that breaks a whole lot of existing scripts.
Arch Linux pulls the plug on 32-bit
71–80 of 201 posts
Re: Arch Linux pulls the plug on 32-bit
#72Earlier quoted context omitted.
Debian will likely support 32 bit until the heat death of the universe, and Slackware probably will as well. There are also the BSDs; OpenBSD and NetBSD in particular will enjoy a long life on non-x64 hardware.
That's a good point about the BSDs. I've been meaning to try a BSD for a while -- it sounds like a good fit for my fleet of aging thinkpads.
Re: Arch Linux pulls the plug on 32-bit
#73Earlier quoted context omitted.
The switch to the 'python' command running python 3, as a non-arch user, put me off Arch forever. It just broke everything, which had long assumed 'python' would run python 2. Not installing python 2, and just python 3, with the name python3, would have been fine. Arch put us in a situation where it was basically impossible to run python 2 with a #! line, as some distros hadn't yet introduced a 'python2' symlink yet.
So to avoid re-opening the debate of Python 2 vs Python 3, let's take this point of view: The Python 3 language may, or may not, have been an improvement, and the transition from 2 to 3 may, or may not, have been done correctly. Everyone has its own opinion on this. But at the end this problem concerns the Python community. From the Arch developers point of view, the Python developers decided to release a new version…
Re: Arch Linux pulls the plug on 32-bit
#74Earlier quoted context omitted.
Flagging my post, because you're wrong? Very mature. Upstart and Systemd are both advanced init systems and Arch took long to implement them. That's the whole point. It doesn't really matter which one of them.
I didn't flag you, I replied to you. That's my policy: If I disagree, I reply. I only flag trolls and spam, and I don't consider you either, just misinformed. Though, now you seem to be trying to pick a fight so I'm going to bow out. Cheers.
>I'm going to bow out. Cheers.
Thanks for acknowledging it, then.
Re: Arch Linux pulls the plug on 32-bit
#75Other tech folk have always talked about 32 bit support as a necessary evil since smaller types mean less memory. The complexity of managing a secondary 32 bit environment has been worse than the memory usage of 64 bit apps for a very, very long time.
* The stack is always kept aligned at 16 bytes boundary. This is needed for external calls by the ABI, but LTCG could drop these for internal calls and align the stack when needing SSE instead. This may be slightly more expensive than keeping the stack constantly 16-byte aligned, but it avoids wasting a lot of stack, so may very well be faster overall just by nature of less cache utilization.
* No push and pop, reserves needed stack space (even for function calls) in prologue and accesses stack with mov and lea instead. The full mov/lea instructions with mod/rm+sib takes up far more bytes that simple push and pop, but apparently it's faster.
* Inefficient instructions are replaced with more efficient instructions. For example gcc will for a simple x % 19 generate no less than 16 instructions instead of a single div/idiv. This is probably still faster, but it may still be detrimental if it's not in a hot path. It should be noted that gcc emits this even at -O0.
* Multiple versions of code copying, scanning or comparing arrays for handling different alignments. This seems quite stupid as there isn't even any penalty for unaligned accesses on modern x86 cpus except in some very specific circumstances[0]
These are all microoptimizations for getting the absolutely maximal performance out of tiny programs containing only hot code. However in reality programs rarely looks like that, and the increased code size and stack usage costs more than it gives. Profile guided optimizations is probably the way to go here, but distributed binaries have rarely if ever been compiled with PGO. Also I have no idea if PGO actually does drop these enlarging optimizations on non-hot codepaths on modern compilers.
[0]: http://lemire.me/blog/2012/05/31/data-alignment-for-speed-my...
Re: Arch Linux pulls the plug on 32-bit
#76It is one of the reasons that makes me love Arch: developers are pragmatic. They were always in the early birds for taking decision about the future, like switching to Python3 as default interpreter system-wide, embracing the change to systemd, and now this. The rolling release aspect imposes to stay as close as possible to upstream versions because upstream does not wait on Arch to update their dependencies to newer…
The switch to the 'python' command running python 3, as a non-arch user, put me off Arch forever. It just broke everything, which had long assumed 'python' would run python 2. Not installing python 2, and just python 3, with the name python3, would have been fine. Arch put us in a situation where it was basically impossible to run python 2 with a #! line, as some distros hadn't yet introduced a 'python2' symlink yet.
You seem to be complaining because other distros hadn't done the right thing. I don't see how that's Arch's fault. Are we to hold back for the lowest common denominator? Do we need every distro to join together and agree to a switchover date?
There was official guidance from Python on the switchover, this wasn't some maverick decision. It was just moving forward.
Not everyone wants to be tied to ancient stuff for backwards compatibility - if you do, it's your job to deal with that.
Re: Arch Linux pulls the plug on 32-bit
#77Earlier quoted context omitted.
So to avoid re-opening the debate of Python 2 vs Python 3, let's take this point of view: The Python 3 language may, or may not, have been an improvement, and the transition from 2 to 3 may, or may not, have been done correctly. Everyone has its own opinion on this. But at the end this problem concerns the Python community. From the Arch developers point of view, the Python developers decided to release a new version…
Except that python says that python 3 should be an executable named `python3` and `python` should refer to `python2` [0] 0: https://www.python.org/dev/peps/pep-0394/
Re: Arch Linux pulls the plug on 32-bit
#78Earlier quoted context omitted.
The switch to the 'python' command running python 3, as a non-arch user, put me off Arch forever. It just broke everything, which had long assumed 'python' would run python 2. Not installing python 2, and just python 3, with the name python3, would have been fine. Arch put us in a situation where it was basically impossible to run python 2 with a #! line, as some distros hadn't yet introduced a 'python2' symlink yet.
I'm an Arch user, and it literally broke nothing for me. Packages were updated, life went on. You seem to be complaining because other distros hadn't done the right thing. I don't see how that's Arch's fault. Are we to hold back for the lowest common denominator? Do we need every distro to join together and agree to a switchover date? There was official guidance from Python on the switchover, this wasn't some maveric…
from https://www.python.org/dev/peps/pep-0394/ (not yet replaced/update) "for the time being, all distributions should ensure that python refers to the same target as python2 ."
Re: Arch Linux pulls the plug on 32-bit
#79Earlier quoted context omitted.
The switch to the 'python' command running python 3, as a non-arch user, put me off Arch forever. It just broke everything, which had long assumed 'python' would run python 2. Not installing python 2, and just python 3, with the name python3, would have been fine. Arch put us in a situation where it was basically impossible to run python 2 with a #! line, as some distros hadn't yet introduced a 'python2' symlink yet.
Well, even Ansible folks started to switch to python 3 ( https://docs.ansible.com/ansible/python_3_support.html ). Pushing people off python 2 is not "absolutely evil".
But, don't make /usr/bin/python run python3, that just confuses programs which have made the (reasonable based on past experience, and official python advice) assumption that it /usr/bin/python will run python2.
Re: Arch Linux pulls the plug on 32-bit
#80It is one of the reasons that makes me love Arch: developers are pragmatic. They were always in the early birds for taking decision about the future, like switching to Python3 as default interpreter system-wide, embracing the change to systemd, and now this. The rolling release aspect imposes to stay as close as possible to upstream versions because upstream does not wait on Arch to update their dependencies to newer…
>They were always in the early birds for taking decision about the future What. It was Arch who * stuck to SysVinit and told users "you want Systemd, make a package" until long after the big distros had made the switch to Systemd/upstart ( https://en.wikipedia.org/wiki/Upstart ) * refused to sign packages properly, because "our users don't need that" It's exactly that kind of decision that makes me stay clear of it.…
Suse was October 2014. Debian and Ubuntu were April 2015. RHEL was June 2014.