At 03:49 AM 3/15/00 -0500, Dan Sugalski wrote:
>Without these patches. RC2 won't build properly, install, or build modules.

I have a feeling that the configure.com patch for default file types will 
fix Peter's issue with Perl_cando and lib$fid_to_name, although it may 
simply be avoiding it rather than fixing what may still be a latent problem. 
   I built RC2 with these patches applied and the miniperl command we were 
testing never hit cando_by_name() in vms.c.  I believe (though I really 
don't understand the code in util.c very well) that we were hitting some 
sort of fallback position when Perl couldn't find a script. These lines from 
Perl_find_script in util.c seem to be where the configure change makes a 
difference in what happens:

#ifdef VMS
#  ifdef ALWAYS_DEFTYPES
     len = strlen(scriptname);
     if (!(len == 1 && *scriptname == '-') && scriptname[len-1] != ':') {
         int hasdir, idx = 0, deftypes = 1;
         bool seen_dot = 1;

         hasdir = !dosearch || (strpbrk(scriptname,":[</") != Nullch) ;
#  else
     if (dosearch) {
         int hasdir, idx = 0, deftypes = 1;
         bool seen_dot = 1;

         hasdir = (strpbrk(scriptname,":[</") != Nullch) ;
#  endif


It may well be that there is still a problem in the way a conflict between a 
concealed logical name and a volume label is handled.  Are there any valid 
conditions under which one could have a logical name that is identical to a 
volume label (but points to a different place) and expect the file system to 
ignore the logical and use the volume label?

Peter, I think your last explanation inferred that lib$fid_to_name is taking 
the volume label "DISK$USER", lopping off and discarding the "DISK$" part, 
and then getting confused because the remaining "USER" is a logical name 
pointing elsewhere.  This would be surprising behavior (at least to me), but 
if you observed it doing that in the debugger I'll take your word for it.  
There is another possible explanation though: Perl_find_script also does 
something with DCL$PATH (I don't completely understand what yet), so if 
USER: appears anywhere in your DCL$PATH, that could be involved somehow also.

P.S.
I'm sorry but I blew away my RC1 kit to make room for RC2, so I haven't had 
a chance to follow your instructions for reproducing the problem.

_______________________________________________
Craig A. Berry                                   
mailto:[EMAIL PROTECTED]

Reply via email to