v3.11.0
This release drops support for Go 1.22 and includes many enhancements.
- cmd/shfmt
- Support
-l=0and-f=0to split filenames with null bytes - #1096
- Support
- syntax
- New iterator API:
Parser.WordsSeq - Fix
Parser.IncompleteandIsIncompleteto work well withParser.Words- #937 - Initial support for parsing incomplete shell via
RecoverErrors - Expand
LangErrorto include which language was used when parsing
- New iterator API:
- interp
- Refactor setting variables to fix array declaration edge cases - #1108
- Fix
testread/write/exec operators to work correctly on directories - #1116 - Replace the
cancelreaderdependency withos.File.SetReadDeadline - Avoid waiting for process substitutions, matching Bash
- Skip
OpenHandlerwhen opening named pipes for process substitutions - #1120 - Use
TMPDIRif set viaEnvto create temporary files such as named pipes
- expand
- New iterator API:
FieldsSeq - Correctly handle repeated backslashes in double quotes - #1106
- Don't expand backslashes inside here-documents - #1070
- Replace the
Unsetkind with a newVariable.Setboolean field
- New iterator API:
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"