Live data from Hacker News

Having non-x86 machines makes your life harder

utcc.utoronto.ca

61–70 of 100 posts

Re: Having non-x86 machines makes your life harder

#61
post #18
post #8

The author is confused. The points they make are not about x86 vs. non-x86, they're instead about mixing different architectures. Yes, if you write a program and deploy it on three machines, and they all have different pointer sizes, endianness, and executable formats (PE, ELF, etc.) then, yes that can suck. If this article was written 10 years ago, more people would probably agree. But nowadays, its perfectly possib…

Challenge: specify a mainstream architecture (e.g. targeted by Debian stable) which doesn't have char=1, short=2, int=4, long long=8 bytes with GCC or Clang.

One major point of divergence is the size and representation of pointers, and people treating pointers as integers.

Also floating point formats can vary a bit even with the size being the same. So a piece of code written for one might be subtly wrong for another.

Re: Having non-x86 machines makes your life harder

#62

[flagged]

Even though the blog appears to be by someone who doesn’t have much of a clue, this is gatekeeping. Just like in the Unix world of old before the rise of open source, many system administrators never compile any binary. And that is fine.

> Even though the blog appears to be by someone who doesn’t have much of a clue,

Hint: Chris Siebenmann has administered closed source Unices.

Re: Having non-x86 machines makes your life harder

#64

Switching to M1 MacBook Pro (ARM) from an intel machine with Windows 10 made my life so much easier. I miss the games, but everything else just works. My tablet and phone is ARM as well, and I'm not considering switching them to intel either.

But is that a intel/ARM thing? or a Windows/MAC thing? Would Windows on ARM also have a "everything else just works" benefit?

Re: Having non-x86 machines makes your life harder

#65
post #62

Earlier quoted context omitted.

Even though the blog appears to be by someone who doesn’t have much of a clue, this is gatekeeping. Just like in the Unix world of old before the rise of open source, many system administrators never compile any binary. And that is fine.

> Even though the blog appears to be by someone who doesn’t have much of a clue, Hint: Chris Siebenmann has administered closed source Unices.

That is correct, it is ‘user6723’ who is talking about that and I was responding to that user. But nevertheless the blog appears to be by someone who doesn’t have much of a clue regarding the subject matter, the arguments are rather confused and nonsensical.

Re: Having non-x86 machines makes your life harder

#66

Earlier quoted context omitted.

Even though the blog appears to be by someone who doesn’t have much of a clue, this is gatekeeping. Just like in the Unix world of old before the rise of open source, many system administrators never compile any binary. And that is fine.

It’s not gatekeeping in any sense. Technical skills are required to do technical jobs, and this person asked for any criticism or feedback given by posting a public blog that has, for some bizarre reason, gotten to the front page of hacker news. Wtf. Technical incompetence must be addressed head first, or we risk real world problems

Running ‘configure && make && make install’ is hardly a technical skill. Acquiring binaries built elsewhere is fine and saying someone doesn’t qualify if they do that is gatekeeping.

Re: Having non-x86 machines makes your life harder

#67
post #18
post #8

The author is confused. The points they make are not about x86 vs. non-x86, they're instead about mixing different architectures. Yes, if you write a program and deploy it on three machines, and they all have different pointer sizes, endianness, and executable formats (PE, ELF, etc.) then, yes that can suck. If this article was written 10 years ago, more people would probably agree. But nowadays, its perfectly possib…

Challenge: specify a mainstream architecture (e.g. targeted by Debian stable) which doesn't have char=1, short=2, int=4, long long=8 bytes with GCC or Clang.

Here is the list of Debian architectures and their characteristics:

https://wiki.debian.org/ArchitectureSpecificsMemo

It shows that there are no such Debian architectures.

Re: Having non-x86 machines makes your life harder

#69

[flagged]

Even though the blog appears to be by someone who doesn’t have much of a clue, this is gatekeeping. Just like in the Unix world of old before the rise of open source, many system administrators never compile any binary. And that is fine.

Having a standard installation for tools and libraries goes a long way to being independent of operating system updates.

Compiling and making versioned, packages of them (for example, in /opt/corp/prod/lang/gcc/12.3.0/... ) means that there can be a known good set of tools independent of operating system version and when the latter is upgraded, users can still build their products using the same paths and versions.

This is before the widespread use of containers, but doesn't change the advantages of having a reliable set of installed tools where users are in control of what versions they use.

Re: Having non-x86 machines makes your life harder

#70
post #61
post #18

Earlier quoted context omitted.

Challenge: specify a mainstream architecture (e.g. targeted by Debian stable) which doesn't have char=1, short=2, int=4, long long=8 bytes with GCC or Clang.

One major point of divergence is the size and representation of pointers, and people treating pointers as integers. Also floating point formats can vary a bit even with the size being the same. So a piece of code written for one might be subtly wrong for another.

Aren't pointers pretty much universally 64 bits, except for some old or esoteric machines?

And why would you not be able to treat one as an integer? Are there any examples of such ISAs?

Finally, floating point formats do differ, but that shouldn't affect anything except precision and binary format. Also I'm pretty sure "float" is standard IEEE 32 bit and "double" is standard 64 bit, with predefined exponent/mantissa sizes. The only thing that could differ between arches is endianness, and by far most ISAs have settled on little endian.

Post reply on HN