Changelog History
Page 5
-
v1.0.0 Changes
December 13, 2016Highlights:
- syntax
- Stable release, API now frozen
Parse
now reads input in chunks of 1KiB
- cmd/shfmt
- Add
-version
flag
- Add
- syntax
-
v0.6.0 Changes
December 05, 2016Highlights:
- syntax
Parse
now takes anio.Reader
instead of[]byte
- Invalid UTF-8 is now reported as an error
- Remove backtracking for
$((
and((
Walk
now takes a func literal to simplify its use
- syntax
-
v0.5.0 Changes
November 24, 2016Highlights:
- cmd/shfmt
- Remove
-cpuprofile
- Don't read entire files into memory to check for a shebang
- Remove
- syntax
- Use
uint32
for tokens and positions in nodes - Use
Word
andLit
pointers consistently instead of values - Ensure
Word.Parts
is never empty - Add support for expressions in array indexing and parameter expansion slicing
- Use
- cmd/shfmt
-
v0.4.0 Changes
November 08, 2016Highlights:
- ๐ฆ Merge
parser
,ast
,token
andprinter
into a single packagesyntax
- ๐ Use separate operator types in nodes rather than
Token
- ๐ Use operator value names that express their function
- Keep
;
if on a separate line when formatting - cmd/shfmt
- Allow whitespace after
#!
in a shebang
- Allow whitespace after
- syntax
- Implement operator precedence for
[[ ]]
- Parse
$(foo)
andfoo
as the same (shfmt
then converts the latter to the former) - Rename
Quoted
toDblQuoted
for clarity - Split
((foo))
nodes as their own type,ArithmCmd
- Add support for bash parameter expansion slicing
- Implement operator precedence for
- ๐ฆ Merge
-
v0.3.0 Changes
October 26, 2016Highlights:
- โ Add support for bash's
coproc
and extended globbing like@(foo)
- ๐ Improve test coverage, adding tests to
cmd/shfmt
and bringingparser
andprinter
close to 100% - ๐ Support empty C-style for loops like
for ((;;)) ...
- ๐ Support for the
>|
redirect operand - cmd/shfmt
- Fix issue where
.sh
and.bash
files might not be walked if running on a directory - Fix issue where
-p
was not obeyed when formatting stdin
- Fix issue where
- ๐ parser
$''
now generates anast.SglQuoted
, not anast.Quoted
- Support for ambiguous
((
like with$((
- Improve special parameter expansions like
[email protected]
or$!
- Improve bash's
export
typeset
,nameref
andreadonly
<>
,>&
and<&
are valid POSIX- Support for bash's
^
,^^
,,
and,,
operands inside${}
- โ Add support for bash's
-
v0.2.0 Changes
October 13, 2016Highlights:
- Optimizations all around, making
shfmt
~15% faster - cmd/shfmt
- Add
-p
flag to only accept POSIX Shell programs (parser.PosixConformant
)
- Add
- ๐ parser
- Add support for ambiguous
$((
as in$((foo) | bar)
- Limit more bash features to
PosixConformant
being false - Don't parse heredoc bodies in nested expansions and contexts
- Run tests through
bash
to confirm the presence of a parse error
- Add support for ambiguous
- ast
- Add
Walk(Visitor, Node)
function
- Add
- Optimizations all around, making
-
v0.1.0 Changes
September 20, 2016๐ Initial release.
๐ [3.5.1]: https://github.com/mvdan/sh/releases/tag/v3.5.1
๐ [3.5.0]: https://github.com/mvdan/sh/releases/tag/v3.5.0 ๐ [3.4.3]: https://github.com/mvdan/sh/releases/tag/v3.4.3 ๐ [3.4.2]: https://github.com/mvdan/sh/releases/tag/v3.4.2 ๐ [3.4.1]: https://github.com/mvdan/sh/releases/tag/v3.4.1 ๐ [3.4.0]: https://github.com/mvdan/sh/releases/tag/v3.4.0 ๐ [3.3.1]: https://github.com/mvdan/sh/releases/tag/v3.3.1 ๐ [3.3.0]: https://github.com/mvdan/sh/releases/tag/v3.3.0 ๐ [3.2.4]: https://github.com/mvdan/sh/releases/tag/v3.2.4 ๐ [3.2.2]: https://github.com/mvdan/sh/releases/tag/v3.2.2 ๐ [3.2.1]: https://github.com/mvdan/sh/releases/tag/v3.2.1 ๐ [3.2.0]: https://github.com/mvdan/sh/releases/tag/v3.2.0 ๐ [3.1.2]: https://github.com/mvdan/sh/releases/tag/v3.1.2 ๐ [3.1.1]: https://github.com/mvdan/sh/releases/tag/v3.1.1 ๐ [3.1.0]: https://github.com/mvdan/sh/releases/tag/v3.1.0 ๐ [3.0.2]: https://github.com/mvdan/sh/releases/tag/v3.0.2 ๐ [3.0.1]: https://github.com/mvdan/sh/releases/tag/v3.0.1 ๐ [3.0.0]: https://github.com/mvdan/sh/releases/tag/v3.0.0 ๐ [2.6.4]: https://github.com/mvdan/sh/releases/tag/v2.6.4 ๐ [2.6.3]: https://github.com/mvdan/sh/releases/tag/v2.6.3 ๐ [2.6.2]: https://github.com/mvdan/sh/releases/tag/v2.6.2 ๐ [2.6.1]: https://github.com/mvdan/sh/releases/tag/v2.6.1 ๐ [2.6.0]: https://github.com/mvdan/sh/releases/tag/v2.6.0 ๐ [2.5.1]: https://github.com/mvdan/sh/releases/tag/v2.5.1 ๐ [2.5.0]: https://github.com/mvdan/sh/releases/tag/v2.5.0 ๐ [2.4.0]: https://github.com/mvdan/sh/releases/tag/v2.4.0 ๐ [2.3.0]: https://github.com/mvdan/sh/releases/tag/v2.3.0 ๐ [2.2.1]: https://github.com/mvdan/sh/releases/tag/v2.2.1 ๐ [2.2.0]: https://github.com/mvdan/sh/releases/tag/v2.2.0 ๐ [2.1.0]: https://github.com/mvdan/sh/releases/tag/v2.1.0 ๐ [2.0.0]: https://github.com/mvdan/sh/releases/tag/v2.0.0 ๐ [1.3.1]: https://github.com/mvdan/sh/releases/tag/v1.3.1 ๐ [1.3.0]: https://github.com/mvdan/sh/releases/tag/v1.3.0 ๐ [1.2.0]: https://github.com/mvdan/sh/releases/tag/v1.2.0 ๐ [1.1.0]: https://github.com/mvdan/sh/releases/tag/v1.1.0 ๐ [1.0.0]: https://github.com/mvdan/sh/releases/tag/v1.0.0 ๐ [0.6.0]: https://github.com/mvdan/sh/releases/tag/v0.6.0 ๐ [0.5.0]: https://github.com/mvdan/sh/releases/tag/v0.5.0 ๐ [0.4.0]: https://github.com/mvdan/sh/releases/tag/v0.4.0 ๐ [0.3.0]: https://github.com/mvdan/sh/releases/tag/v0.3.0 ๐ [0.2.0]: https://github.com/mvdan/sh/releases/tag/v0.2.0 ๐ [0.1.0]: https://github.com/mvdan/sh/releases/tag/v0.1.0