Integrate perlio:
[ 9314]
Perlio internals re-organized.
- open process creates AV of layer/arg pairs
(appends layers from open() or open.pm to default list).
- push arg is now an SV.
- layer ->Open get passed the AV
- open is no longer mandatory method.
- topmost layer that has ->Open method does the open
- any layers above are pushed once that returns.
- vtable re-ordered so dummy layers need only provide push/pop methods.
[ 9313]
Check in a stable (working) version before next round of tweaks.
Changes include:
- Move default layers code out of doio.c and into perlio.c
- Single routine for parsing layer specification strings.
- Skeleton support for demand loading of layers
- Core-dump avoidance if PERLIO environment specifies loadable layer
(does not _work_ as need IO to load and need load to do IO ...)
[ 9305]
Add pTHX_ to -Duseperlio API where it does not conflict with legacy stuff.
[ 9304]
Render -Duseperlio functional again.
- this is "quick fix" which calls PerlIO_apply_layers after opening,
which is what old scheme did. New scheme needs to change that
to make open(...,\$scalar) etc. work but this will do for now.
[ 9303]
Avoid "reopen" semantics for time being. Fix bug in dup logic.
-Uuseperlio now works again.
-Duseperlio is still poorly. Don't merge yet...
[ 9302]
Snapshot of new PerlIO open scheme. Still buggy - mainly in open($fh,">&STDOUT!")
type code.
- Invent PerlIO_openn() - which has "lots" of args a bit like do_openn() which
is its main caller. In particular now has access to "extra" args, and
can tell when an open handle is "reopened" (or duped?).
- In -Duseperlio PerlIO_open() et. al. are now wrappers on PerlIO_openn().
- In -Uuseperlio (untested as yet) PerlIO_openn() is a wrapper on
PerlIO_open() et. al. (i.e. other way round).
- Collapse "vtable" entries for layers - was fdopen/open/reopen now just open
with args close to PerlIO_openn().
p4raw-link: @9314 on //depot/perlio:
e3f3bf95bcb81efe35cb0f0d3e3528d5c002dcec
p4raw-link: @9313 on //depot/perlio:
1141d9f89ca1cb89e46951e8afc784c7b4862cd2
p4raw-link: @9305 on //depot/perlio:
a999f61be32148694ba1c2837b1a303e42fd96b1
p4raw-link: @9304 on //depot/perlio:
5e334b7bcf49bf053aa25da896a1ff98c12dd228
p4raw-link: @9303 on //depot/perlio:
6e60e805618a52942747f76233ecc85135a964e3
p4raw-link: @9302 on //depot/perlio:
ee518936bd3eee0065c20591f5182f733dadd4bd
p4raw-id: //depot/perl@9316