Skip to content

Release v1.2.1

Latest

Choose a tag to compare

@github-actions github-actions released this 02 Nov 02:49
· 71 commits to main since this release
a86b562

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:

  1. Download the appropriate package for your architecture
  2. Extract to your desired directory
  3. Navigate to the usr/bin directory
  4. Run create_links.ps1 to 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
  5. Add the usr\bin directory to your PATH

What's Changed

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's collect_repeat enumerated every parse of a repetition with no memoization, so a pattern such as s/^\(.*\)*$/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/-m print /-separated canonical names — GNU canonicalize_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's BATS_ROOT=$(cd -P ... && pwd -P) resolution.
  • ln -s now tries CreateSymbolicLinkW with SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE first, so Developer Mode creates real symlinks without elevation; the copy fallback stays opt-in (GNU ln has no silent downgrade to mirror, coreutils 9.4 ln.c).

wpm / build (#1492, #1497)

  • wpm --force refreshes stale shims.map entries.
  • 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, true and keeps echo/printf/pwd (wpm links rebuild → created=171); the full edition still materializes all 178 entries under the -full asset names, outside wpm.
  • No FFI changes: this release touches no FFI surface; BUILD_FFI stays off and no FFI artifacts are shipped.