Craig A. Berry wrote:
At 11:20 PM -0400 8/22/05, John E. Malmberg wrote:
<snip>
You're really better off just changing all the print statements of the form:

print "foo", "\n";

to

print "foo" . "\n";

That way you'll have a single I/O that won't generate a record
boundary in the mailbox underlying the pipe.  This is really a bug in
our piping implementation, one very likely inherent in any pipe
implementation based on mailboxes, which are fundamentally
record-oriented devices.  We desperately need a pipe implementation
based on sockets or --- preferably -- global sections, or at least a
clean way to fall back the the CRTL pipe implementation, which may
already have such improvements in VMS v8.x.  In the meantime,
modifying the test to have something that is still idiomatic Perl but
doesn't require any special casing seems the least annoying
alternative (or at least I've been annoying people with patches of
this type for years and they seem to tolerate it).

Actually some improvements were put into at least 7.3-2, I have not checked earlier. The mailbox I/O can be marked as stream.

But I still have not figured out where the extra newlines are being inserted. I do not think they are inserted by the mailbox reading and writing, which means that just adding the stream mode support will not fix any thing.

I am pretty sure that I can figure out how to safely remove the ones that should not be there, but for backwards compatibility I have to provide a way to get the existing behavior.

Right now, I am going to let this problem sit as there is a work around while I go after the other failing tests.

If I am going to put any fixes in this code, I might as well bring it up to date to handle the larger DCL command line size of 8192 characters.

-John
[EMAIL PROTECTED]
Personal Opinion Only

Reply via email to