I'm sure the VMS porters have tried hard enough to make the piping stuff
work right, but allow me to ask some pesky troublesome questions again
in the hope that there is still some remote remaining avenue left
unexplored.

On Sat, 28 Apr 2001 18:59:10 CDT, "Craig A. Berry" wrote:
>1.)  Due to the treatment of carriage returns by the virtual IPC
>device called a "mailbox,"

Is it possible to use some other IPC mechanism that doesn't mess
with the data itself?  Is there something like a Unix domain socket
or named pipe available on VMS?

>data that needs to be on one line and that
>is written via a pipe (as nearly all tests are) should be written as
>one integral I/O:
>
>    print 'a' . 'b' . "c\n";  # this works
>    print 'a', 'b', "c\n";    # this sometimes doesn't

Why can't perl internally turn the latter into the former in pp_print()
on VMS?

>    print 'not ' if ! $ok;  # this usually
>    print "ok 3\n";        # does not work

Perhaps PerlIO_write()/PerlIO_puts() on the VMS can line buffer such
output on VMS?

>    print $ok ? "ok 3\n" : "not ok 3\n";  # but this does
>
>If we knew how to fix this it would be a bug; since any fix would be
>non-trivial or even non-possible, it's a feature :-(.

Could the VMS pipe mechanism be implemented using temporary files
rather than one of these mailbox thingies?  Or if it is not feasible
to implement pipes "properly" this way, perhaps the tests should be
run by the harness without using pipes (using temporary files?).

Or how about the test harness tie STDOUT/STDERR when it launches the
tests to do the appropriate translation?

    open(TESTS, 'perl -MVMS::SaneHandle $test |') ...

Or perhaps in the extreme case the test harness (test.com?) can be made
to grok the broken output due to piping limitations on VMS?

I think it would be a shame to change all of the tests to fit the
VMS straitjacket.


Sarathy
[EMAIL PROTECTED]

Reply via email to