From: Gurusamy Sarathy Date: Tue, 21 Mar 2000 08:56:58 +0000 (+0000) Subject: integrate cfgperl and vmsperl contents into mainline X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=d57b1ce7265517b8de654c83dd85f8a9389ca311;p=p5sagit%2Fp5-mst-13.2.git integrate cfgperl and vmsperl contents into mainline p4raw-id: //depot/perl@5853 --- d57b1ce7265517b8de654c83dd85f8a9389ca311 diff --cc Configure index f4138e6,053f227..94bcbde --- a/Configure +++ b/Configure @@@ -20,7 -20,7 +20,7 @@@ # $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $ # - # Generated on Sat Mar 18 23:12:11 EET 2000 [metaconfig 3.0 PL70] -# Generated on Sat Mar 11 20:26:09 EET 2000 [metaconfig 3.0 PL70] ++# Generated on Sun Mar 19 20:37:30 EET 2000 [metaconfig 3.0 PL70] # (with additional metaconfig patches by perlbug@perl.com) cat >/tmp/c1$$ <> to shift bitvectors instead of numbers Possible pragmas diff --cc Todo-5.6 index 35e6949,b9f05fd..7255363 --- a/Todo-5.6 +++ b/Todo-5.6 @@@ -43,18 -43,9 +43,12 @@@ Namespace cleanu API-space: complete the list of things that constitute public api Configure + fix the vicious cyclic multidependency of cc <-> libpth <-> loclibpth + libswanted <-> usethreads <-> use64bitint <-> use64bitall <-> + uselargefiles <-> ... make configuring+building away from source directory work (VPATH et al) - this is related to: cross-compilation configuring - host vs target: compile in the host, get the executable to the target, - get the possible input files to the target, execute in the target, - get possible output files back to to host. this needs to work - both during Configure and during the build. You cannot assume - shared filesystems between the host and the target, executing - the target executable may involve e.g. rsh - _r support - cross-compilation configuring ++ this is related to: cross-compilation configuring (see Todo) + _r support (see Todo for mode detailed description) POSIX 1003.1 1996 Edition support--realtime stuff: POSIX semaphores, message queues, shared memory, realtime clocks, timers, signals (the metaconfig units mostly already exist for these) diff --cc pod/perldelta.pod index 3ee5f1b,bb93b19..f2f98d9 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@@ -2647,84 -2560,6 +2647,92 @@@ warning. And in Perl 5.005, this speci =back +=head1 Known Problems + +=head2 Thread test failures + +The subtests 19 and 20 of lib/thread.t test are known to fail due to +fundamental problems in the 5.005 threading implementation. These are +not new failures--Perl 5.005_0x has the same bugs, but didn't have these +tests. + +=head2 EBCDIC platforms not supported + +In earlier releases of Perl, EBCDIC environments like OS390 (also +known as Open Edition MVS) and VM-ESA were supported. Due to changes +required by the UTF-8 (Unicode) support, the EBCDIC platforms are not +supported in Perl 5.6.0. + ++=head2 In 64-bit HP-UX the lib/io_multihomed test may hang ++ ++The lib/io_multihomed test may hang in HP-UX if Perl has been ++configured to be 64-bit. Because other 64-bit platforms do not ++hang in this test, HP-UX is suspect. All other tests pass ++in 64-bit HP-UX. The test attempts to create and connect to ++"multihomed" sockets (sockets which have multiple IP addresses). ++ +=head2 NEXTSTEP 3.3 POSIX test failure + +In NEXTSTEP 3.3p2 the implementation of the strftime(3) in the +operating system libraries is buggy: the %j format numbers the days of +a month starting from zero, which, while being logical to programmers, +will cause the subtests 19 to 27 of the lib/posix test may fail. + +=head2 UNICOS/mk CC failures during Configure run + +In UNICOS/mk the following errors may appear during the Configure run: + + Guessing which symbols your C compiler and preprocessor define... + CC-20 cc: ERROR File = try.c, Line = 3 + ... + bad switch yylook 79bad switch yylook 79bad switch yylook 79bad switch yylook 79#ifdef A29K + ... + 4 errors detected in the compilation of "try.c". + +The culprit is the broken awk of UNICOS/mk. The effect is fortunately +rather mild: Perl itself is not adversely affected by the error, only +the h2ph utility coming with Perl, and that is rather rarely needed +these days. + +=head2 Arrow operator and arrays + +When the left argument to the arrow operator C<< -> >> is an array, or +the C operator operating on an array, the result of the +operation must be considered erroneous. For example: + + @x->[2] + scalar(@x)->[2] + +These expressions will get run-time errors in some future release of +Perl. + +=head2 Many features still experimental + +As discussed above, many features are still experimental. Interfaces and +implementation of these features are subject to change, and in extreme cases, +even subject to removal in some future release of Perl. These features +include the following: + +=over 4 + +=item Threads + +=item Unicode + +=item Lvalue subroutines + +=item Weak references + +=item File globbing now implemented internally + +=item The Compiler suite + +=item The DB module + +=item The regular expression constructs C<(?{ code })> and C<(??{ code })> + +=back + =head1 BUGS If you find what you think is a bug, you might check the diff --cc t/op/taint.t index acc1c3d,9db2d0c..6548b46 --- a/t/op/taint.t +++ b/t/op/taint.t @@@ -24,11 -24,6 +24,10 @@@ BEGIN $ENV{PATH} = $ENV{PATH}; $ENV{TERM} = $ENV{TERM} ne ''? $ENV{TERM} : 'dummy'; } + if ($Config{d_shm} || $Config{d_msg}) { + require IPC::SysV; - IPC::SysV->import(qw(IPC_PRIVATE IPC_RMID IPC_CREAT S_IRWXU - S_IRWXG S_IRWXO)); ++ IPC::SysV->import(qw(IPC_PRIVATE IPC_RMID IPC_CREAT S_IRWXU)); + } } my $Is_VMS = $^O eq 'VMS'; @@@ -610,74 -605,3 +609,74 @@@ else $why =~ s/e/'-'.$$/ge; test 149, tainted $why; } + +# test shmread +{ + if ($Config{d_shm}) { + no strict 'subs'; + my $sent = "foobar"; + my $rcvd; + my $size = 2000; - my $id = shmget(IPC_PRIVATE, $size, S_IRWXU|S_IRWXG|S_IRWXO) || ++ my $id = shmget(IPC_PRIVATE, $size, S_IRWXU) || + warn "# shmget failed: $!\n"; + if (defined $id) { + if (shmwrite($id, $sent, 0, 60)) { + if (shmread($id, $rcvd, 0, 60)) { + substr($rcvd, index($rcvd, "\0")) = ''; + } else { + warn "# shmread failed: $!\n"; + } + } else { + warn "# shmwrite failed: $!\n"; + } + shmctl($id, IPC_RMID, 0) || warn "# shmctl failed: $!\n"; + } else { + warn "# shmget failed: $!\n"; + } + + if ($rcvd eq $sent) { + test 150, tainted $rcvd; + } else { + print "ok 150 # Skipped: SysV shared memory operation failed\n"; + } + } else { + print "ok 150 # Skipped: SysV shared memory is not available\n"; + } +} + +# test msgrcv +{ + if ($Config{d_msg}) { + no strict 'subs'; + my $id = msgget(IPC_PRIVATE, IPC_CREAT | S_IRWXU); + + my $sent = "message"; + my $type_sent = 1234; + my $rcvd; + my $type_rcvd; + + if (defined $id) { + if (msgsnd($id, pack("l! a*", $type_sent, $sent), 0)) { + if (msgrcv($id, $rcvd, 60, 0, 0)) { + ($type_rcvd, $rcvd) = unpack("l! a*", $rcvd); + } else { + warn "# msgrcv failed\n"; + } + } else { + warn "# msgsnd failed\n"; + } + msgctl($id, IPC_RMID, 0) || warn "# msgctl failed: $!\n"; + } else { + warn "# msgget failed\n"; + } + + if ($rcvd eq $sent && $type_sent == $type_rcvd) { + test 151, tainted $rcvd; + } else { + print "ok 151 # Skipped: SysV message queue operation failed\n"; + } + } else { + print "ok 151 # Skipped: SysV message queues are not available\n"; + } +} +