5 ms·
Is this related to the a.out file that gcc outputs if you don't specify a filename with -o? Also, I thought bit rot was bits in files changing over time due to
by ihuman 8y ago
Is this related to the a.out file that gcc outputs if you don't specify a filename with -o? Also, I thought bit rot was bits in files changing over time due to the storage medium failing; is this a different use of the term?
- enriquto 8y ago> Is this related to the a.out file that gcc outputs if you don't specify a filename with -o? Yes, it is historically related. The file format is the descendant of binary format of the first C compiler, that already produced a.out files by default. Today in linux you typically get an ELF, but is still called like that.
- schoen 8y agoSee downthread: https://news.ycombinator.com/item?id=19338196 https://news.ycombinator.com/item?id=19338196 (answer: historically related, but the gcc output isn't in this format today)
- pwg 8y ago> Is this related to the a.out file that gcc outputs if you don't specify a filename with -o? It is not directly related to the filename used by gcc. It is related to the a.out binary executable file format (https://en.wikipedia.org/wiki/A.out https://en.wikipedia.org/wiki/A.out). It is confusing due to the file format, and the choice of default name by gcc, having the same name. > Also, I thought bitrot was bits in files changing over time due to the storage medium failing; That is the usual meaning for "bitrot". > is this a different use of the term? To some extent yes. In this context the use of "bitrot" is related to parts of the source code drifting apart from changes made in other areas of the source. So in a very broad sense, a similar meaning, but also a very contextual based meaning.
- schoen 8y agoSee http://www.jargon.net/jargonfile/s/softwarerot.html http://www.jargon.net/jargonfile/s/softwarerot.html ("maybe be semi-humorously ascribed to bit rot")
- SilasX 8y agoAm I reading that Wikipedia link right, that the default name of compiled executables is a.out because they originally were emitted in that format?
- Sniffnoy 8y agoNo, you've got it backwards. The format is called that because it was the format of the a.out file.
- SilasX 8y agoSo they named the standard compiler output "a.out", for independent reasons, and when it came time to distinguish formats, they called the original standard format "a.out" just because that's what the file name always was?
- Sniffnoy 8y agoExactly. I mean, I don't know the exact history of when the name "a.out" got transferred to the format, but I have to assume that it wasn't until there was something to contrast it with.
- Nursie 8y ago> I thought bit rot was bits in files changing over time due to the storage medium failing; is this a different use of the term? My understanding is that it's more to do with things moving on around a project that's not actively maintained - That piece of software you wrote 15 years ago might not run any more because the linux kernel has changed, or the libc api. It may not compile straight off because a dependency is gone, or a header file has moved, or all sorts of little niggly things. It's not literal rot, but a sort of metaphor for what happens when you leave stuff for ages.
- csense 8y ago> I thought bit rot was bits in files changing over time due to the storage medium failing No, that's not what "bit rot" means. "Bit rot" refers to software that stops working because of non-backward-compatible changes in the hardware/software environment. For example, if you try to play an old Windows 95 game on Windows 10, you will probably have a bad time.
- rmorey 8y agoThe term "bit rot" can refer to both of these phenomenon. I usually see the second called "software rot"