Releases: mafredri/zsh-async
Releases · mafredri/zsh-async
1.4.0 bulletproof-badger
New features and improvements
- Automated test suite!
- Travis now runs tests for zsh versions: 5.3.1, 5.3, 5.2, 5.1.1, 5.0.8 and 5.0.2
- Now works with debugging (
setopt xtrace
orzsh -x
) enabled - Jobs (via
async_job
) are now allowed to output NULL-characters ($'\0') - Stdout and stderr from jobs are now use a higher lever of quoting instead of relying on
typeset -p
quoting (which is insufficient) - More advanced commands can now be sent to
async_job
- Killing jobs (via
async_flush_jobs
) should now be more reliable (previously it did not properly terminate jobs on some systems)
Bugfixes
- The async worker no longer dies if a newer async worker (or
zpty
instance) is stopped - Error output (stderr) in the worker is now discarded to avoid interfering with job output
async_process_results
could, in edge cases, discard an incomplete message from$ASYNC_PROCESS_BUFFER[$worker]
, it was rewritten to avoid this
Full changelog: v1.3.1...v1.4.0
1.3.1
Changelog
- Bugfix: Remove incorrect word split on the
items
array inasync_process_results
when invoking the callback. For some reason this has worked on older versions of zsh, but is broken in5.2-dev
. - Avoid inheriting zsh hooks inside async worker
Full changelog: v1.3.0...v1.3.1
1.3.0
1.2.0
v1.1.0 gotta-kill-'em-(all)!
This release brings proper support for flushing jobs and leverages ZLE watchers for notifying (instead of kill signals) on zsh versions >=5.1
.
Changelog
- Previously
async_flush_jobs
only killed the immediate child running inside a worker. If something else was executed by that child, it would continue running until completion. This was changed to instead send aTERM
-signal to the entire process group thus allowing all task to exit gracefully. - ZLE watcher replaces the
kill -WINCH
method of notifying when a job is complete whenever it is available (done through feature detection). Since zsh5.1
zpty workers return thefd
that was created for them and because of that we can attach a ZLE watcher to the fd that is triggered on output. - Fixed an issue where async notify didn't work if
setopt localtraps
was set. - Code cleanup
Full changelog: v1.0.0...v1.1.0
v1.0.0 separation-of-stds
Biggest feature in this release is the separation of stdout and stderr, introducing a new fifth parameter $5
(for stderr).
Other:
- Null
$'\0'
characters are now stripped from the output - Bugfixes
- Improvements
Changes: v0.2.3...v1.0.0
v0.2.3 killer-of-async
- Make sure the flushed jobs really die with
kill -KILL
(-9
). - Small fix for flushing jobs on older zsh versions (4.x)
v0.2.2
- Fixed a bug where
async_flush_worker
failed to detect any workers and did not clear current jobs async_job
no longer requires a function for more complicated expressions, you can now use it like so:async_job <worker> 'sleep 1 && echo "very async"
- Other minor improvements to prevent potential globbing