Dan Sugalski wrote:

>Okay, I just got bit in a *big* way by LIB$FIND_IMAGE_SYMBOL's annoying 
>tendency to believe logicals over filenames and assumptions that two 
>shareable images with the same base name are the same bloody image, and I'm 
>going to fix it once and for all. (Though not for 5.6.0. 5.005_04 and 5.6.1 
>and the Apache perl release, yes)
>
>I'm thinking of a scheme similar to what we have now with XS modules. 
>Colons get translated to underscores and PERL_ is prepended. IO's 
>executable would be PERL_IO.EXE, while Tk::IO would be PERL_TK__IO.EXE. If 
>the name is larger than 39 characters we'll use the XS name-reduction 
>algorithm. (I'm tempted to check for ODS-5 first, and use the full name if 
>it's less than 200 characters, but that sounds like too much work... :) 
>This should hopefully reduce namespace collisions and ensure that a "use 
>Apache;" won't get messed up by an existing APACHE logical.
>
>Comments anyone?

Although this may cut against the grain of the recent namespace cleanup where 
symbols did s/foo/PL_foo/ and routines went /bar()/Perl_bar()/ would you not
save yourself some 39 char room by employing (e.g.) PL_IO.EXE PL_TK__IO.EXE
etc?  Or does this conflict with LIB$FIND_IMAGE_SYMBOL()'s ideas?
Just a quick thought on the proposal. 

Another idea: extend C<use> so that:

  use ":nological" "Apache";

does not TRNLNM.  Along those lines may lie the place where:

  use ":vmstextlib" "Foo::bar";

may be, where bar.pm is a module in the FOO.TLB text library.

Peter Prymmer

Reply via email to