v0.8.0 - 2021-11-06
Added
* disable=all now conveniently disables all warnings
* external-sources=true directive can be added to .shellcheckrc to make
shellcheck behave as if -x was specified.
* Optional check-extra-masked-returns for pointing out commands with
suppressed exit codes (SC2312).
* Optional require-double-brackets for recommending [[ ]] (SC2292).
* SC2286-SC2288: Warn when command name ends in a symbol like /.)'"
* SC2289: Warn when command name contains tabs or linefeeds
* SC2291: Warn about repeated unquoted spaces between words in echo
* SC2292: Suggest [[ over [ in Bash/Ksh scripts (optional)
* SC2293/SC2294: Warn when calling eval with arrays
* SC2295: Warn about "\({x#\)y}" treating $y as a pattern when not quoted
* SC2296-SC2301: Improved warnings for bad parameter expansions
* SC2302/SC2303: Warn about loops over array values when using them as keys
* SC2304-SC2306: Warn about unquoted globs in expr arguments
* SC2307: Warn about insufficient number of arguments to expr
* SC2308: Suggest other approaches for non-standard expr extensions
* SC2313: Warn about read with unquoted, array indexed variable
Fixed
* SC2102 about repetitions in ranges no longer triggers on [[ -v arr[xx] ]]
* SC2155 now recognizes typeset and local read-only declare statements
* SC2181 now tries to avoid triggering for error handling functions
* SC2290: Warn about misused = in declare & co, which were not caught by
SC2270+
* The flag --color=auto no longer outputs color when TERM is "dumb" or
unset
Changed
* SC2048: Warning about $* now also applies to ${array[*]}
* SC2181 now only triggers on single condition tests like [ $? = 0 ].
* Quote warnings are now emitted for declaration utilities in sh
* Leading _ can now be used to suppress warnings about unused variables
* TTY output now includes warning level in text as well as color
Removed
* SC1004: Literal backslash+linefeed in '' was found to be usually correct
Features
add username to Pulumi module (#3428)
Enable Undistract Me for Linux (#3547)
starship bug-report sets syntax highlighting for config file (#3529)
add a container indicator (#3304)
cli: Print arguments if argument parsing fails (#3560)
cmd_duration: Make notification timeout configurable (#3515)
install: Add posix shell check (#3474)
localip: add module to print the current ipv4 address (#3289)
pwsh: Set ExtraPromptLineCount (#3439)
pwsh: Set STARSHIP_SHELL to pwsh on PS >5 (#3443)
Bug Fixes
Correctly detect older versions of powershell in bug-report (#3543)
bash: Restore previous exit status in bash init (#3521)
elvish: use $pwd for logical-path (#3534)
nodejs: use e718 as the default of symbol in node configuration (#3533)
status: Enable to convert from i64 to hex_status by casting instead of
parsing status. (#3462)
Code Refactoring
Improve compatibility with Zsh prompt theme system (#3480)
zsh: using add-zsh-hook instead of add hook manually (#3537)
Performance Improvements
elvish: Use built-in randint instead of starship session. (#3479)
What's New:
-You can now learn about some of the upcoming changes in Nushell by reading the
tutor e-q page. It will tell you about some of the new features and breaking
changes, as well as link you to the full list of changes.
Fixes:
-Fix to the sample configuration file
-Fix to a crate description
-Bump to some dependencies in wasm support
-Update to sysinfo support
-Fix to build on latest Rust stable + clippy
Bug Fixes:
-allow compilation without battery feature (#3435)
-properties: fix regressions in status, pipestatus and terminal-width handling
(#3399)
-pwsh: Avoid polluting the global function namespace (#3424)
v1.2.0 (2022-01-14)
Features:
-add support for cmd (#3277)
-set a continuation prompt for supporting shells (#3322)
-deno: detect deno.json and deno.jsonc (#3220)
-directory: Windows path formatting via path_slash::PathBufExt (#3157)
-elvish: last command status (#3403)
-package: support for dart pub version (#3373)
-xonsh: support rprompt (#3362)
Bug Fixes:
-typo in FAQ page (#3347)
-update continuation prompt to be more minimal (#3374)
-set cwd for command execution (#3309)
-bug-report: remove git.io link shortening (#3425)
-dart: detect version output in stdout with dart 2.15+ (#3349)
-elvish: upgrade shell integration for v0.17 (#3310)
-rust: fix overrides on windows and set cwd (#3359)
Docs:
-add missing quote in bracketed preset
-Update GitHub ISSUE_TEMPLATE (#3366)
-Add nu_indicator to doc tables (#3365)
-Fix incorrect variables for hostname module (#3361)
-cmd_duration: rust-notify -> notify-rust (#3417)
-faq: for uninstalling, change which to command -v (#3394)
-Code Refactoring
-update clap to v3 (#3370)
-process_control: switch to new API (#3385)
Performance Improvements:
-git_status: tweak exec flags to omit unnecessary info (#3287)
-rust: additionally check rustup default for faster result. (#3354)
Chore:
-directory: fix typo (#3364)
-release: v1.2.0
13: Fix ~ expansion after : in assignment statements in POSIX mode.
14: Fix corruption in multibyte chars spanning a 512 byte buffer when
reading the output of a command substitution
15: Fix sign extension with charsets containing 'negative' chars
16: Make multiple ! in a [[ ]] toggle negation instead of just more of the same
Mostly from kre@
This flag should be set for packages that import pkg_resources
and thus need setuptools after the build step.
Set this flag for packages that need it and bump PKGREVISION.
What's New
Fixes
-Can optionally use an insecure SSL cert (nibon7)
-Fixed a crash when viewing text files (nibon7)
-Build fixed for NetBSD (0323pin)
Breaking change
-For naming consistency, into column_path is now into column-path
ChangeLog
2019-12-16 Timothy Sample <samplet@ngyro.com>
Update the NEWS file.
NEWS: Update for release 0.2.0.
2019-12-16 Timothy Sample <samplet@ngyro.com>
Make the bootstrap test work with current Guix.
* tests/bootstrap/bash-without-bash.scm (%boot0-inputs): Call the
upstream '%boot0-inputs' to get the list of packages.
2019-12-10 Timothy Sample <samplet@ngyro.com>
Generate 'version.texi' reproducibly.
* Makefile.am ($(srcdir)/doc/version.texi): New rule (overriding one
provided by Automake).
2019-12-09 Timothy Sample <samplet@ngyro.com>
Add janneke to the ChangeLog copyright notice.
2019-12-09 Jan Nieuwenhuizen <janneke@gnu.org>
Timothy Sample <samplet@ngyro.com>
Allow 'make dist' in a Git worktree.
* Makefile.am (dist-hook, gen-ChangeLog): Test for mere existence of
.git instead of asserting a directory.
2019-12-09 Timothy Sample <samplet@ngyro.com>
Generate the ChangeLog reproducibly.
* build-aux/gitlog-to-changelog-repro.patch: New file.
* Makefile.am (EXTRA_DIST): Add it.
(build-aux/gitlog-to-changelog-repro): New rule.
(gen-ChangeLog): Use 'gitlog-to-changelog-repro'.
(DISTCLEANFILES): Add 'build-aux/gitlog-to-changelog-repro'.
2019-12-09 Jan Nieuwenhuizen <janneke@gnu.org>
Timothy Sample <samplet@ngyro.com>
Generate reproducible source tarballs.
* Makefile.am (dist-hook): Generate a '.tarball-timestamp' file.
(GZIP_ENV): Override, adding '--no-name'.
(am__tar): Override, adding flags to create reproducible source
tarballs.
2019-12-09 Timothy Sample <samplet@ngyro.com>
Allow running 'make dist' from extracted tarball.
* Makefile (dist-hook): Check for '.git' before generating
'.tarball-manifest'.
2019-12-09 Timothy Sample <samplet@ngyro.com>
Generate ChangeLog from Git.
* ChangeLog: Update Git log URL and add a copyright notice.
* Makefile.am (gen-ChangeLog): Use 'gitlog-to-changelog' to generate
the ChangeLog.
2019-12-09 Jan Nieuwenhuizen <janneke@gnu.org>
gash compat textual-ports: Add put-char.
* gash/compat/textual-ports.scm: Add put-char.
2019-12-09 Timothy Sample <samplet@ngyro.com>
Initialize the current locale on Guile 2.0.
* gash/gash.scm: Initialize the current locale on Guile 2.0.
2019-12-09 Timothy Sample <samplet@ngyro.com>
Allow one-armed 'if-guile-version-below'.
* gash/compat.scm: Allow one-armed 'if-guile-version-below' syntax and
use it to simplify the conditional definitions throughout.
2019-12-09 Timothy Sample <samplet@ngyro.com>
Use bindings with regular built-ins.
* gash/shell.scm (sh:exec-let): Save and set variables according to
'bindings' before executing a regular built-in.
2019-12-09 Timothy Sample <samplet@ngyro.com>
Reap every process in a pipeline.
* gash/shell.scm (waitpid/any): New procedure.
(sh:pipeline): Use it to reap every process spawned while executing a
pipeline.
2019-12-09 Timothy Sample <samplet@ngyro.com>
Do not leak ports into pipeline processes.
* gash/shell.scm (swap-and-shift-pairs): Remove procedure.
(make-pipes): Remove procedure.
(plumb): Accept another port as an argument and close it when setting
up the child process.
(sh:pipeline): Do not use 'make-pipes' to create all the pipe ports
upfront, but rather create them as needed and give them directly to
'plumb'.
2019-12-09 Jan Nieuwenhuizen <janneke@gnu.org>
Timothy Sample <samplet@ngyro.com>
Test executing redirect-created files immediately.
* tests/redirects.org (Files opened for redirect can be executed
immediately): New test.
2019-12-09 Timothy Sample <samplet@ngyro.com>
Close ports opened for redirects.
* gash/shell.scm (redir->parameter+port): Rename this...
(process-redirect): ...to this, and make it return a list with the
third element being a boolean indicating if the port was opened by us.
(sh:with-redirects): Close ports when the new boolean is set.
2019-12-09 Timothy Sample <samplet@ngyro.com>
Enable 'glob' specification test
* tests/spec/Makefile.am (TESTS): Add 'glob'.
* tests/spec/oil.scm: Patch one of its tests and filter out eleven
others.
2019-12-09 Timothy Sample <samplet@ngyro.com>
Respect the 'noglob' option.
* gash/word.scm (expand-pathnames): Do not expand pathnames if the
'noglob' option is set.
2019-12-09 Timothy Sample <samplet@ngyro.com>
Fix pathname expansion.
The old implementation had several bugs, prompting this complete
rewrite.
* gash/compat/srfi-43.scm (vector-empty?): New procedure.
* gash/pattern.scm (pattern-null?): New procedure.
* gash/word.scm (qword->pattern-string): New procedure.
(qword->pattern): Rewrite using 'qword->pattern-string'.
(find-files): New procedure.
(expand-pathnames): Rewrite using 'find-files' and add a docstring.
* tests/unit/word.scm: Add tests.
(mock): New syntax.
(make-pure-scandir): New procedure.
(with-mocked-files): New syntax.
2019-12-09 Timothy Sample <samplet@ngyro.com>
Simplify the 'pattern' data structure.
* gash/pattern.scm (<pattern>): Remove the 'start-anchored?' and
'end-anchored?' fields.
(parse-pattern): Replace the fields with empty parts at the start or
end of the parts list.
(pattern-plain?): Instead of checking the fields, just check the
number of parts.
(pattern-match?, pattern-drop, pattern-drop-right): Do not worry about
the fields, because the empty parts ensure the right thing happens.
2019-12-09 Timothy Sample <samplet@ngyro.com>
Swap semantics of ':+' and '+'.
These were mixed up, with ':+' behaving like '+' and vice versa.
* gash/word.scm (word->qword): Swap implementations of '<sh-ref-and>'
and '<sh-ref-and*>'.
* tests/unit/word.scm: Swap tests.
2019-12-09 Timothy Sample <samplet@ngyro.com>
Enable 'command-sub' specification test
* tests/spec/Makefile.am (TESTS): Add 'command-sub'.
* tests/spec/oil.scm: Patch four of its tests and filter out another.
2019-12-09 Timothy Sample <samplet@ngyro.com>
Fix case statements in '$(...)' substitutions.
* gash/parser.scm (make-parser): Fix the 'pattern!' rule so that it
gets reduced before reading an 'RPAREN' token.
2019-12-09 Timothy Sample <samplet@ngyro.com>
Add test for backquoted commands in heredocs.
* tests/unit/parser.scm: Add test.
2019-12-09 Timothy Sample <samplet@ngyro.com>
Correctly parse double-quoted backquoted commands.
* gash/lexer.scm (read-backquoted-command): Make the default procedure
accept a 'quoted?' keyword.
(get-backquoted-command): Accept a 'quoted?' keyword and pass it on to
'read-backquoted-command'.
(get-expansion): Accept a 'quoted?' keyword and pass it on to
'get-backquoted-command'.
(get-double-quotation): Set the 'quoted?' keyword when calling
'get-expansion'.
* tests/unit/lexer.scm: Add tests.
* gash/parser.scm (call-with-backquoted-input-port): Accept a
'quoted?' keyword which, if set, adds the double quote character to
the set of escapable characters.
(read-sh/backquoted): Accept a 'quoted?' keyword and pass it on to
'call-with-backquoted-input-port'.
* tests/unit/parser.scm: Add tests.
2019-12-08 Timothy Sample <samplet@ngyro.com>
Implement asserting references.
* gash/word.scm (word->qword): Add an implementation for the
'<sh-ref-assert>' and '<sh-ref-assert*>' cases.
* tests/variable-operators.org: New file.
* Makefile.am (FULL_TESTS): Add it.
2019-12-08 Timothy Sample <samplet@ngyro.com>
Reset exit status on assignment.
* gash/eval.scm (eval-word): Add 'on-command-substitution' keyword.
(eval-sh): On '<sh-set!>' reset the exit status unless a command
substitution has occurred.
* tests/assignments.org: Add tests.
2019-12-08 Timothy Sample <samplet@ngyro.com>
Initialize the 'IFS' variable.
* gash/environment.scm (initial-variables): Initialize 'IFS'.
2019-12-08 Timothy Sample <samplet@ngyro.com>
Only throw for specific special built-in errors.
* gash/shell.scm (sh:exec-let): Do not throw on special built-in
errors.
* gash/built-ins/break.scm (main),
gash/built-ins/continue.scm (main),
gash/built-ins/return.scm (main),
gash/built-ins/shift.scm (main): Throw on error.
2019-12-08 Timothy Sample <samplet@ngyro.com>
Make 'trap' handle a numerical action.
* gash/built-ins/utils.scm (string->nonnegative-integer): New procedure.
* gash/built-ins/trap.scm (main): If the first argument is a number,
treat it as if the action were '-'.
2019-12-08 Timothy Sample <samplet@ngyro.com>
Fix 'string->positive-integer' docstring typo.
* gash/built-ins/utils.scm (string->positive-integer): Fix a typo in
the docstring.
2019-12-08 Timothy Sample <samplet@ngyro.com>
Make 'read' handle logical lines.
* gash/built-ins/read.scm (read-logical-line): New procedure.
(main): Use it unless given the '-r' option.
* tests/read.org: Add tests.
2019-12-08 Timothy Sample <samplet@ngyro.com>
Make 'read' handle input field splitting.
* gash/built-ins/read.scm (split-fields): New procedure.
(main): Use it to split the input into fields and assign each field to
its corresponding variable.
* tests/read.org: New file.
* Makefile.am (FULL_TESTS): Add it.
2019-11-24 Timothy Sample <samplet@ngyro.com>
Handle nested lists when removing quotes.
* gash/word.scm (remove-quotes): Handle nested lists.
(split-fields) <wedge-apart-quote>: Likewise.
* tests/unit/word.scm: Add test.
2019-11-24 Timothy Sample <samplet@ngyro.com>
Use temporary assignments when calling functions.
* gash/environment.scm (save-variables-excursion): New procedure.
* gash/shell.scm (sh:exec-let): Use it to set up temporary assignments
during the extent of a function.
* tests/temporary-assignments.org: New file.
* Makefile.am (TESTS): Add it.
2019-11-24 Timothy Sample <samplet@ngyro.com>
Delay bracket expression errors in patterns.
* gash/pattern.scm (parse-matching-bracket-expression): Do not
report errors until a full bracket expression has been parsed.
* tests/unit/pattern.scm: Add test.
2019-11-24 Timothy Sample <samplet@ngyro.com>
Use '(gash compat)' in '(gash built-ins utils)'.
This was omitted from ffe9fc1f47306dd526a5443689c129859e72d7ae.
* gash/built-ins/utils.scm: Use the '(gash compat)' module.
2019-11-24 Timothy Sample <samplet@ngyro.com>
Enable 'var-op-strip' specification test
* tests/spec/Makefile.am (TESTS): Add 'var-op-strip'.
* tests/spec/oil.scm: Patch two of its tests and filter out four
others.
2019-11-24 Timothy Sample <samplet@ngyro.com>
Use UTF-8 when processing specification tests.
* tests/spec/oil.scm: Set the encoding on the input and output ports
to UTF-8.
2019-11-24 Timothy Sample <samplet@ngyro.com>
Implement pattern-based variable operators.
This commit adds an implementation for the '#', '##', '%', and '%%'
variable operators.
* gash/word.scm (word->qword): Add an implementation for the
'<sh-ref-except-min>', '<sh-ref-except-max>', '<sh-ref-skip-min>',
and '<sh-ref-skip-max>' cases.
2019-11-24 Timothy Sample <samplet@ngyro.com>
Fix docstring for 'parameter-ref'.
* gash/word.scm (parameter-ref): Fix docstring.
2019-11-24 Timothy Sample <samplet@ngyro.com>
Remove tests for the '/' variable operator.
This is a Bash-specific feature, which means that it is out of scope
for now.
* tests/variable-patterns.org (slash, slash-string,
slash-string-slash): Delete tests.
2019-11-24 Timothy Sample <samplet@ngyro.com>
Add pattern dropping procedures.
* gash/pattern.scm (string-contains-part-right): New procedure.
(pattern-drop): New procedure.
(pattern-drop-right): New procedure.
* tests/unit/pattern.scm: Test the dropping procedures.
2019-11-24 Timothy Sample <samplet@ngyro.com>
Use a record type for patterns.
* gash/compat/srfi-43.scm: New file.
* Makefile.am: Add it.
* gash/pattern.scm (<pattern>): New record type.
(parse-part): New procedure.
(parse-pattern): Return a '<pattern>'.
(pattern-plain?, pattern-match?): Accept a '<pattern>'.
(string-starts-with-part, string-ends-with-part,
string-contains-part): Treat 'part' as a vector.
2019-11-24 Timothy Sample <samplet@ngyro.com>
Add tests for 'pattern-plain?'.
* tests/unit/pattern.scm: Add tests for 'pattern-plain?'.
2019-11-24 Timothy Sample <samplet@ngyro.com>
Do not test Bash with the specification tests.
* tests/spec/oil.scm: Disable testing Bash in 'spec.sh'.
2019-08-20 Timothy Sample <samplet@ngyro.com>
Remove extra import from 'run-test-suite'.
The '(ice-9 textual-ports)' module is not needed, and using it breaks
the test suite on Guile 2.0.
* tests/run-test-suite.in: Do not use '(ice-9 textual-ports)'.
2019-08-03 Timothy Sample <samplet@ngyro.com>
Add missing '(gash compat)' import.
This was omitted from ffe9fc1f47306dd526a5443689c129859e72d7ae.
* gash/shell.scm: Use the '(gash compat)' module.
2019-08-01 Timothy Sample <samplet@ngyro.com>
Use the 'site' Guile directories when installing.
Thanks to Ludovic Courtès <ludo@gnu.org> for patching this in the Guix
package definition.
* build-aux/guile.am (moddir, ccachedir): Use the 'site' directories.
2019-08-01 Timothy Sample <samplet@ngyro.com>
Use 'sh:exit' for 'errexit'.
* gash/shell.scm (errexit): Exit using 'sh:exit'.
* tests/unit/shell.scm: Make sure exit handlers are called on
'errexit'.
2019-08-01 Timothy Sample <samplet@ngyro.com>
Do not use 'with-continuation-barrier'.
It turns out that 'with-continuation-barrier' allows delimited
continuations (i.e., prompts) to get through.
* gash/shell.scm (%subshell): Replace 'with-continuation-barrier' with
'dynamic-wind', making sure to preserve exit statuses that were leaked
through before.
* tests/unit/shell.scm (call-with-temporary-directory): Replace
'with-continuation-barrier' with 'dynamic-wind'.
* tests/spec/oil.scm: Enable previously failing tests.
2019-08-01 Timothy Sample <samplet@ngyro.com>
Fix top-level 'break', 'continue', and 'return'.
* gash/environment.scm (sh:break, sh:continue, sh:return): Wrap
'abort-to-prompt' with 'false-if-exception'.
* gash/built-ins/break.scm (main): Print warning and continue if
'sh:break' returns.
* gash/built-ins/continue.scm (main): Likewise, but for 'sh:continue'.
* gash/built-ins/return.scm (main): Likewise, but for 'sh:return'.
* tests/functions.org (Top-level return): New test.
* tests/spec/oil.scm: Enable previously failing test.
2019-06-15 Timothy Sample <samplet@ngyro.com>
Handle 'return' errors.
* gash/built-ins/utils.scm (string->exit-status): New procedure.
* gash/built-ins/return.scm (main): Use it to simplify argument
checking; check for too many arguments; and print messages on
errors.
* tests/functions.org (Too many arguments to return): New test.
2019-06-15 Timothy Sample <samplet@ngyro.com>
Handle 'break' and 'continue' errors.
* gash/built-ins/utils.scm (string->positive-integer): New function.
* gash/built-ins/break.scm (main): Use it to simplify argument
checking; check for too many arguments; and print messages on errors.
* gash/built-ins/continue.scm (main): Ditto.
* gash/shell.scm (sh:exec-let): Throw an error if a special built-in
fails.
* tests/spec/oil.scm: Enable and adjust previously failing tests.
2019-06-15 Timothy Sample <samplet@ngyro.com>
Aggregate tests into test suites.
This is a big change, but it is conceptually quite simple. In the old
system, the tests were specified each by multiple files ('.sh', '.exit',
'.stdout', and '.stderr'), and run with the 'test.sh' script. In the
new system there are multiple tests per file ('.org') and these test
suite files are run with the 'tests/run-test-suite' script.
* tests/00-exit-0.sh,
tests/00-exit-1.exit,
tests/00-exit-1.sh,
tests/00-exit-2.exit,
tests/00-exit-2.sh,
tests/00-exit-error.exit,
tests/00-exit-error.sh,
tests/00-exit-var.exit,
tests/00-exit-var.sh,
tests/00-exit.sh: Delete files, moving their contents...
* tests/exiting.org: ...here.
* tests/01-script-arg-0.sh,
tests/01-script-arg-length.sh,
tests/01-script-arg-length.stdout,
tests/01-script-arg-list.sh,
tests/01-script-arg-list.stdout,
tests/01-script-backslash-space.sh,
tests/01-script-backslash-twice.exit,
tests/01-script-backslash-twice.sh,
tests/01-script-backslash.exit,
tests/01-script-backslash.sh,
tests/01-script-newline.exit,
tests/01-script-newline.sh,
tests/01-script-semi.exit,
tests/01-script-semi.sh,
tests/01-script-shift.sh,
tests/01-script-shift.stdout: Delete files, moving their contents...
* tests/arguments.org: ...here.
* tests/03-echo-brace.sh,
tests/03-echo-brace.stdout,
tests/03-echo-doublequotes.sh,
tests/03-echo-doublequotes.stdout,
tests/03-echo-escaped-doublequotes.sh,
tests/03-echo-escaped-doublequotes.stdout,
tests/03-echo-nesting.sh,
tests/03-echo-nesting.stdout,
tests/03-echo-quoted-doublequotes.sh,
tests/03-echo-quoted-doublequotes.stdout,
tests/03-echo.sh: Delete files, moving their contents...
* tests/words.org: ...here.
* tests/04-echo-equal.sh,
tests/04-echo-equal.stdout,
tests/04-echo-var.sh,
tests/04-echo-word-at-word.sh,
tests/04-echo-word-at-word.stdout,
tests/04-echo-word-at.sh,
tests/04-echo-word-at.stdout: Delete files, moving their contents...
* tests/variable-words.org: ...here.
* tests/05-assignment-backtick.sh,
tests/05-assignment-backtick.stdout,
tests/05-assignment-double-quote.sh,
tests/05-assignment-doublequoted-doublequotes.sh,
tests/05-assignment-doublequoted-doublequotes.stdout,
tests/05-assignment-echo.sh,
tests/05-assignment-echo.stdout,
tests/05-assignment-empty.sh,
tests/05-assignment-empty.stdout,
tests/05-assignment-singlequote.sh,
tests/05-assignment-variable-word.sh,
tests/05-assignment-variable-word.stdout,
tests/05-assignment-word-variable.sh,
tests/05-assignment-word-variable.stdout,
tests/05-assignment.sh: Delete files, moving their contents...
* tests/assignments.org: ...here.
* tests/06-command-compound-word.sh,
tests/06-command-compound-word.stdout,
tests/06-compound-word.sh,
tests/06-compound-word.stdout: Delete files, moving their contents...
* tests/compound-words.org: ...here.
* tests/07-variable-not-or.sh,
tests/07-variable-not-or.stdout,
tests/07-variable-or-doublequote.sh,
tests/07-variable-or-doublequote.stdout,
tests/07-variable-or-empty.sh,
tests/07-variable-or-empty.stdout,
tests/07-variable-or-slash.sh,
tests/07-variable-or-variable.sh,
tests/07-variable-or-variable.stdout,
tests/07-variable-or.sh,
tests/07-variable-or.stdout: Delete files, moving their contents...
* tests/variable-or.org: ...here.
* tests/08-variable-and.sh,
tests/08-variable-and.stdout,
tests/08-variable-not-and.sh,
tests/08-variable-not-and.stdout: Delete files, moving their contents...
* tests/variable-and.org: ...here.
* tests/10-else-multiple.sh,
tests/10-else.multiple.stdout,
tests/10-if-bracket-false.sh,
tests/10-if-bracket.sh,
tests/10-if-elif.sh,
tests/10-if-else.sh,
tests/10-if-false.sh,
tests/10-if-line.sh,
tests/10-if-multiple.sh,
tests/10-if-multiple.stdout,
tests/10-if-redirect.sh,
tests/10-if-test-false.sh,
tests/10-if-test.sh,
tests/10-if-word-variable.sh,
tests/10-if.sh: Delete files, moving their contents...
* tests/conditionals.org: ...here.
* tests/11-for-done-subshell.sh,
tests/11-for-done-subshell.stdout,
tests/11-for-split-sequence.sh,
tests/11-for-split-sequence.stdout,
tests/11-for.sh,
tests/11-for.stdout: Delete files, moving their contents...
* tests/loops.org: ...here.
* tests/20-and.exit,
tests/20-and.sh,
tests/20-exec.sh,
tests/20-or.sh,
tests/20-pipe-exit-0.sh,
tests/20-pipe-exit-1.exit,
tests/20-pipe-exit-1.sh,
tests/20-pipe-sed-cat.sh,
tests/20-pipe-sed-cat.stdout,
tests/20-pipe-sed.sh,
tests/20-pipe-sed.stdout,
tests/20-semi.exit,
tests/20-semi.sh: Delete files, moving their contents...
* tests/pipes-and-booleans.org: ...here.
* tests/30-for-substitution.sh,
tests/30-for-substitution.stdout,
tests/30-substitution-assignment-at.sh,
tests/30-substitution-assignment-at.stdout,
tests/30-substitution-assignment.sh,
tests/30-substitution-assignment.stdout,
tests/30-substitution-backtick.sh,
tests/30-substitution-backtick.stdout,
tests/30-substitution-redirect.sh,
tests/30-substitution-redirect.stdout,
tests/30-substitution-word.sh,
tests/30-substitution-word.stdout,
tests/30-substitution.sh,
tests/30-substitution.stdout: Delete files, moving their contents...
* tests/command-substitution.org: ...here.
* tests/40-assignment-eval-echo.sh,
tests/40-assignment-eval-echo.stdout,
tests/40-eval-echo-variable.sh,
tests/40-eval-echo-variable.stdout,
tests/40-eval.sh,
tests/40-eval.stdout: Delete files, moving their contents...
* tests/eval.org: ...here.
* tests/41-dot.sh,
tests/41-dot.stdout: Delete files, moving their contents...
* tests/dot.org: ...here.
* tests/42-export-new.sh,
tests/42-export-new.stdout,
tests/42-sh-export-new.sh,
tests/42-sh-export-new.stdout,
tests/42-sh-export.sh,
tests/42-sh-export.stdout,
tests/42-sh.sh,
tests/42-sh.stdout: Delete files, moving their contents...
* tests/exporting.org: ...here.
* tests/data/42-export-new.sh: New file (copied from
'tests/42-export-new.sh').
* tests/43-trap-subshell.sh,
tests/43-trap-subshell.stdout: Delete files, moving their contents...
* tests/signals.org: ...here.
* tests/50-iohere-builtin.sh,
tests/50-iohere.sh,
tests/50-iohere.stdout,
tests/50-redirect-append.sh,
tests/50-redirect-append.stdout,
tests/50-redirect-clobber.sh,
tests/50-redirect-clobber.stdout,
tests/50-redirect-in-out.sh,
tests/50-redirect-in-out.stdout,
tests/50-redirect-in.sh,
tests/50-redirect-merge.sh,
tests/50-redirect-merge.stdout,
tests/50-redirect-pipe.sh,
tests/50-redirect-pipe.stdout,
tests/50-redirect-sed.sh,
tests/50-redirect-sed.stdout,
tests/50-redirect-space.sh,
tests/50-redirect-space.stdout,
tests/50-redirect.sh,
tests/50-redirect.stdout: Delete files, moving their contents...
* tests/redirects.org: ...here.
* tests/60-function-at.sh,
tests/60-function-at.stdout,
tests/60-function.sh,
tests/60-function.stdout,
tests/60-subst.sh: Delete files, moving their contents...
* tests/functions.org: ...here.
* tests/70-hash-hash.sh,
tests/70-hash-hash.stdout,
tests/70-hash.sh,
tests/70-hash.stdout,
tests/70-percent-percent.sh,
tests/70-percent-percent.stdout,
tests/70-percent-space.sh,
tests/70-percent-space.stdout,
tests/70-percent.sh,
tests/70-percent.stdout,
tests/70-slash-string-slash.sh,
tests/70-slash-string.sh,
tests/70-slash-string.stdout,
tests/70-slash.sh,
tests/70-slash.stdout: Delete files, moving their contents...
* tests/variable-patterns.org: ...here.
* tests/100-bracket-file.sh,
tests/100-cd-foo.exit,
tests/100-cd-foo.sh,
tests/100-cd.sh,
tests/100-cd.stdout,
tests/100-test-false.sh,
tests/100-test-file.sh,
tests/100-test.sh: Delete files.
* tests/README: Move this...
* tests/data/README: ...here and adapt to the new directory.
* test.sh: Delete file.
* tests/run-test-suite.in: New file.
* configure.ac: Configure it.
* Makefile.am (TEST_EXTENSIONS): Replace '.sh' with '.org'.
(SH_LOG_COMPILER): Delete variable.
(ORG_LOG_COMPILER): New variable.
(FULL_TESTS, XFAIL_TESTS): Replace '.sh' tests with '.org' tests.
(BROKEN_TESTS): Delete variable.
(TEST_DATA_FILES): Remove '.exit' and '.stdout' files; add
tests/data/42-export-new.sh.
(EXTRA_DIST): Add tests/data/README; remove tests/README,
BROKEN_TESTS, and test.sh.
* .gitignore: Adjust accordingly.
2019-06-07 Timothy Sample <samplet@ngyro.com>
Update the specification tests.
* tests/spec/oil.scm: Update to the latest commit and filter out some
new failing tests.
2019-06-04 Timothy Sample <samplet@ngyro.com>
Fix a typo in NEWS.
* NEWS: Fix a typo.
Changes since 6.23.00:
8. V6.23.01 - 20211209
7. add \cc and \Uhhh, and document escape sequences
6. add $'string with escapes' ("dollar-single-quotes") (Kimmo Suominen)
5. don't glob the filetest builtin arguments twice
4. remove the duplicate echo escape parsing code and use parseescape
3. add \x{hh} \xhh \uhhh (H.Merijn Brand)
2. fix and document ln=target
1. Merge in patches from pkgsrc:
- Modernize the installation targets so that they use INSTALL_DATA,
INSTALL_PROGRAM, and MKDIR_P.
- Enable SYSMALLOC and SHORT_STRINGS on NetBSD.
- Enable NO_FIX_MALLOC and SHORT_STRINGS on OpenBSD.
For pkgsrc, items 1, 2, and 5 had already been applied via patches.
What's New
-Features:
-Add -l/--login flag for compat with other shells
-Fixes:
-save --append will now create a file if missing
-Upgraded dependencies
-Corrected spelling in crate docs and code docs
-Fixed the markup in some of the crate docs
-external arguments are now sanitized more
-upx/strip has been removed after feedback from users
-Clipboard capability via arboard removed
-Removed some unnecessary allocation
Updated provided by kre@
Changes:
9. The bash malloc implementation of malloc_usable_size() does not follow
the specification. This can cause library functions that use it to
overwrite memory bounds checking.
10. If `wait -n' is interrupted by a trapped signal other than SIGINT, it
does not completely clean up state, and that can prevent subsequent
calls to `wait -n' from working correctly.
11. When reading a compound assignment, and running it through the parser
to split it into words, we need to save and restore any alias we're
currently expanding.
12. There is a possible race condition that arises when a child process
receives a signal trapped by the parent before it can reset the signal
dispositions. The child process is not supposed to trap the signal
Today, we're releasing 0.40 of Nu. This release is includes better table imports
and much smaller release size.
What's New
-Detecting columns (jt)
Nushell now supports a new command: detect columns. This command is intended as
an easy way to handle tabular data that's written as text. Commands like ps,
ls -l, netstat, df, and others commonly output their output as text.
With detect columns, you can run the external command, and convert them into
Nushell's tabular data format.
-Smaller binaries (fdncred)
The size of the Nushell release binaries has come up as regular feedback from
Nushell users. "Why does the shell have to be so big?" And we've heard you!
Today's release now uses a combination of strip and upx to bring considerable
savings in binary size. The Linux release (plugins incl.) has dropped from
475mb to 58mb(!!), making it 88% smaller. We're seeing similar improvements in
the sizes of the macOS and Windows releases.
For tcsh and defaults for other variants, unless otherwise noted:
- Option nls enables building of NLS catalogs. Enabled by default.
- Option static enables static linking. Disabled by default.
For standalone-tcsh:
- Option static is enabled by default, except on SunOS.
- Fix building of NLS catalogs, which possibly worked at some point
in time given the existence of the NLSDIR variable in Makefile.
- Use PLIST from tcsh, with some awk to transform the entries.
- Use DESCR from tcsh as base, with an additional local DESCR. Adjust the
local DESCR to not say that the package is static, as that is controlled
by an option now (and never was true for all platforms).
- Remove unnecessary DISTINFO_FILE, INSTALLATION_DIRS, and WRKSRC.
For static-tcsh:
- Option static is not available: the package is always built like tcsh
with the static option enabled.
- Remove unnecessary DISTINFO_FILE.
Additionally, since the binary package will not include the locale
catalogues, disable building them (and unnecessarily stuffing them
in DESTDIR/share/locale).
Finally, fix installation of example files, so that the completion
rules (and csh-mode.el) are included with the package.
This is mainly a bug fix release with a couple of new features:
1. Add "jobs -Z" to setproctitle(3)
2. Add ln=target in LS_COLORS
3. Add a :Q modifier that preserves empty arguments
Please consult the Fixes file for a complete list of changes.
This is it! Starship v1.0.0!
Truth be told, there's no real cause for celebration. After 100 releases of
Starship, we felt it was about time we begin sticking to proper SemVer.
No breaking changes to worry about in this one – we just wanted to let you rest
easy knowing that future releases won't have breaking changes without a major
version bump.
Today, we're releasing 0.39 of Nu. This release is a bugfix release of 0.38.
What's New:
-History file is now removed when the history is cleared (fdncred)
-HTML selector has a regression fixed (lucassmmg)
-Unused dependencies were removed (lucassmmg)
-Updated clippy warnings were fixed (jt)
Engine-q progress
You'll notice that this release is pretty light, only a set of fixes on 0.38.
his is because our energy is now largely focused on engine-q.
We're excited to get this in front of you.
Just to tease a little of what will be possible, this week we added support for
processing streams in parallel in engine-q using a new par-each command.
We'll talk more about this as it develops.