From: Jarkko Hietaniemi Date: Fri, 23 Mar 2001 23:40:46 +0000 (+0000) Subject: Integrate perlio: X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=7bcb86fce1726fff66ae6da62ba3693682090cc3;p=p5sagit%2Fp5-mst-13.2.git 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 --- 7bcb86fce1726fff66ae6da62ba3693682090cc3