I don't know how I never stumbled on this before. I was playing with
CALLPIPE, COLLATE, LOOKUP, and GATE together in handling a log file with
nonunique timestamps, and for the longest time I couldn't figure out why
the record on the primary of GATE kept vanishing. I kept trying
different ways of hooking up COLLATE, which I've never used much, but it
turned out LOOKUP was the culprit! It was releasing the primary input
record even if no corresponding record was released on the primary or
secondary output.
This seems to have been at least partly fixed at some point. For
example:
PIPE literal 1 2 3 3 4 5 | split | frtarget lookup autoadd | cons
does write the second 3 using 1.1.12, but writes just 4 and 5 using
1.1.10. But this simple CALLPIPE consumes an extra record even with the
current version:
'callpipe (end /) *..0: | exact: lookup detail
| end: gate' ,
'/ *..1: | exact: | end: | *..0:'
¬R