2010-01-03  Aleksey Cheusov <vle@gmx.net>

  * Makefile.version, NEWS:
  Version -> 0.14.0
  Release notes in NEWS

2009-12-27  Aleksey Cheusov <vle@gmx.net>

  * paexec.c: init_tasks has no argument anymore

2009-12-25  Aleksey Cheusov <vle@gmx.net>

  * tasks.c, tasks.h: minor fix for init_tasks() function

2009-10-20  Aleksey Cheusov <vle@gmx.net>

  * wrappers.h: missed header

2009-10-18  Aleksey Cheusov <vle@gmx.net>

  * paexec.c, paexec.pod, tasks.c, tests/test.out, tests/test.sh, tests/transport_broken_rnd:
  Add -m options to paexec.
  Better usage message
  Regression tests for -w

2009-10-17  Aleksey Cheusov <vle@gmx.net>

  * paexec.c, paexec.pod, tasks.c, tasks.h:
  add -w option for waiting for failed nodes if they ALL failed.
  select+EINTR are handled better in cindition() function.
  select(2)'s errors are handled and error message is printed.

  * paexec.c, paexec.pod, tasks.c, tasks.h, tests/test.out, tests/test.sh:
  add -g|--graph option, synonym for -s

  * paexec.c, tests/test.out: minor rewording in usage message

  * examples/broken_echo/transport_broken_echo, examples/broken_echo/transport_broken_toupper, tests/test.out, tests/test.sh:
  new regression test for -z without -s

  * paexec.c, tasks.c, tasks.h:
  Fixes for "paexec -z" (without -s). It looks like it never worked.

  * paexec.c, tasks.c, tasks.h:
  renamings, minor clean-ups, comments

  * Makefile, paexec.c, tasks.c, tasks.h:
  functions and variables related to tasks are separated into an individual
  files: tasks.c and tasks.h

2009-09-28  Aleksey Cheusov <vle@gmx.net>

  * Makefile: s/install-dirs/installdirs/

2009-09-13  Aleksey Cheusov <vle@gmx.net>

  * paexec.c: remove #include <ctype.h>

  * paexec.c: remove #include <stdint.h>

2009-06-05  Aleksey Cheusov <vle@gmx.net>

  * wrappers.c: fixed: two serious warnings produced by Intel C compiler

2009-06-04  Aleksey Cheusov <vle@gmx.net>

  * paexec.c:
  remove unused variable "bufsize_stdin" (Intel C compiler warns about it)

  * common.h, paexec.c:
  Some function's parameters are marked as __atribute__((unused))

  * wrappers.c: fix xgetln (paexec is not affected)

2009-05-13  Aleksey Cheusov <vle@gmx.net>

  * TODO: new task

2009-04-05  Aleksey Cheusov <vle@gmx.net>

  * TODO: new tasks

2009-03-11  Aleksey Cheusov <vle@gmx.net>

  * Makefile:
  MKHTML?=no
  minor code clean-ups

2009-03-07  Aleksey Cheusov <vle@gmx.net>

  * NEWS: date

  * paexec.c: fixes for -Z

  * NEWS: fixes

  * Makefile.version, NEWS:
  version -> 0.13.0
  Release notes in NEWS

  * paexec.pod: rewording

2009-03-04  Aleksey Cheusov <vle@gmx.net>

  * Makefile:
  CLEANFILES target is used instead of hand-made rules

2009-02-28  Aleksey Cheusov <vle@gmx.net>

  * paexec.c: fixed: compilation bug with Intel CC

  * paexec.c:
  FIXED: In the new code for cycles detection, one array was not cleanly
  zeroed, seen on NetBSD-2.1

2009-02-27  Aleksey Cheusov <vle@gmx.net>

  * TODO: restarting command on failed nodes is done

  * paexec.c, tests/test.out, tests/test.sh:
  Floyd's algorithm with hash table for accessing "square" table seems very
  slow. New algorithm is implemented (based on depth-first search in graph).
  It works much faster and doesn't require square matrix at all, i.e. doesn't
  allocate lots of memory.

2009-02-26  Aleksey Cheusov <vle@gmx.net>

  * paexec.c:
  When 'paexec -s' retrieves ~5000 tasks, its cycles_detection phrase
  allocated about ~400Mb of memory. This happens because this phase
  allocated a square table [tasks_count x tasks_count] of int elements.
  Now I've fixed this by using libmaa's hash tables instead of square table.
  As a result cycle detection phase comes a little slower but doesn't require
  hundreds of megabytes of memory anymore.

  * paexec.c:
  SIGALRM is sent once a second, not per persistent_timeout.
      This allows to use several different timeouts (for future changes).

  * paexec.c:
  FIXED: cycles detection phase was too slow.
     I just forgot to optimize Floyd' algorithm. Now it is fixed.
  More debugging output

  * Makefile: fixes in comments

  * tests/test.out, tests/test.sh:
  tests compatible with NetBSD, Linux and FreeBSD

2009-02-25  Aleksey Cheusov <vle@gmx.net>

  * examples/broken_echo/transport_broken_echo2, tests/test.out:
  more complex test, more comments

2009-02-18  Aleksey Cheusov <vle@gmx.net>

  * paexec.c: SA_RESTART is not needed anymore

  * Makefile, nonblock_helpers.c, nonblock_helpers.h, wrappers.c, wrappers.h:
  unused/dead code has been removed

  * examples/broken_echo/transport_broken_echo2, paexec.c, paexec.pod, tests/test.out, tests/test.sh:
  ADDED: -Z<timeout>
     =item B<-Z> I<timeout>

     When I<-z> applied, if a I<command> fails, appropriate node is marked as
     broken and is excluded from the following task distribution. If B<-Z>
     applied, every I<timeout> seconds it is made an attempt to rerun a failed
     comand on failed node. I<-Z> implies I<-z>.

2009-02-17  Aleksey Cheusov <vle@gmx.net>

  * nonblock_helpers.c, nonblock_helpers.h, paexec.c, wrappers.c, wrappers.h:
  no EINTR wrappers (iread, xread etc.). SIGCHLD and SIGALRM are blocked most
      of the time

  * tests/test.sh: fix in test

  * tests/test.sh: fix: one number per line

  * TODO: one task minus

2008-12-23  Aleksey Cheusov <vle@gmx.net>

  * paexec.c, tests/test.out, tests/test.sh:
  fix for -zi: task is output to stdout before the keyword "fatal" in case of
      fatal failure.

  * NEWS: rewording

  * Makefile.version, NEWS:
  version -> 0.12.1
  release notes

  * Makefile:
  fix: FreeBSD make doesn't support .PARSEDIR

  * paexec.c: grammar fix

  * paexec.c: indent

  * tests/test.sh: more FATALs

  * paexec.c:
  failed_nodes_*** renamed to failed_taskids_***

  * paexec.c:
  line_num renamed to taskid
  line_nums renamed to node2taskid

  * tests/test.out, tests/test.sh, tests/transport_broken_rnd:
  yet another real life regression test

  * tests/test.out, tests/test.sh, tests/transport_broken, tests/transport_broken_rnd:
  more complex regression test

  * paexec.c:
  fixed: sometimes -lz shows incorrect task IDs

2008-12-22  Aleksey Cheusov <vle@gmx.net>

  * paexec.c, tests/test.out, tests/test.sh, tests/transport_broken:
  FIX: Actually -z doesn't work at all :-( Existing regression tests do not
  show this :-/ Now, I'm trying to fix it. SIGCHLD handler is almost empty.
  Actual work is done ONLY when read/write fail. Trivial regression test for
  this.

  s|pids [n] > 0|pids [n] != -1|g

  more debugging output when -d is applied

  * NEWS: release time

  * Makefile: "SRCROOT?=..." and ".PATH:..." removed

  * Makefile.version, NEWS: version -> 0.12.0, release time change

  * Makefile, NEWS: CPPFLAGS -> CFLAGS

  * paexec.c: fgets -> xfgetln

  * Makefile: minor clean-ups

  * paexec.pod: minor fixes and clean-ups

  * NEWS, paexec.pod: fixes

  * NEWS, paexec.pod:
  release notes and manual page updates (-z)

2008-12-21  Aleksey Cheusov <vle@gmx.net>

  * Makefile: clean-ups

  * tests/test.sh: make test: temporary files are created in .OBJDIR

2008-12-20  Aleksey Cheusov <vle@gmx.net>

  * Makefile: make clean: additional clean-ups

  * Makefile, tests/test.out, tests/test.sh:
  support for 'env MAKEOBJDIR=tratata bmake test'

2008-12-19  Aleksey Cheusov <vle@gmx.net>

  * paexec.c: typo fix

  * Makefile, NEWS, examples/broken_echo/transport_closed_stdin.c, paexec.c, tests/test.out, tests/test.sh:
  Now 'paexec -z' handles correctly write(2) errors. For this to work
     sigpipe signal is ignored.

     New regression test for this.
     transport_closed_stdin.c - test tool for regression test

2008-12-01  Aleksey Cheusov <vle@gmx.net>

  * TODO: some tasks done

  * paexec.c: SA_RESTART is set to 0 if it is not defined

2008-11-22  Aleksey Cheusov <vle@gmx.net>

  * tests/test.out, tests/test.sh:
  new regression test

  * examples/broken_echo/transport_broken_echo, paexec.c, tests/test.out:
  -z: resistance to write(2) error

  * examples/broken_echo/transport_broken_echo, paexec.c, tests/test.out, tests/test.sh:
  new regression tests for -z option (failure resistance)
  -z: minor fixes and improvements

2008-11-21  Aleksey Cheusov <vle@gmx.net>

  * paexec.c:
  SA_RESTART for SIGCHLD signal handler

2008-11-19  Aleksey Cheusov <vle@gmx.net>

  * paexec.c: <errno.h>

2008-11-18  Aleksey Cheusov <vle@gmx.net>

  * examples/broken_echo/transport_broken_echo, paexec.c, tests/test.out, tests/test.sh:
  Further support for -z

  * paexec.c:
  node2task [n] keep a task sent to node `n'

2008-11-17  Aleksey Cheusov <vle@gmx.net>

  * tests/test.out, tests/test.sh, examples/broken_echo/transport_broken_echo, paexec.c, wrappers.c, wrappers.h:
  initial support for -z and -Z
  regression test for the case when transport exits unexpectedly

2008-11-16  Aleksey Cheusov <vle@gmx.net>

  * TODO: rhomb deps bug already fixed

  * paexec.c, wrappers.c, wrappers.h:
  added: alive_nodes_count variable
  added: iclose function
  added: mark_node_as_dead function
  minor clean-ups

  * paexec.c:
  Signal handler for SIGCHLD

  * paexec.c, wrappers.c, wrappers.h:
  homemade fgetln is used for reading tasks from stdin

  * paexec.c:
  code clean-ups, select(2) do not listen on fd=0 (stdin)
  Instead, fgets(..., stdin) is used

2008-11-15  Aleksey Cheusov <vle@gmx.net>

  * examples/make_package/make_package_cmd__all_failed, examples/make_package/make_package_cmd__autoconf, examples/make_package/make_package_cmd__byacc, examples/make_package/make_package_cmd__dict-client, examples/make_package/make_package_cmd__dict-server, examples/make_package/make_package_cmd__dictem, examples/make_package/make_package_cmd__flex, examples/make_package/make_package_cmd__flex_byacc, examples/make_package/make_package_cmd__glib2, examples/make_package/make_package_cmd__gmake, examples/make_package/make_package_cmd__gmake_autoconf, examples/make_package/make_package_cmd__libjudy, examples/make_package/make_package_cmd__libmaa, examples/make_package/make_package_cmd__m4, examples/make_package/make_package_cmd__xxx_failed, tests/test.out, tests/test.sh:
  clean-ups in regression tests, lots of scripts are replaced by one program.

2008-10-25  Aleksey Cheusov <vle@gmx.net>

  * tests/test.sh: fix for regression test

  * examples/make_package/make_package_tasks_cycle: a part new regression test

  * Makefile.version, NEWS:
  version -> 0.11.0
  release notes in NEWS

  * tests/test.sh: no "set -e"

  * paexec.pod: minor fix

  * Makefile: WARNS=4 ---> WARNS?=4

  * tests/test.out, tests/test.sh:
  Regression test for cycle detection

  * paexec.c:
  Child processes are run at the very end paexec initialization

  * paexec.c:
  paexec -s: before entering main 'loop', input graph is checked for cycles.
      If it found paexec exits with error.

2008-10-24  Aleksey Cheusov <vle@gmx.net>

  * Makefile.version, NEWS:
  version -> 0.10.1
  release notes

  * Makefile.version: version -> 0.10.1beta1

  * paexec.c, tests/test.out:
  minor fix for rhomb like dependencies

  * paexec.c: code clean-ups, enum instead of -1|0|1 constants

  * Makefile: remove .sinclude

  * tests/test.sh:
  remove gawk appeared by mistake
  diff -U ---> standard diff -C10

2008-09-27  Aleksey Cheusov <vle@gmx.net>

  * paexec.pod: fix: accept(2) -> select(2)

  * paexec.pod: AUTHOR section is at the very end end of man page

  * README, paexec.pod:
  By default, long options are not available on systems
     that don't provide getopt_long(3)

  * portabhacks.h, tests/test.out, tests/test.sh:
  regression tests use short options only (under Interix long
      options/get_opt_long is not supported)
  fixes in code for disabling use of getopt_long

2008-09-26  Aleksey Cheusov <vle@gmx.net>

  * paexec.c: minor clean-ups

  * portabhacks.h:
  getopt_long is used on the following "platforms" (macro):
     __NetBSD__, __FreeBSD__, __OpenBSD__, __DragonFly__ and __APPLE__.
     On others getopt_long defaults to the standard getopt(3)

2008-09-02  Aleksey Cheusov <vle@gmx.net>

  * tests/test.sh: fix: diff -H20 ===> diff -U 20

  * TODO, examples/make_package/make_package_tasks2, tests/test.out, tests/test.sh:
  new regression test (currently fails) and TODO for rhomb-line dependancy

2008-08-31  Aleksey Cheusov <vle@gmx.net>

  * examples/make_package/make_package_cmd__all_failed:
  new script for regression tests

  * Makefile.version, NEWS, paexec.pod:
  NEWS updated
  version -> 0.10.0

  * tests/test.out, tests/test.sh:
  clean-ups
  more regression tests

  * paexec.c, tests/test.out, tests/test.sh:
  more complete output for failed tasks
  more regression tests

  * tests/test.out, tests/test.sh: more regression tests for -s

  * examples/make_package/make_package_cmd__flex_byacc, examples/make_package/make_package_cmd__gmake_autoconf, paexec.c, tests/test.out, tests/test.sh:
  another fix for -s
  more regression tests

  * examples/make_package/make_package_cmd__autoconf, examples/make_package/make_package_cmd__byacc, examples/make_package/make_package_cmd__dict-client, examples/make_package/make_package_cmd__dict-server, examples/make_package/make_package_cmd__dictem, examples/make_package/make_package_cmd__flex, examples/make_package/make_package_cmd__glib2, examples/make_package/make_package_cmd__gmake, examples/make_package/make_package_cmd__libjudy, examples/make_package/make_package_cmd__libmaa, examples/make_package/make_package_cmd__m4, tests/test.out, tests/test.sh:
  lots of new regression tests

  * README: "make test" is also documented

  * examples/make_package/make_package_tasks, tests/test.out, tests/test.sh:
  clean-ups in regression tests

  * paexec.c: fixes for -s

  * paexec.pod: more docs about -s

  * tests/test.sh:
  fix for regression test (test <NUM> -lt <NUM>). Found on Linux.

  * TODO: new/old task: read(0, buf, 1)

  * paexec.c:
  fixed: another gcc warning on 64-bit archs (int to pointer cast)
  read(0, buf, <NUM>) seems not very stable
     read(0, buf, 1) is used again

  * paexec.c:
  fix for systems where sizeof(int) > sizeof (void *)

  * paexec.c:
  fixed: gcc warning with WARNS=4
      const void *p = ...;
      ...
    ->(int) p

2008-08-30  Aleksey Cheusov <vle@gmx.net>

  * Makefile.version: version -> 0.10rc1

  * tests/test.out, tests/test.sh: -e option is also tested

  * tests/test.out, tests/test.sh: minor clean-ups in regression tests

  * examples/make_package/make_package_cmd, tests/test.out, tests/test.sh:
  another test for -s

  * tests/test.out, tests/test.sh: more regression tests

  * paexec.pod:
  documentation for -s option

  * examples/1_div_X/1_div_X_cmd, tests/test.out: more comments

2008-08-29  Aleksey Cheusov <vle@gmx.net>

  * tests/test.out, tests/test.sh: regression test for -s

  * paexec.c: improvements, fixes and clean-ups for -s

2008-08-28  Aleksey Cheusov <vle@gmx.net>

  * tests/test.out, tests/test.sh: fix in selftests

2008-08-19  Aleksey Cheusov <vle@gmx.net>

  * examples/1_div_X/1_div_X_cmd, examples/1_div_X/1_div_X_run, tests/test.out, tests/test.sh:
  one another example
  new regression test

2008-08-17  Aleksey Cheusov <vle@gmx.net>

  * paexec.c:
  SPC character is used as a task separator instead of TAB character
  exit codes returned by CMDs are analysed (success/failure)
      In case of failure all dependant tasks are also output

2008-08-16  Aleksey Cheusov <vle@gmx.net>

  * paexec.c:
  further development for -s

  * tests/test.out: task numbers are started from 1

  * paexec.c:
  initial code for partially ordered set of tasks (-s option)

  * tests/test.sh: new test

  * TODO, paexec.c:
  'read(0, <buf>, 1)' is not called anymore (TODO task).
     Tasks are read from stdin by bigger portions

2008-07-20  Aleksey Cheusov <vle@gmx.net>

  * paexec.c: code clean-ups

  * paexec.c:
  code clean-ups, kill_child and wait_for_childs functions

  * paexec.c: SIGTERM is sent to every child process before exiting

2008-07-19  Aleksey Cheusov <vle@gmx.net>

  * NEWS: minor fixes

  * TODO: updates, new plans

2008-07-12  Aleksey Cheusov <vle@gmx.net>

  * TODO: new tasks

2008-06-15  Aleksey Cheusov <vle@gmx.net>

  * Makefile, Makefile.version, NEWS:
  version -> 0.9.0
  release notes in NEWS

2008-06-14  Aleksey Cheusov <vle@gmx.net>

  * TODO: task done

  * paexec.c, tests/test.out, tests/test.sh:
  -t '' is treated as "no transport"

2008-06-13  Aleksey Cheusov <vle@gmx.net>

  * paexec.pod: another notes about PAEXEC_BUFSIZE

2008-06-12  Aleksey Cheusov <vle@gmx.net>

  * README: more notes about getopt_long

  * paexec.pod: man page updated according to changes with PAEXEC_BUFSIZE

  * paexec.c: variable max_bufsize renamed to initial_bufsize

  * tests/big_result_cmd, tests/test.out, tests/test.sh:
  one more test added
  minor changes in 'bmake test'

2008-06-11  Aleksey Cheusov <vle@gmx.net>

  * Makefile: doc fixes: runawk -> paexec

2008-06-05  Aleksey Cheusov <vle@gmx.net>

  * TODO: another task

  * README:
  fixes, improvements and additions
      (how to build it under HP-UX, Solaris etc.)

  * Makefile, paexec.c, tests/test.sh:
  Internal buffers are realloc'ed now.
      PAEXEC_BUFSIZE environment variable and Makefile's BUFSIZE constant
      do set *maximum* buffers size, instead they set *initial* buffers size.

      More regression tests for different [PAEXEC_]BUFSIZE

2008-06-02  Aleksey Cheusov <vle@gmx.net>

  * tests/test.out, tests/test.sh: fixes for regression tests

  * Makefile: exit 1 if regression test fails

2008-04-30  Aleksey Cheusov <vle@gmx.net>

  * Makefile: now Makefile is compatible with ancient pmake-1.45

2008-03-10  Aleksey Cheusov <vle@gmx.net>

  * paexec.c:
  usage message is printed to stderr. This makes paexec safer for running it
      as a part of pipe.

2008-03-03  Aleksey Cheusov <vle@gmx.net>

  * NEWS: 0.8.0 release notes

  * paexec.pod: fix

  * Makefile, paexec.c, paexec.pod:
  documentation update
  version -> 0.8.0

2008-02-29  Aleksey Cheusov <vle@gmx.net>

  * Makefile: test target is @-ed

  * paexec.c: improvements for -I

2008-02-28  Aleksey Cheusov <vle@gmx.net>

  * paexec.c:
  New options implemented: -E, -i, -I

  * Makefile, NEWS: typo fixed

2008-02-27  Aleksey Cheusov <vle@gmx.net>

  * paexec.c: fixed: gcc warning

2008-02-26  Aleksey Cheusov <vle@gmx.net>

  * Makefile, NEWS: version -> 0.7.0, release nodes

  * paexec.pod: fix

  * paexec.c, paexec.pod: new option -e|--eot is implemented, see manual page

  * tests/test.sh: clean-ups: line wrapped

  * paexec.c:
  fix: '-n +0' or '-n ""' now results in error message
  minor clean-ups

2008-02-18  Aleksey Cheusov <vle@gmx.net>

  * nonblock_helpers.c: compilation bug fixed

2008-02-17  Aleksey Cheusov <vle@gmx.net>

  * paexec.c, wrappers.c, wrappers.h:
  xmalloc, xrealloc, xfree and xstrdup from libmaa are used

  * Makefile, paexec.c, wrappers.c:
  WARNS=4
  several gcc warnings fixed

2008-02-04  Aleksey Cheusov <vle@gmx.net>

  * Makefile, Makefile.cvsdist:
  Makefile.cvsdist moved to different place
  x.y.test version
  TARBALL variable removed

