At 9:51 AM +0100 5/23/02, Nick Ing-Simmons wrote:
>Craig A. Berry <[EMAIL PROTECTED]> writes:
>>At 10:04 PM +0100 5/21/02, Nick Ing-Simmons wrote:
>>
>>>Okay - can you do the PERLIO=perlio thing and run the whole test suite?
>>>
>>>If that looks "good" the above may suffice for 5.8
>>
>>Sigh. Putting PERLIO=perlio in the environment introduces at least
>>the following test failures:
>>
>>lib/ExtUtils/t/Embed................FAILED at test 6
Dunno about this one yet.
> >lib/File/Copy.......................FAILED at test 4
I think this ends up calling vms/vms.c:rmscopy() with a reference to
a file handle rather than a file name. I'm not sure why that's
different in the :perlio case.
> >and in lib/warnings it runs up to
>>
>># From lib/warnings/perlio.
>>ok 291
>>ok 292
>>
> >and then gets stuck forever in a cpu-bound loop.
This is a bug in vms.c:cando_by_name. When it tries to translate a
logical name (in your case PERLIO) whose value is the same
(regardless of case) as its key, it gets stuck in a cpu-bound loop:
$ perl -e "$ENV{FOO}='foo'; print -d 'FOO';"
<loop forever>
This happens while iterating over my_trnlnm in the following snippet:
if (!strpbrk(fname,"/]>:")) {
strcpy(fileified,fname);
while (!strpbrk(fileified,"/]>:>") && my_trnlnm(fileified,fileified,0)) ;
fname = fileified;
}
I'll be trying to work up a patch for this, but if you could use
PERLIO_DEFAULT_LAYER (or something else different from any of the
possible values) rather than simply PERLIO, that will dodge the bug.
--
____________________________________________
Craig A. Berry
mailto:[EMAIL PROTECTED]
"Literary critics usually know what they're
talking about. Even if they're wrong."
-- Perl creator Larry Wall