# New Ticket Created by  Faye 
# Please include the string:  [perl #126037]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org/Ticket/Display.html?id=126037 >


$ perl6 -e 'say ?run("false")'
False
$ perl6 -e 'say ?run("false", :out)'
True
$ perl6 -e 'say ?run("false", :err)'
True
$ perl6 -e 'say ?run("false", :in)'
True

It appears that specifying any kind of standard stream fails to set the exit 
code properly ("false" is either a shell built-in or a program otherwise 
available on linux that does nothing but give a failing exit code). It appears 
to be down at the VM level, so I don't know if the problem exists on both Moar 
and JVM. On MoarVM at least, it seems that asking for any of those streams 
doesn't set up a pointer to the exit-code variable in the struct used to 
execute a new process.

For reference, bash at least still returns the appropriate exit code:

$ false </dev/null >/dev/null 2>/dev/null
$ echo $?
1
$ perl6 -e 'say run("false", :in, :out, :err).exitcode'
0

Reply via email to