On Apr 22, 2010, at 2:39 PM, martin.zin...@deutsche-boerse.com wrote:
Unfortunatly the suggested solution I really would like to implement
(since it requires not code/setup changes) does give me a headache.
Setting stdio as the standard during using configure.com does cause
the
compilation of perl to fail.
Here is what I did:
* Unpack perl into a clean directory
* @configure
...
--> Default answers for everything but
Use the PerlIO abstraction layer? [y] n
Ok, doing things the stdio way.
It should be possible to simply say:
$ @configure -"Uuseperlio" -"des"
However, that was broken until the following change:
<http://perl5.git.perl.org/perl.git/commitdiff/839d17582bad556c85fba50bb136d1c1fa878a54
>
But in any case, choosing to turn off perlio by answering the
interactive question explicitly as you did was successful in producing
the desired configuration.
CC/DECC/NOANSI_ALIAS
/Include=[]/Standard=Relaxed_ANSI/Prefix=All/Obj=.obj/NoList
/float=ieee/ieee=denorm/Define=(PERL_CORE,_USE_STD_STAT=1) VMS.C
&& PL_perlio_fd_refcnt)
................^
%CC-E-UNDECLARED, In this statement, "PL_perlio_fd_refcnt" is not
declared.
at line number 3080 in file DSA0:[PUBLIC.GNU.PERLSTD]vms.c;1
As I noted earlier, that is (was) a bug. It's now fixed in:
<http://perl5.git.perl.org/perl.git/commitdiff/a24c654f07035713924a2c157a5149ef670f55a5
>
I did a build with perlio disabled and these patches in place. Your
original test now succeeds. Mine doesn't because we get a new record
for each print statement, which worked well for your case but not for
mine. That's because disabling perlio entirely disables any buffering
so each print statement goes all the way down to fwrite().
It may be what we really need is instead of the default being perlio
and its buffering on top of unix I/O (write() and friends), it should
be perlio on top of stdio (fwrite() and friends) for record-oriented
files and devices and perlio on top of unix I/O for everything else.
This would require some understanding of how the PerlIO scheme chooses
its base layers and also detection of whether we've got a record-
oriented gizmo or not, probably by hooking a callback onto fopen() or
fdopen(). Which sounds like real work.
________________________________________
Craig A. Berry
mailto:craigbe...@mac.com
"... getting out of a sonnet is much more
difficult than getting in."
Brad Leithauser