-
I read the readme that way too - a table with included utils with conflict status, and a list of intenationally excluded utils.
But the rest are in there:
https://github.com/microsoft/coreutils/blob/3fa7aaf832ffc81d...
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
There's also a windows port of busybox if you want something more stable. w64devkit uses it.
https://github.com/rmyorston/busybox-w32
-
A fair question is why this fork of coreutils is required when the original Rust rewrite (https://github.com/uutils/coreutils/) supports Windows, in addition to Linux, macOS and wasm.
The reason seems to be a few windows specific fixes (https://github.com/uutils/coreutils/compare/main...microsoft...) which can probably be upstreamed into the main repo.
-
-
Bash itself is an odd duck in scripting, with some dark historical crevices: http://tiswww.case.edu/~chet/bash/POSIX
A better option is a pure POSIX shell, the best-known of which in Linux is dash, but there is an existing Ada port to Windows here:
https://github.com/AdaCore/gsh
If non-POSIX features are required, the Android decision for mksh might suggest oksh for Windows.
-
The question is not odd at all. Windows 10 Enterprise LTSC 2019 is supported until 2029: https://learn.microsoft.com/en-us/lifecycle/products/windows...
Also, MS does absolutely support EoL versions of their OS - it took MSVC's STL until 2024 to finally drop support for Windows 7 (whose final ESU update was 2023): https://github.com/microsoft/STL/issues/4858 - it isn't unlikely that they (STL maintainers) are not going to get approval for dropping Windows 10 support before 2029.
-
You're conflating MSYS2 with Mingw-w64. MSYS2 installation comes with multiple environments/ABIs and MSYS2 mode a fork of Cygwin. They fork Cygwin, put some patches on and rename the DLL as msys-2.0.dll . Here is the sources for MSYS2 runtime that produces it: https://github.com/msys2/msys2-runtime . To run bash you need stty, fork, exec. Cygwin implements this via a executable backdoor hack. Since MSYS2 is a fork it uses the same implementation.
Unlike Cygwin MSYS2's goal isn't to be a complete system but ship just enough tooling to enable development with Mingw-w64. Mingw-w64 is the toolchain that ships GCC and it also defines its own ABI where the C ABI is the same as MSVC / Win32 ABI except that Mingw-ABI comes with its own threading and structured exception handling infrastructure. For C++ Mingw-w32 uses Itanium ABI instead of MSVC. If you use GCC to compile the debugging symbols will be DWARF with Mingw-32.
You can also use Clang environments where you can generate PDB debug symbols and use native Win32 threading.
Related posts
-
Microsoft to Ship Coreutils with Windows
-
What 44 CVEs Tell You About Rust's Safety Boundary
-
Rust Coreutils v0.6.0 Release: 96% GNU compatibility with safety improvements
-
Rust Coreutils 0.5.0 Release: 87.75% compatibility with GNU Coreutils
-
Fix(dd): ensure full block writes to handle partial writes to slow pipes