3.1.0 (r1074) ~~~~~~~~~~~~~ [build] -Add: make test in src/ and in the central Makefile [core] -Change: switching over from bison to byaccic; bison fails to provide a sustainable API -Fix: diagnostic: don't crash if there are no processes to print -Fix: make sure newly allocated fds have fd field set to -1 - the caller needs to fill i this field later -Fix: always initialize parser fields to 0, so line number is tracked correctly even when parsing from string -Fix: lines are counted from 0 so report syntax error with +1 -Fix: don't crash if there are no processes -Add: process properties: retval, retval_zero and retval_non_zero -Add: digagnostics: a call for trace dump -Add: debug trace reads and writes with -d [doc] -Add: proposed man pages for [socket] -Add: document the reconn parameter of socket -Add: example on how to embed an awk script -Add: plumb.1 source -Add: manual page for 69 [regression] -Fix: last flush for [cmd] always requires a semicolon for proper termination and execution -Fix: race condition in pause_resume.pb; leave some time after the end of the last print so plumb has the chance to flush stdout -Change: enable running push-parser tests again [socket] -Add: new virtual process for networking [util] -Add: 69: stdio loop between two processes [virt] -Fix: tank: msg_t is too short, clashes on AIX 3.0.3 (r997) ~~~~~~~~~~~~ [core] -Fix: fd_close() removes RP sink from the POLLOUT watch to avoid polling for dead/closed fds [core] -Fix: don't double free loopback pipes that are coming and going to the same process [core] -Add: help() for -h [tank] -Add: configurable datagram buffering [virt] -Add: vp_arg_atoi() and vp_arg_atof() - VPs use a central safe string to number conversion in their argument parsing [doc] -Fix: grammar in plumb.5 [doc] -Fix: do install plumb.1 3.0.2 (r969) ~~~~~~~~~~~~ [timer] -Fix: API CHANGE: don't print \n on stdout "msg"s [core] -Cleanup: compiler warnings [core] -Del: unused ->init callback; handled at creation of the VP or RP [core] -Change: generalize unbinding pipe from a process [core] -Fix: for sources of newly created RP use fd_rp_surce_poll() instead of manually setting POLLIN - the RP may be started up paused [core] -Fix: diagostics: don't segfault for NULL proc in resolving fd for printing (may happen when printing crash dump for alien FD) [core] -Fix: invalid memory write when reallocating fd array (happened when binding fd>=16) [core] -Fix: when reallocating fd array of a process, rebind the fd pointers stored in pipes - lack of rebinding caused crashes when binding more than 16 fds [virt] -Cleanup: compiler warnings [fixlen] -Add: comment the code as it is simple enough to be an example for developing VPs [doc] -Add: manual page for event (the event dispatcher) [doc] -Add: manual page for the plumb executbale (plumb.1) [doc] -Update: regex.3plumb for the recovered mml 3.0.1 (r945) ~~~~~~~~~~~~ -Fix: install plumblib -Fix: shutdown procedure: when exiting, wait until all buffers are flushed before closing all fds -Fix: [regex]: substitution of text $ won't ruin the previous character -Change: allow VPs to write into a gorwing write buffer while still backpromoting blocking New regression tests: -Add: simple cat-prefix test to see if nothing is left pending in buffers -Add: test for binary end-of-record regex ($$)