Skip to content
This repository has been archived by the owner on Jul 11, 2019. It is now read-only.

Releases: mmstick/parallel

0.10.1: Tempdir Implemented

13 Jan 21:05
Compare
Choose a tag to compare
  • Some potentially unsafe joblog-related code was removed.
  • The --tmpdir / --tempdir parameter has been implemented.
  • Much filepath-related code has been deprecated and thus removed.

0.10.0: Joblog, Shellquote, Refactoring, & Optimizations

12 Jan 04:06
Compare
Choose a tag to compare
  • Implemented the joblog parameter which may be invoked with --joblog FILE
  • Properly implemented the shellquote parameter and removed the quote parameter
  • DiskBufferWriter was replaced with BufWriter<File> for performance reasons
  • A misc module was added which contains useful traits such as NumToA and Digits.
  • Integer to string optimizations are performed to eliminate heap allocations.
    • Instead of converting numbers into strings with the to_string() method, numbers will be converted and stored into a shared byte array via a numtoa() method
  • A ton of refactoring work to make the source code easier to manage

screenshot from 2017-01-11 17-07-22

0.9.0: Feature Additions

04 Jan 18:24
Compare
Choose a tag to compare

New Features Added

  • memfree: Only execute the next task when the available memory is above a certain threshold.
  • shebang: Adds ability to use the parallel application as an interpreter in a shebang line.
  • eta: Track the average runtime of processes and print ETA statistics.
  • timeout: When a process is running too long, kill the process.
  • delay: Delay launching processes for a specified time when set.

Known Issues

  • The timeout parameter has no effect on processes running within a shell.
  • The -n parameter does not work correctly with {N} tokens.
  • It's no longer possible to compile a Windows binary from a Linux host (sys-info conflict)

0.8.0: Max Arguments + Implementation Fixes

30 Dec 22:24
Compare
Choose a tag to compare

This release makes the implementation another step closer to the GNU implementation.

  • The :::+ and ::::+ modes have been fixed.
  • The -n and --no-shell flags have been removed as they are no longer required.
  • The -n and --max-args flags have been added.
  • The {#^} token has been renamed to {##} to match the GNU implementation
  • The {#} token now starts counting from 1 instead of 0.
  • A number of source code improvements has been made to the original parser. Many more improvements could be made to this part of the application though.

0.7.0: Temp Disk Buffering & Better Argument Splitting

27 Dec 19:06
Compare
Choose a tag to compare
  • Implemented ArgumentSplitter which splits arguments better when not using a shell.
    • Handles both double and single quotes unlike the previous implementation
    • NOTE: Does not yet support environment variables
  • Implemented temporary disk buffering for command outputs
    • The memory-buffered implementation has been replaced with this disk-based version.
    • Half as fast as the memory-buffered approach but uses significantly less memory.
    • NOTE: At a later date I will re-add support for memory-buffering
  • Improved permutation speed when permutating multiple lists of arguments.
    • The permutate crate was updated to version 0.2.0
    • Allocations will no longer occur after the first iteration, as successive permutations will now re-use the buffer created by the first permutation.

0.6.5: Bug Fix Release

23 Dec 17:12
Compare
Choose a tag to compare

The problem with programming past midnight is that you make mistakes. The following issues are now corrected:

  • The shell is now disabled/enabled properly when it is not needed
  • Dash is only searched for and enabled if the shell is enabled
  • A command needs a shell if it has a | pipe

0.6.4: Performance Optimizations

23 Dec 08:16
Compare
Choose a tag to compare
  • Heap allocations have been drastically mitigated, improving performance and reducing memory consumption
  • Jemalloc is disabled by default now, for a 100% performance boost
  • If the command argument does not require a shell, then the shell will be disabled
  • If dash is installed, dash will be used by default when the shell is enabled
  • File paths are no longer recalculated

0.6.2: Add --shellquote

12 Nov 05:15
Compare
Choose a tag to compare

As simple as adding support for --quote was, this little update will also add support for --shellquote

0.6.1: Add --quote Option

12 Nov 04:52
Compare
Choose a tag to compare

This is just a small update that adds an option for the --quote mode from GNU Parallel. I had to change the -q flag which was previously assigned to --quite to be the short version of --quote, and have added the -s flag along with --silent as a replacement. However, --quite will remain.

0.6.0: Piping, Shell Detection, & Non-Text Inputs

12 Nov 02:06
Compare
Choose a tag to compare
  • Adds support for piping inputs to commands via the new --pipe option
  • Removes support for ungrouped mode until further notice
  • Adds shell detection so that Parallel will attempt to use your preferred shell of choice
  • Non-text inputs are fixed so that problems will no longer occur when taking binary data or garbage inputs
  • All uses of the try! macro have been replaced by the new ? operator
  • A bit of refactoring and sprucing up the existing source code