This release drops support for Go 1.22 and includes many enhancements.
- cmd/shfmt
- Support
-l=0
and-f=0
to split filenames with null bytes - #1096
- Support
- syntax
- New iterator API:
Parser.WordsSeq
- Fix
Parser.Incomplete
andIsIncomplete
to work well withParser.Words
- #937 - Initial support for parsing incomplete shell via
RecoverErrors
- Expand
LangError
to include which language was used when parsing
- New iterator API:
- interp
- Refactor setting variables to fix array declaration edge cases - #1108
- Fix
test
read/write/exec operators to work correctly on directories - #1116 - Replace the
cancelreader
dependency withos.File.SetReadDeadline
- Avoid waiting for process substitutions, matching Bash
- Skip
OpenHandler
when opening named pipes for process substitutions - #1120 - Use
TMPDIR
if set viaEnv
to create temporary files such as named pipes
- expand
Consider becoming a sponsor if you benefit from the work that went into this release!
Binaries built on go version go1.24.0 linux/amd64
with:
CGO_ENABLED=0 go build -trimpath -ldflags="-w -s -X=main.version=v3.11.0"