Integrate perlio:
Jarkko Hietaniemi [Fri, 25 Jan 2002 15:04:25 +0000 (15:04 +0000)]
[ 14411]
Linux/NFS hackery was not faking right number of passes.

[ 14410]
threads::shared tidy up:
- Add _id() function to shared.xs so we can test refs point at same thing.
- Use that rather that comparing stringified ref in shared/t/hv_refs.t
- Allow no_share to pass if sharing to works despite mis-ordering.
- Change docs of threads to document ->create() (as used in tests),
and not mention "new".

[ 14401]
Expand command line test globs on Win32.

[ 14393]
Except Win32 from echo tests. (Alarm does not break into connect)

[ 14392]
SvTEMP_off to stop private PV's being stolen and stored in shared space

[ 14387]
thread::shared nearly working again - remaining issue
is references withing shared space.
Added bulk test with no threads involved (for debugging)
Tuned tests to skip those needing _thrcnt

[ 14378]
Implement recursive lock and use of scope for PL_sharedsv_space,
so now croak() from asserts does not leave locks.
Make hv_simple compile (new prototype for debugging probe).

[ 14377]
Shared scalars working, some shared array ops working.

[ 14373]
Miss mg_len == 0 meaning don't Safefree

[ 14372]
XS side of new threads::shared designed, coded and compiles,
and mostly commented but is totaly untested.
submit in case anyone wants a preview.

[ 14363]
Add new threads/typemap to MANIFEST

[ 14357]
#14352 deleted ext/threads/threads.h

[ 14356]
Eradicate sharedsv.*

[ 14355]
threads work again on Win32. (Not threads::shared yet)
Submit to see if they do on Linux.

[ 14352]
Nearly-working threads re-structuring. Do not integrate,
submit-ing to get to Win32, and as "off site" backup.

p4raw-link: @14411 on //depot/perlio: 3ed9f8f7de3dfc6ca29c4acc02b797c9dd51d971
p4raw-link: @14410 on //depot/perlio: 9c4972d9e75b4597ce8eb071662b3474470a1ada
p4raw-link: @14401 on //depot/perlio: 4efb34a6d9cca053e4635f6fdedd5c6efdc554d8
p4raw-link: @14393 on //depot/perlio: 5d604bee230faa93dca054659df6c20150cd55c3
p4raw-link: @14392 on //depot/perlio: 85e0a142d02334b9703df242ba0bb3d8d109cdd0
p4raw-link: @14387 on //depot/perlio: 6b85e4fe3be6a9500d3cf5a72f618bc0f7919496
p4raw-link: @14378 on //depot/perlio: 6d56dc1c660466654588ccd5e1ccb4e636456d0f
p4raw-link: @14377 on //depot/perlio: a446a88f1d0ae9b5bdb72150525c08f417f05975
p4raw-link: @14373 on //depot/perlio: 7719e2416ec63cec924046d8e4d98affa4e7d3b0
p4raw-link: @14372 on //depot/perlio: 21312124121f8d9d8bc6674291e502b6a45ed0c7
p4raw-link: @14363 on //depot/perlio: 8fe26a07135ad5547dcddf1acc0665979f51a5f6
p4raw-link: @14357 on //depot/perlio: c6fa1bd53e9d5706a86ffc7abe1d48a50fb56696
p4raw-link: @14356 on //depot/perlio: b7491e57135e2ad2a84ac0cb80916ea08e497f99
p4raw-link: @14355 on //depot/perlio: ba14dd9ace5a84c9784d70e7ae3b0baccfea783d
p4raw-link: @14352 on //depot/perlio: 68795e9367de98482c4a5830e6e94b51bd60f4e3

p4raw-id: //depot/perl@14416

1  2 
NetWare/config_H.wc
embed.fnc
perl.h

  /* HAS_SHMAT_PROTOTYPE:
   *    This symbol, if defined, indicates that the sys/shm.h includes
   *    a prototype for shmat().  Otherwise, it is up to the program to
-- *    guess one.  Shmat_t shmat _((int, Shmat_t, int)) is a good guess,
++ *    guess one.  Shmat_t shmat(int, Shmat_t, int) is a good guess,
   *    but not always right so it should be emitted by the program only
   *    when HAS_SHMAT_PROTOTYPE is not defined to avoid conflicting defs.
   */
   *    If defined, this macro indicates that the C compiler can handle
   *    function prototypes.
   */
--/* _:
-- *    This macro is used to declare function parameters for folks who want
-- *    to make declarations with prototypes using a different style than
-- *    the above macros.  Use double parentheses.  For example:
-- *
-- *            int main _((int argc, char *argv[]));
-- */
  #define       CAN_PROTOTYPE   /**/
--#ifdef CAN_PROTOTYPE
--#define       _(args) args
--#else
--#define       _(args) ()
--#endif
  
  /* SH_PATH:
   *    This symbol contains the full pathname to the shell used on this
   *    This symbol, if defined, indicates that the system provides
   *    a prototype for the drand48() function.  Otherwise, it is up
   *    to the program to supply one.  A good guess is
-- *            extern double drand48 _((void));
++ *            extern double drand48(void);
   */
  /*#define     HAS_DRAND48_PROTO       /**/
  
   *    This symbol, if defined, indicates that the system provides
   *    a prototype for the sbrk() function.  Otherwise, it is up
   *    to the program to supply one.  Good guesses are
-- *            extern void* sbrk _((int));
-- *            extern void* sbrk _((size_t));
++ *            extern void* sbrk(int);
++ *            extern void* sbrk(size_t);
   */
  /*#define     HAS_SBRK_PROTO  /**/
  
   *    This symbol, if defined, indicates that the system provides
   *    a prototype for the telldir() function.  Otherwise, it is up
   *    to the program to supply one.  A good guess is
-- *            extern long telldir _((DIR*));
++ *            extern long telldir(DIR*);
   */
  #define       HAS_TELLDIR_PROTO       /**/
  
   *    This symbol, if defined, indicates that the system provides
   *    a prototype for the sockatmark() function.  Otherwise, it is up
   *    to the program to supply one.  A good guess is
-- *            extern int sockatmark _((int));
++ *            extern int sockatmark(int);
   */
  /*#define     HAS_SOCKATMARK_PROTO    /**/
  
diff --cc embed.fnc
Simple merge
diff --cc perl.h
Simple merge