Arthur Bergman <[EMAIL PROTECTED]> wrote: Hi Arthur,
> Hi, > If I execute a miniperl (but linked into parrot and with it's own > parrot interpreter) it works, but if the caller closes(STDERR) before > invoking miniperl no output is ever seen on STDOUT. Parrot's IO system is currently reworked heavily and its not finished yet. I'm sure Juergen Boemmels comes up with a solution for this. > This is terribly annoying since ExtUtils::MakeMaker does silly things > like this, could there be some code in parrot that becomes really > unhappy if STDERR is not open? >From a quick look at it I would think: io/io_unix.c:PIO_unix_init returns -1: io = PIO_unix_fdopen(interpreter, layer, STDERR_FILENO, PIO_F_WRITE); if (!io) return -1; which calls internal_exception in io/PIO_init() if (!PIO_STDIN(interpreter) || !PIO_STDOUT(interpreter) || !PIO_STDERR(interpreter)) { internal_exception(PIO_ERROR, "PIO init std handles failed."); } which is the end of the interpreter, but never seen, because the message goes to STDERR. > Arthur leo