I've made some progress on this and now have a working miniperl.  The 
problem I'm running into now is how to get access to the layer 
functions declared in perliol.h from the extensions that need them. 
Specifically, Encode, PerlIO::Scalar, and PerlIO::Via all treat these 
layer functions as services provided by the core, but on VMS, the 
core does not make them visible to dynamically linked extensions.

One way of changing that would be (I think) to include perliol.h from 
perl.h and change all the declarations in perliol.h from extern to 
EXT.  That would make the core dynamic library (pershr.exe shareable 
image) publish those functions as externally available entry points.

The other possibility is that any extension using those layer 
functions would need to be statically linked into the core.  I think 
we already do this for something else; is it Socket?

Would either of these approaches work?  Is one obviously better than 
the other?  Until now I haven't had to make any real architectural 
changes, but before taking an axe to Nick's handiwork I thought I'd 
solicit comments and advice again.

My current diffs against the latest development snapshot are 
attached; they don't yet address the problem described above.


-- 
____________________________________________
Craig A. Berry                   
mailto:[EMAIL PROTECTED]

"Literary critics usually know what they're
talking about. Even if they're wrong."
        -- Perl creator Larry Wall

%vmsperlio.patch

vmsperlio.patch

Reply via email to