I'll close this in favor of the doc issue mentioned above.

I'm pretty sure this needs a corresponding [DETRAP] ticket, but that tag is not
a thing *yet*. For now we only document these things. Eventually I'll get to
it, but this a long-term thingie (like v6.d or v6.e or whatever).

On 2017-10-09 01:27:33, jn...@jnthn.net wrote:
> On Sat, 07 Oct 2017 19:33:40 -0700, allber...@gmail.com wrote:
> > On Sat, Oct 7, 2017 at 10:21 PM, Itsuki Toyota <perl6-bugs-
> > follo...@perl.org
> > > wrote:
> >
> > > See the following result:
> > >
> > > $ perl6 -e 'my $proc = Proc::Async.new("yes");
> > > $proc.stdout.head(1).tap(&say); await $proc.start;'
> > >
> > > y
> > > y
> > > y
> > > y
> > > y
> > > y
> > > y
> > > y
> > > ...
> > >
> > >
> > > I think tap(&say) should output just a 'y' char and completes its
> > > work.
> > >
> >
> > No guarantee it's line based, nor do pipes deliver output in lines.
> > You
> > wanted a .lines in there to 'rechunk' the output; otherwise I suspect
> > you
> > get blocks based on the size of am OS pipe buffer, or similar.
> >
> > https://docs.perl6.org/type/Supply#method_lines
> >
>
> Indeed; the Supply objects returned from Proc::Async just pass on the
> data that arrives, as it arrives, in the chunks that it arrives in.
> Often one wants all of the output, so parsing it into lines by default
> would just add a load of overhead to that case. The `.lines` method is
> the correct way for those wanting line-by-line output.

Reply via email to