At 4:44 PM -0800 3/15/2000, [EMAIL PROTECTED] wrote:
>
>The failure to build perl is in the descrip.mms file where it tries to
>invoke miniperl.exe to run the [.vms]writemain.pl script.
>
>$ sea descrip.mms writemain/win
>
>perlmain.c : miniperlmain.c $(MINIPERL_EXE) [.vms]writemain.pl
>        $(MINIPERL) [.VMS]Writemain.pl "$(EXT)"
>
>
>so default extensions are not pertinent to the problem I saw.

Ah, but I think they are, at least indirectly, because the point
where the problem occurs is when Perl_cando() is being called by
Perl_find_script() in util.c, which gets a configured value of
ALWAYS_DEFTYPES, presumably from config.h.  With Dan's patch, that
macro is no longer defined.  Nothing else in util.c has changed, but
with ALWAYS_DEFTYPES not defined Perl_find_script() never calls
Perl_cando(), thus, if I've got this right, bypassing -- but not yet
solving -- the problem with lib$fid_to_name in Perl_cando().

>This is almost but not quite accurate.  The call to stat() upstream of
>Perl_cando results in a device name of _SNFRN$DKB100:, whereas the call to
>lib$fid_to_name() returns USER:[VMSPERL.VMS]WRITEMAIN.PL, this happens
>to be a problem because I have a USER rooted logical.  I did not say that
>lib$fid_to_name() was turning DISK$USER: to USER:, I did say that it was
>turning _SNFRN$DKB100: to USER: and that we ought not use it.
>
>$ pipe sho dev d | sea sys$input dkb100
>SNFRN$DKB100:            Mounted              0  USER          10150290     1   1
>$ directory disk$user:[vmsperl.vms]writemain.pl
>
>Directory DISK$USER:[VMSPERL.VMS]
>
>WRITEMAIN.PL;1
>
>Total of 1 file.
>$ directory user:[vmsperl.vms]writemain.pl
>%DIRECT-E-OPENIN, error opening USER:[VMSPERL.VMS]WRITEMAIN.PL;* as input
>-RMS-E-DNF, directory not found
>-SYSTEM-W-NOSUCHFILE, no such file
>$ sho log user
>   "USER" = "DKB100:[U.]" (LNM$SYSTEM_TABLE)
>
>So strictly speaking lib$fid_to_name() is not wrong, it is behaving as
>documented and it is documented to be capable of returning file specifications
>that "may not be useful".  We ought not be using it (at least with DECC 6.0).

Thanks for the clarification.  I wonder what we should do instead --
slice off the device name returned from lib$fid_to_name and paste
back on the one from stat()?
____________________________________________
Craig A. Berry                   
mailto:[EMAIL PROTECTED]

Reply via email to