https://discourse.ubuntu.com/t/an-update-on-rust-coreutils/8...
567 karma · joined February 1, 2017
https://discourse.ubuntu.com/t/an-update-on-rust-coreutils/8...
https://dotslash-cli.com/docs/
DotSlash to get the interpreter for your platform, and uv to get the dependencies.
Perfect for corporate setups with custom mirrors etc.
Here are some details: https://www.pixelbeat.org/docs/disk/
That bring GNU date(1) line coverage from 79.8% to 87.1%
(We have since removed the fiemap code from cp, and replaced it with LSEEK_DATA, LSEEK_HOLE)
A summary of other changes just released in GNU coreutils 9.5 are:
- mv accepts --exchange to swap files
- env accepts --argv0 to override command name
- od supports half precision floating point formats
- timeout fixes various races
- chmod -R avoids symlink replacement attack
For all the release details see: https://lists.gnu.org/archive/html/coreutils-announce/2024-0...
Right, the standard centos system binaries are used to provision services and manage hardware.
The internal services linking against the runtime libs you mention, are actually linking against about 2000 built from source packages, and are essentially a separate distro (with a distro in this sense being an ABI compatible set of libs running on a kernel)
There are actually three distros on each host. Current runtime platform, previous runtime platform, centos platform.
The actual distribution used to _run_ all Meta backend services is completely separate and built from source (it does share the (non centos) kernel). This is done for flexibility, performance, service isolation reasons
An interesting factoid is that FreeBSD/macos sort(1) was using GNU code until recently, since this is quite tricky to implement. Eventually it was reimplemented for GPL avoidance reasons.
We do consider macos though, and ensure all tests pass on macos for each release
Padding chars at the end (of stream / file / string) can be inferred from the length already processed, and thus are not strictly necessary.
Note how padding is treated is quite subtle, and has resulted in interesting variations in handling as discussed at: https://eprint.iacr.org/2022/361.pdf
* The fast version is still simple enough
* The general functionality being provided is to output arbitrary data repeatedly, and it can be useful to do this as fast as possible
https://www.gnu.org/software/gnulib/manual/html_node/manywar...
That's used in dev mode for various projects like GNU coreutils etc.
When distros etc. are building though these warnings are not used. It's worth stating as I've seen this issue many times, that -Werror at least should not be used by default for third parties building your code
https://www.pixelbeat.org/programming/gcc/string_buffers.htm...
https://www.pixelbeat.org/programming/gcc/string_buffers.htm...
The technique is used extensively in the GNU coreutils test suite, as detailed in the "performance" section at https://www.pixelbeat.org/docs/coreutils-testing.html
We have faster iteration than upstream distros. More flexible. More tuned. I won't give exact details but 1% CPU gives extremely significant monetary savings, and there are at least 15% savings from static linking, PGO, LTO, more appropriate `-march`, more appropriate CPU security sharing considerations, ...
Billions of dollars per year, in essentially electricity and required systems savings (considering the scale of serving 3 billion users a day).
Also devs get access to the latest compilers, language levels, and libs, completely independent of distros, who have a more general compat issue to contend with. Considering there are about 30k tech in Meta this value also multiplys up.