Repository navigation
Windows binaries for v1.2.1
Architectures:
- x64: Windows 64-bit
- ARM64: Windows ARM64 (cross-compiled)
Full-only commands (edition split, #1438):
The default edition does not create entry links for [, env, false, kill, test, time, true — these commands' user-facing semantics are defined by your host shell's builtins (winuxcmd <name> ... still works). The full edition materializes every entry and ships under the -full asset names; it is not distributed through wpm:
- WinuxCmd-1.2.1-win-x64-full.7z / .zip / .tar.gz
- WinuxCmd-1.2.1-win-arm64-full.7z / .zip / .tar.gz
Files included:
- WinuxCmd-1.2.1-win-x64.7z / .zip / .tar.gz
- WinuxCmd-1.2.1-x64-setup.exe
- WinuxCmd-1.2.1-win-arm64.7z / .zip / .tar.gz
- WinuxCmd-1.2.1-arm64-setup.exe
- WinuxCmd-skill-v1.2.1.zip (AI agent skill bundle, attached separately)
Package Contents:
usr/bin/winuxcmd.exe- Main executable (multi-call binary: one exe provides all commands)usr/bin/create_links.ps1- Generates per-command links (hardlinks on NTFS, symlinks otherwise)- Environment and lifecycle scripts:
winux.ps1/winux.cmd/winux-activate.ps1,winuxcmd_init.cmd/winuxcmd_uninstall.cmd README.md/README-ZH.md/LICENSE
Package Formats:
- 7Z: Best compression (requires 7-Zip)
- ZIP: Native Windows support (right-click to extract)
- TGZ: tar.gz format (use
tar -xzf filename.tar.gz) - EXE: standalone installer with PATH and PowerShell integration tasks
Usage:
- Download the appropriate package for your architecture
- Extract to your desired directory
- Navigate to the
usr/bindirectory - Run
create_links.ps1to generate command links# For NTFS filesystems (recommended) .\create_links.ps1 # For non-NTFS filesystems, use symbolic links .\create_links.ps1 -UseSymbolicLinks # To remove all links later .\create_links.ps1 -Remove
- Add the
usr\bindirectory to your PATH
What's Changed
- fix(sed): memoize repeat exploration — nested quantifier no longer hangs (Fixes #1495, Refs rubash#2481) by @caomengxuan666 in #1498
- fix: readlink -f POSIX separators, unprivileged ln -s (+opt-in copy fallback), wpm --force shims.map refresh (Fixes #1491 #1492 #1497) by @caomengxuan666 in #1499
- fix(sed): POSIX subexpression capture rules (Fixes #1496) by @caomengxuan666 in #1501
- fix: readers bridge the winux fifo marker (Fixes #1493) by @caomengxuan666 in #1502
- chore(release): WinuxCmd 1.2.1 by @caomengxuan666 in #1503
Full Changelog: v1.2.0...v1.2.1
What's new in 1.2.1
sed engine
- Nested quantifiers no longer hang (#1495):
portable_regex'scollect_repeatenumerated every parse of a repetition with no memoization, so a pattern such ass/^\(.*\)*$/X/split a 32-char line into every ordered chunk decomposition — exponential work. Repeat exploration is memoized now; the historical reproducer (printf 'abcdef…32chars\n' | sed 's/^\(.*\)*$/X/') returns in well under a second (Refs rubash#2481). - POSIX subexpression capture rules (#1496): capture groups are numbered by their opening delimiter (POSIX.1-2017 XBD 9.1, as glibc does) instead of closing order, and empty loop iterations are counted toward
\{m,n\}lower bounds (glibc empty-iteration accounting).printf 'xxxx\n' | sed 's/^\(\(x\)*\)*$/[\1|[\2]]/'now prints[xxxx|[x]]like GNU sed.
readlink / ln (#1491)
readlink -f/-e/-mprint/-separated canonical names — GNUcanonicalize_filename_mode()assembles them with/by construction. The drive spelling the resolver chose is kept, and the no-mode form still prints the stored target text verbatim. This unblocks bats-core'sBATS_ROOT=$(cd -P ... && pwd -P)resolution.ln -snow triesCreateSymbolicLinkWwithSYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATEfirst, so Developer Mode creates real symlinks without elevation; the copy fallback stays opt-in (GNUlnhas no silent downgrade to mirror, coreutils 9.4ln.c).
wpm / build (#1492, #1497)
wpm --forcerefreshes staleshims.mapentries.- Local MSVC 14.51 source builds no longer break on missing
<ctime>/<string_view>includes (CI toolchains were unaffected).
FIFO marker read-side bridge (#1493)
Reader applets that opened operands through a raw std::ifstream bypassed the !<fifo> marker bridge and read the 7 marker bytes as content (od -c p printed !<fifo> literally while the writer blocked in the rendezvous). Those operand opens now route through file_io::open_binary_file, so reader operands rendezvous with the write bridge like the shared readers do.
Packaging unchanged
- No new strip: the #1438 edition split is untouched — the default edition strips exactly
[,env,false,kill,test,time,trueand keepsecho/printf/pwd(wpm links rebuild→ created=171); the full edition still materializes all 178 entries under the-fullasset names, outside wpm. - No FFI changes: this release touches no FFI surface;
BUILD_FFIstays off and no FFI artifacts are shipped.