(no title)
fph | 1 month ago
They come from Lapack, the standard linear algebra foundation library, which is written in Fortran 77. That library was first written in 1992, when the Fortran 90 standard was still new and not supported everywhere, so they stuck with the earlier version. Lapack has become the standard library for dense non-parallel linear algebra; it is still maintained and updated, but the basic math algorithms haven't changed much, so there was no need to replace it entirely. Today there are also processor-specific libraries like MKL or Apple Accelerate, but they still all follow the same Lapack API.
When Fortran-77 was standardized, they decided to keep function names at most 6 letter long, to "ensure portability". I.e., they wanted to support certain compilers and architectures that were already considered old in 1977.
TL;DR: if you can't read easily those flame graphs today, it's because of backward compatibility with certain mainframes that probably date back to the late 1960s.
aebtebeten|29 days ago
https://en.wikipedia.org/wiki/36-bit_computing#History
EDIT: I had thought 10 digits of precision were required for certain calculations, but the WP article points out that they may have just corresponded to the operators having had 10 digits on 2 hands, in which case we're being backwards compatible with Hox genes, specifically Hoxd, and tetrapod pentadactyly is backwards compatible to hundreds of millions of years:
https://www.popsci.com/science/why-five-fingers-toes/
nyrikki|29 days ago
Fortran predates this and was a different lineage than IBM, but not how six char symbols were a request
> The MACRO language had been used on the TX-0 for some three years previous to the writing of MIDAS. Hence, MIDAS incorporates most, of the features which have been requested by users of MACRO, such as more flexible macro Instructions, six character symbols and relocation.
Note that when porting b to the pdp-11, which was ascii vs the earlier FIODEC/flexowriter 6 bit paper tapes is why c case statements fall through, they used it to allow lower case commands in ed as an example.
Flexowriters are 1940s iirc, and TX-0 through the early pdps were octal so it makes sense to grow in multiples of the 3.3 bit lines of paper tape
[0] http://bitsavers.org/pdf/mit/rle_pdp1/memos/PDP-1_MIDAS.pdf
jsrcout|29 days ago
Never thought about why that might be other than "yeah, memory is expensive".
AnimalMuppet|29 days ago
fph|29 days ago
[1]: https://netlib.org/linpack/dgefa.f
buescher|29 days ago
KineticLensman|1 month ago
jsrcout|29 days ago