Integrate perlio:
Jarkko Hietaniemi [Sat, 4 Nov 2000 22:43:56 +0000 (22:43 +0000)]
[  7539]
PerlIO infrastructure complete.

[  7538]
Type tweaks + less contorted allocation scheme

[  7537]
Fix for stdio as default "discipline" - PerlIO_init() was fdopen(2,"w")'ing
a fresh FILE * rather than re-using stderr. Which meant PerlIO_stderr() was
fully buffered rather than unbuffered (on Solaris, Linux seemed to do something
sensible) which lead to some interesting fails.

[  7535]
Implement stack of layers - (perlio.c _is_ derived from the old file honest...)
- Works on Linux with
perlio + unix
stdio
- Works on Solaris with
perlio + unix
- Fails ONE test (print to STDIN should fail) on Solaris with stdio.
- Fails (hangs in openpid) if you try and stack
perlio + stdio - Linux stdio's read() logic is hanging.

[  7492]
Change files which are mysteriously different to mainline to be
copies of mainline.

[  7491]
Perlio fixes discovered on big-endian & very traditional Solaris:
- typo in endian code in putc.
- Don't allow read of write-only files and vice-versa
- and off-by-one in flush-all loop.
Remove debug calls as they were using GCC specific features.

[  7484]
PerlIO passes all tests.

[  7482]
Include <unistd.h> to get correct lseek() prototype etc.
(I thought perl.h did that) - down to two fails
- comp/require.t (last test)
- lib/io_xs.t - possibly import/export of FILE * ?

[  7480]
Fixed two bugs:
- error code not being set on close (of broken pipe)
- append mode was truncating.
At least one seek/tell bug remains.

[  7479]
Prototype (stdio-like) PerlIO passing basic tests. Checked in
in case of accidents. Still several worrying fails, no line disciplines yet.

p4raw-link: @7539 on //depot/perlio: f3862f8bcf6d3aa824432654b287f4ebd64db17f
p4raw-link: @7538 on //depot/perlio: 05d1247b4b0324742a6edccf90ff347d8905fcdb
p4raw-link: @7537 on //depot/perlio: c7fc522f3f7e35723803aaacf8c326dac22dae76
p4raw-link: @7535 on //depot/perlio: 9e353e3b7330a59ca210e75e4484e7762fcd1ce4
p4raw-link: @7492 on //depot/perlio: e9e021e644582e6ca1e9f6b4c1f1a8a7c7e2a58d
p4raw-link: @7491 on //depot/perlio: f89522bf4daaf3c639b016283ffbace973e9c323
p4raw-link: @7484 on //depot/perlio: b1ef6e3bd726972447a8b536231f096656903bb3
p4raw-link: @7482 on //depot/perlio: 02f66e2f9235025f08502389e56df70aa71733c0
p4raw-link: @7480 on //depot/perlio: bb9950b796df42e2f824a072ae878c87e977be20
p4raw-link: @7479 on //depot/perlio: 6f9d8c32c6a78a47c6088f50d7051d779f712ee1

p4raw-id: //depot/perl@7547

1  2 
perlapi.c

diff --cc perlapi.c
+++ b/perlapi.c
@@@ -2237,21 -2237,21 +2237,21 @@@ Perl_init_i18nl14n(pTHXo_ int printwarn
  
  #undef  Perl_new_collate
  void
--Perl_new_collate(pTHXo_ const char* newcoll)
++Perl_new_collate(pTHXo_ char* newcoll)
  {
      ((CPerlObj*)pPerl)->Perl_new_collate(newcoll);
  }
  
  #undef  Perl_new_ctype
  void
--Perl_new_ctype(pTHXo_ const char* newctype)
++Perl_new_ctype(pTHXo_ char* newctype)
  {
      ((CPerlObj*)pPerl)->Perl_new_ctype(newctype);
  }
  
  #undef  Perl_new_numeric
  void
--Perl_new_numeric(pTHXo_ const char* newcoll)
++Perl_new_numeric(pTHXo_ char* newcoll)
  {
      ((CPerlObj*)pPerl)->Perl_new_numeric(newcoll);
  }