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