At 10:22 AM 3/21/00 -0800, [EMAIL PROTECTED] wrote:
>Correction: the DISK$volnam logical was not redefined.
Agreed, as I pointed out in my last post.
>"volnam" was used
>to form a rooted logical name that did not point to DISK$volnam:[000000].
Unfortunately I think the conclusion is, "Don't do that, either." Thus my
previous argument that the MOUNT command documents should say something
about the significance and permanence of the volume logical passed as P3 to
MOUNT.
>Oddly, perl 5.005_02, 5.005_03, and 5.005_62 (modulo vms kit build patching)
>did not have any trouble building from the root of the device in question.
[snip]
>We are in a position that allows us to change the parameters to the mount
>command, however we apparently only need to do so because the compilation
>of perl has changed, not the DEC C version, not the OS, not lib$fid_to_name()
>etc. Unfortunately I don't have enough time right now to look into what
>has changed in [.VMS]VMS.C to have caused this.
I'm fairly certain the problem is latent in all versions of Perl, C, and
VMS. It never came up before because you never hit the code path in
Perl_cando() that calls lib$fid_to_name, at least not during a build. I
believe the reason you hit it now has to do with the code in util.c related
to default file types and controlled by the ALWAYS_DEFTYPES macro, which is
known not to work yet in 5.6.0 and thus must not be defined (right?). When
it is defined, I think Perl_find_script is hunting more aggressively for
script files and hits the Perl_cando code that caused you problems. This
file hunting code should work (and in fact does so long as the volume
logical is not redefined) but it apparently never gets hit unless
ALWAYS_DEFTYPES is enabled. Just to be clear, the default file types code
is not yet working for reasons unrelated to the lib$fid_to_name gotcha, but
when it was turned on in one of the release candidates, it caused you that
additional problem.
_______________________________________________
Craig A. Berry
mailto:[EMAIL PROTECTED]