develooper Front page | perl.perl5.porters | Postings from July 2012

Is PERLIO operational or still 'experimental'?

Thread Next
July 19, 2012 02:08
Is PERLIO operational or still 'experimental'?
Message ID:
Some poking in the .\NetWare Makefile found:
> # uncomment this to enable the experimental PerlIO I/O subsystem
> # else USE_STDIO will be defined.
> #USE_PERLIO	= define
so gave USE_PERLIO a try on a NetWare LibC build. There were a number of 
compiler errors but will FTM constrain interest to two;

1. In perlio.c there are two (what I think are global) vars:
> PL_perlio_fd_refcnt_size
> PL_perlio_fd_refcnt
and just above their use is a comment (2327):
> /* PL_perlio_fd_refcnt[] is in intrpvar.h */
If it is then it is behind a bush I didn't see.

In a patch supplied by a Novell dev was added (above the comment):
> +#ifdef NETWARE
> +PL_perlio_fd_refcnt_size = PERLIO_MAX_REFCOUNTABLE_FD;
> +int PL_perlio_fd_refcnt[PERLIO_MAX_REFCOUNTABLE_FD] = {0};
> +#endif

Using more 'recent' :-) source and digging I calmed down the compiler on 
these lines with:
> #ifdef NETWARE
> int PL_perlio_fd_refcnt_size = PERLIO_MAX_REFCOUNTABLE_FD;
> int netware_fds[PERLIO_MAX_REFCOUNTABLE_FD] = {0};
> int * PL_perlio_fd_refcnt = &netware_fds;
> #endif

which suggests these two vars aren't actually set elsewhere. Alas other 
errors have so far prevented linking Libperl.nlm to see if there are 
symbol clashes when combined. Can someone comment on the status of these 
2 vars please?

2. In pp_sys.c there are a two places with a block like:
> #ifdef EPOC
>     setbuf( IoIFP(io), NULL); /* EPOC gets confused about sockets */
> #endif
Novell patches expanded the EPOC define to include NetWare, and as my 
Perl 5.8.9 worked okay, I will assume they are correct.

Under PerlIO setbuf(a,b) becomes a No-Go (as do a lot of functions) and 
was wondering if that might also mean PerlIO is a No-Go for both EPOC 
AND NetWare? (Most of the remaining errors are related to the renamed 


Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About