summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Ing-Simmons <nik@tiuk.ti.com>2002-06-14 08:36:40 +0000
committerNick Ing-Simmons <nik@tiuk.ti.com>2002-06-14 08:36:40 +0000
commitb9e06e2c7ff6abbfa3de39167a70c9ec5bddd6f0 (patch)
treedb556572564baff98034cf0aa0abbc14fc769a36
parent3bef992e68500c54cec789863c0ee67aee10b008 (diff)
parent218ab4da7d1407175b6a98e2e1336ae429271b8c (diff)
downloadperl-b9e06e2c7ff6abbfa3de39167a70c9ec5bddd6f0.tar.gz
Integrate mainline
p4raw-id: //depot/perlio@17229
-rw-r--r--Changes106
-rw-r--r--INSTALL4
-rw-r--r--README.netware14
-rw-r--r--configure.com7
-rw-r--r--ext/Time/HiRes/HiRes.xs4
-rw-r--r--ext/XS/APItest/APItest.xs2
-rw-r--r--ext/XS/APItest/README9
-rw-r--r--ext/XS/APItest/t/printf.t1
-rw-r--r--ext/threads/shared/shared.pm10
-rwxr-xr-xext/threads/threads.pm6
-rw-r--r--hints/aix.sh2
-rw-r--r--hints/hpux.sh21
-rw-r--r--lib/ExtUtils/t/Installed.t2
-rw-r--r--lib/Switch.pm7
-rwxr-xr-xlib/Switch/Changes5
-rw-r--r--lib/Switch/README10
-rw-r--r--lib/attributes.pm22
-rw-r--r--patchlevel.h2
-rw-r--r--perliol.h2
-rw-r--r--pod/perldelta.pod16
-rw-r--r--pod/perlfunc.pod88
-rw-r--r--pod/perlopentut.pod36
-rw-r--r--pod/perlsub.pod8
-rw-r--r--pod/perlthrtut.pod3
-rw-r--r--pod/perltoc.pod67
-rw-r--r--pp_pack.c22
-rw-r--r--t/lib/warnings/toke32
-rw-r--r--utils/perlivp.PL19
-rw-r--r--vms/vms.c16
-rw-r--r--win32/config.bc8
-rw-r--r--win32/config_H.bc2
-rw-r--r--win32/config_H.gc6
32 files changed, 422 insertions, 137 deletions
diff --git a/Changes b/Changes
index 7c7c3e52d5..9c8f6a1bd3 100644
--- a/Changes
+++ b/Changes
@@ -28,6 +28,112 @@ example from http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/
Version v5.7.X Development release working toward v5.8
--------------
____________________________________________________________________________
+[ 17205] By: jhi on 2002/06/12 13:16:32
+ Log: Regen toc.
+ Branch: perl
+ ! pod/perltoc.pod
+____________________________________________________________________________
+[ 17204] By: jhi on 2002/06/12 13:05:28
+ Log: This should be gone now.
+ Branch: perl
+ ! INSTALL
+____________________________________________________________________________
+[ 17203] By: jhi on 2002/06/12 12:58:54
+ Log: NetWare doc tweak.
+ Branch: perl
+ ! README.netware
+____________________________________________________________________________
+[ 17202] By: jhi on 2002/06/12 12:33:33
+ Log: Subject: [PATCH pod/perlfunc.pod] Re: Change sort in scalar context behavior.
+ From: Abigail <abigail@foad.org>
+ Date: Wed, 12 Jun 2002 02:46:01 -0700
+ Message-ID: <20020612024601.A8524@ucan.foad.org>
+ Branch: perl
+ ! pod/perlfunc.pod
+____________________________________________________________________________
+[ 17201] By: jhi on 2002/06/12 12:31:19
+ Log: Subject: [PATCH] Re: linux + usemorebits: gcc error?
+ From: Rafael Garcia-Suarez <raphel.garcia-suarez@hexaflux.com>
+ Date: Wed, 12 Jun 2002 13:50:59 +0200
+ Message-ID: <3D0735A3.4020701@hexaflux.com>
+ Branch: perl
+ ! ext/Time/HiRes/HiRes.xs
+____________________________________________________________________________
+[ 17200] By: jhi on 2002/06/12 12:17:02
+ Log: Synchronize config.bc and config_H.bc; add SCNfldbl;
+ go back to disabling long doubles from MinGW because
+ MSVCRT doesn't do long double printfing even when gcc
+ would know how to handle them.
+ Branch: perl
+ ! win32/config.bc win32/config_H.bc win32/config_H.gc
+____________________________________________________________________________
+[ 17199] By: nick on 2002/06/12 11:13:16
+ Log: Integrate mainline
+ Branch: perlio
+ !> configure.com ext/XS/APItest/APItest.xs lib/Math/Trig.t perl.c
+ !> pod/perldiag.pod pod/perlmodlib.PL pod/perlmodlib.pod
+ !> win32/config_H.bc win32/config_H.gc
+____________________________________________________________________________
+[ 17198] By: jhi on 2002/06/12 03:01:37
+ Log: Subject: [PATCH @17190] configure.com: join the sPRI... party
+ From: "Craig A. Berry" <craigberry@mac.com>
+ Date: Tue, 11 Jun 2002 22:44:31 -0500
+ Message-Id: <a05111b00b92c6bda8b47@[172.16.52.1]>
+ Branch: perl
+ ! configure.com
+____________________________________________________________________________
+[ 17197] By: jhi on 2002/06/12 01:52:32
+ Log: Test relying on undefined behaviour of atan2(0, 0)
+ (valiantly debugged by Mark Lutz).
+ Branch: perl
+ ! lib/Math/Trig.t
+____________________________________________________________________________
+[ 17196] By: jhi on 2002/06/12 01:41:05
+ Log: Regen perlmodlib.
+ Branch: perl
+ ! pod/perlmodlib.pod
+____________________________________________________________________________
+[ 17195] By: jhi on 2002/06/12 01:39:18
+ Log: Subject: [PATCH] perlmodlib.pod missing Config & Errno
+ From: sthoenna@efn.org (Yitzchak Scott-Thoennes)
+ Date: Tue, 11 Jun 2002 15:12:15 -0700
+ Message-ID: </WnB9gzkgC5S092yn@efn.org>
+ Branch: perl
+ ! pod/perlmodlib.PL
+____________________________________________________________________________
+[ 17194] By: jhi on 2002/06/12 01:35:57
+ Log: Subject: [PATCH] Re: RC1 on Playstation2
+ From: Tim Jenness <t.jenness@jach.hawaii.edu>
+ Date: Tue, 11 Jun 2002 11:55:40 -1000 (HST)
+ Message-ID: <Pine.LNX.4.44.0206111135130.31715-100000@lapaki>
+ Branch: perl
+ ! perl.c
+____________________________________________________________________________
+[ 17193] By: jhi on 2002/06/11 19:57:23
+ Log: Not that I know anything about Windows compilers
+ but Google leads me into believing that while Borland and
+ GCC support the ANSI way of printing long doubles (%L),
+ Visual C really doesn't support printing them.
+ Branch: perl
+ ! ext/XS/APItest/APItest.xs win32/config_H.bc win32/config_H.gc
+____________________________________________________________________________
+[ 17192] By: rgs on 2002/06/11 19:00:37
+ Log: Fix a cut-n-paste error.
+ Branch: perl
+ ! pod/perldiag.pod
+____________________________________________________________________________
+[ 17191] By: nick on 2002/06/11 16:07:14
+ Log: Integrate mainline
+ Branch: perlio
+ !> Changes INSTALL ext/XS/APItest/APItest.pm
+ !> ext/XS/APItest/APItest.xs ext/XS/APItest/t/printf.t
+ !> patchlevel.h
+____________________________________________________________________________
+[ 17190] By: jhi on 2002/06/11 14:09:14
+ Log: Update Changes.
+ Branch: perl
+ ! Changes patchlevel.h
+____________________________________________________________________________
[ 17189] By: jhi on 2002/06/11 13:55:12
Log: Trying to printf Perl-specific datatypes using printf
(with perlio or stdio) is folly, says Hugo.
diff --git a/INSTALL b/INSTALL
index af41c19037..a3093b8062 100644
--- a/INSTALL
+++ b/INSTALL
@@ -795,10 +795,6 @@ this support (if it is available).
You can "Configure -Dusemorebits" to turn on both the 64-bit support
and the long double support.
-Note that on some platforms (linux 2.2.14 (RedHat 6.2, x86), libc 2.1.3)
-the gcc 3.1 compiler has been reported to refuse to compile the
-Time::Hires module when using -Dusemorebits or an equivalent setting.
-
=head2 Selecting File IO mechanisms
Executive summary: in Perl 5.8, you should use the default "PerlIO"
diff --git a/README.netware b/README.netware
index 55c9418c9a..170cd4dfb7 100644
--- a/README.netware
+++ b/README.netware
@@ -110,7 +110,6 @@ Example: At the command prompt Type "nmake nwinstall".
This will cause the binaries to be installed on the local machine.
(Typically under the c:\perl folder)
-
=head1 Build new extensions
To build extensions other than standard extensions, NetWare Perl has
@@ -140,7 +139,11 @@ Run the following command at the command prompt:
Example:
- perl -Ic:/perl/5.7.2/lib/NetWare-x86-multi-thread -Ic:\perl\5.7.2\lib MakeFile.pl
+ perl -Ic:/perl/5.6.1/lib/NetWare-x86-multi-thread -Ic:\perl\5.6.1\lib MakeFile.pl
+
+or
+
+ perl -Ic:/perl/5.8.0/lib/NetWare-x86-multi-thread -Ic:\perl\5.8.0\lib MakeFile.pl
=item *
@@ -159,7 +162,12 @@ typing I<nmake install>, will copy the files onto the NetWare server.
Example: You can execute the following on the command prompt.
- perl -Ic:/perl/5.7.2/lib/NetWare-x86-multi-thread -Ic:\perl\5.7.2\lib MakeFile.pl
+ perl -Ic:/perl/5.6.1/lib/NetWare-x86-multi-thread -Ic:\perl\5.6.1\lib MakeFile.pl
+ INSTALLSITELIB=i:\perl\lib
+
+or
+
+ perl -Ic:/perl/5.8.0/lib/NetWare-x86-multi-thread -Ic:\perl\5.8.0\lib MakeFile.pl
INSTALLSITELIB=i:\perl\lib
=item *
diff --git a/configure.com b/configure.com
index ebe69afb51..d949bb2532 100644
--- a/configure.com
+++ b/configure.com
@@ -4730,7 +4730,12 @@ $ d_wctomb="define"
$ i_locale="define"
$ i_langinfo="define"
$ d_locconv="define"
-$ d_nl_langinfo="define"
+$ IF vms_ver .GES. "6.2"
+$ THEN
+$ d_nl_langinfo="define"
+$ ELSE
+$ d_nl_langinfo="undef"
+$ ENDIF
$ d_setlocale="define"
$ vms_cc_type="decc"
$ ELSE
diff --git a/ext/Time/HiRes/HiRes.xs b/ext/Time/HiRes/HiRes.xs
index 3db39023cc..c66b92db08 100644
--- a/ext/Time/HiRes/HiRes.xs
+++ b/ext/Time/HiRes/HiRes.xs
@@ -597,7 +597,7 @@ usleep(useconds)
}
} else if (useconds < 0.0)
croak("Time::HiRes::usleep(%"NVgf"): negative time not invented yet", useconds);
- usleep((UV)useconds);
+ usleep((U32)useconds);
} else
PerlProc_pause();
gettimeofday(&Tb, NULL);
@@ -620,7 +620,7 @@ sleep(...)
if (seconds >= 0.0) {
UV useconds = (UV)(1E6 * (seconds - (UV)seconds));
if (seconds >= 1.0)
- sleep((UV)seconds);
+ sleep((U32)seconds);
usleep(useconds);
} else
croak("Time::HiRes::sleep(%"NVgf"): negative time not invented yet", seconds);
diff --git a/ext/XS/APItest/APItest.xs b/ext/XS/APItest/APItest.xs
index 1e8ea35d01..d5c6b5271c 100644
--- a/ext/XS/APItest/APItest.xs
+++ b/ext/XS/APItest/APItest.xs
@@ -20,6 +20,8 @@ have_long_double()
#else
RETVAL = 0;
#endif
+ OUTPUT:
+ RETVAL
void
print_long_double()
diff --git a/ext/XS/APItest/README b/ext/XS/APItest/README
index dbfc91a1d7..cdbf449e26 100644
--- a/ext/XS/APItest/README
+++ b/ext/XS/APItest/README
@@ -6,15 +6,6 @@ It is not meant to be installed.
Currently tests that printf formatting works correctly.
-INSTALLATION
-
-To install this module type the following:
-
- perl Makefile.PL
- make
- make test
- make install
-
DEPENDENCIES
None.
diff --git a/ext/XS/APItest/t/printf.t b/ext/XS/APItest/t/printf.t
index a17267de7b..91f328cd5c 100644
--- a/ext/XS/APItest/t/printf.t
+++ b/ext/XS/APItest/t/printf.t
@@ -1,6 +1,7 @@
BEGIN {
chdir 't' if -d 't';
@INC = '../lib';
+ push @INC, "::lib:$MacPerl::Architecture:" if $^O eq 'MacOS';
require Config; import Config;
if ($Config{'extensions'} !~ /\bXS\/APItest\b/) {
print "1..0 # Skip: XS::APItest was not built\n";
diff --git a/ext/threads/shared/shared.pm b/ext/threads/shared/shared.pm
index c92bfe55cf..8f3c677b58 100644
--- a/ext/threads/shared/shared.pm
+++ b/ext/threads/shared/shared.pm
@@ -14,7 +14,7 @@ $caller[1] line $caller[2]:
This Perl hasn't been configured and built properly for the threads
module to work. (The 'useithreads' configuration option hasn't been used.)
-Having threads support requires all of Perl and all of the modules in
+Having threads support requires all of Perl and all of the XS modules in
the Perl installation to be rebuilt, it is not just a question of adding
the threads module. (In other words, threaded and non-threaded Perls
are binary incompatible.)
@@ -190,16 +190,20 @@ implemented in a future version of Perl.
Does not support splice on arrays!
+Taking references to the elements of shared arrays and hashes does not
+autovivify the elements, and neither does slicing a shared array/hash
+over non-existent indices/keys autovivify the elements.
+
=head1 AUTHOR
Arthur Bergman E<lt>arthur at contiller.seE<gt>
threads::shared is released under the same license as Perl
-Documentation borrowed from Thread.pm
+Documentation borrowed from the old Thread.pm
=head1 SEE ALSO
-L<threads>, L<perlthrtut>
+L<threads>, L<perlthrtut>, L<http://www.perl.com/pub/a/2002/06/11/threads.html>
=cut
diff --git a/ext/threads/threads.pm b/ext/threads/threads.pm
index 5739104244..af68a5003e 100755
--- a/ext/threads/threads.pm
+++ b/ext/threads/threads.pm
@@ -14,7 +14,7 @@ $caller[1] line $caller[2]:
This Perl hasn't been configured and built properly for the threads
module to work. (The 'useithreads' configuration option hasn't been used.)
-Having threads support requires all of Perl and all of the modules in
+Having threads support requires all of Perl and all of the XS modules in
the Perl installation to be rebuilt, it is not just a question of adding
the threads module. (In other words, threaded and non-threaded Perls
are binary incompatible.)
@@ -259,6 +259,8 @@ please join perl-ithreads@perl.org for more information
=head1 SEE ALSO
-L<threads::shared>, L<perlthrtut>, L<perlcall>, L<perlembed>, L<perlguts>
+L<threads::shared>, L<perlthrtut>,
+L<http://www.perl.com/pub/a/2002/06/11/threads.html>,
+L<perlcall>, L<perlembed>, L<perlguts>
=cut
diff --git a/hints/aix.sh b/hints/aix.sh
index e6e97a9edf..09ca0a4b57 100644
--- a/hints/aix.sh
+++ b/hints/aix.sh
@@ -147,7 +147,7 @@ case "$cc" in
gccversion=`$cc --version | sed 's/.*(GCC) *//`
fi
;;
-*) ccversion=`lslpp -L | grep 'C for AIX Compiler$' | awk '{print $2}'`
+*) ccversion=`lslpp -L | grep 'C for AIX Compiler$' | grep -v '\.msg\.[A-Za-z_]*\.' | awk '{print $2}'`
case "$ccversion" in
'') ccversion=`lslpp -L | grep 'IBM C and C++ Compilers LUM$' | awk '{print $2}'`
;;
diff --git a/hints/hpux.sh b/hints/hpux.sh
index 1cd190eb5b..71705163d4 100644
--- a/hints/hpux.sh
+++ b/hints/hpux.sh
@@ -553,7 +553,26 @@ EOM
EOCBU
# The mysterious io_xs memory corruption in 11.00 32bit seems to get
-# fixed by not using Perl's malloc.
+# fixed by not using Perl's malloc. Flip side is performance loss.
+# So we want mymalloc for all situations possible
+usemymalloc='y'
+case "$usethreads" in
+ $define|true|[yY]*) usemymalloc='n' ;;
+ *) case "$ccisgcc" in
+ $undef|false|[nN]*)
+ case "$use64bitint" in
+ $undef|false|[nN]*)
+ case "$ccflags" in
+ *-DDEBUGGING*) ;;
+ *) usemymalloc='n' ;;
+ esac
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ esac
+
usemymalloc='n'
case "$useperlio" in
$undef|false|[nN]*) usemymalloc='y' ;;
diff --git a/lib/ExtUtils/t/Installed.t b/lib/ExtUtils/t/Installed.t
index d609f62799..a1db4340ae 100644
--- a/lib/ExtUtils/t/Installed.t
+++ b/lib/ExtUtils/t/Installed.t
@@ -81,7 +81,7 @@ ok( $ei->_is_under('baz', @under), '... should find file under dir' );
my $wrotelist;
-ok(mkpath('auto/FakeMod'));
+ok(scalar mkpath('auto/FakeMod'));
END { rmtree 'auto/FakeMod' }
ok(open(PACKLIST, '>auto/FakeMod/.packlist'));
diff --git a/lib/Switch.pm b/lib/Switch.pm
index c76ac8eb1f..31590b3dcc 100644
--- a/lib/Switch.pm
+++ b/lib/Switch.pm
@@ -4,7 +4,7 @@ use strict;
use vars qw($VERSION);
use Carp;
-$VERSION = '2.07';
+$VERSION = '2.09';
# LOAD FILTERING MODULE...
@@ -52,7 +52,6 @@ sub filter
return $status if $status<0;
$_ = filter_blocks($_,$offset);
$_ = "# line $offset\n" . $_ if $offset; undef $offset;
- # print STDERR $_;
return $status;
}
@@ -492,8 +491,8 @@ Switch - A switch statement for Perl
=head1 VERSION
-This document describes version 2.07 of Switch,
-released May 15, 2002.
+This document describes version 2.09 of Switch,
+released June 12, 2002.
=head1 SYNOPSIS
diff --git a/lib/Switch/Changes b/lib/Switch/Changes
index c872bdd80f..e38254444d 100755
--- a/lib/Switch/Changes
+++ b/lib/Switch/Changes
@@ -68,3 +68,8 @@ Revision history for Perl extension Switch.
- Updated "Perl6" syntax to reflect current design
(as far as possible -- can't eliminate need to parenthesize
variables, since they're ambiguous in Perl 5)
+
+
+2.09 Wed Jun 12 22:13:30 2002
+
+ - Removed spurious debugging statement
diff --git a/lib/Switch/README b/lib/Switch/README
index 5a517403a5..0d2a8b7f26 100644
--- a/lib/Switch/README
+++ b/lib/Switch/README
@@ -1,5 +1,5 @@
==============================================================================
- Release of version 2.07 of Switch
+ Release of version 2.09 of Switch
==============================================================================
@@ -26,14 +26,10 @@ COPYRIGHT
==============================================================================
-CHANGES IN VERSION 2.07
+CHANGES IN VERSION 2.09
- - Corified tests
-
- - Updated "Perl6" syntax to reflect current design
- (as far as possible -- can't eliminate need to parenthesize
- variables, since they're ambiguous in Perl 5)
+ - Removed spurious debugging statement
==============================================================================
diff --git a/lib/attributes.pm b/lib/attributes.pm
index 40b35b830d..2dacd02751 100644
--- a/lib/attributes.pm
+++ b/lib/attributes.pm
@@ -129,9 +129,9 @@ The second example in the synopsis does something equivalent to this:
Yes, that's a lot of expansion.
-B<WARNING>: attribute declarations for variables are an I<experimental>
-feature. The semantics of such declarations could change or be removed
-in future versions. They are present for purposes of experimentation
+B<WARNING>: attribute declarations for variables are still evolving.
+The semantics and interfaces of such declarations could change in
+future versions. They are present for purposes of experimentation
with what the semantics ought to be. Do not rely on the current
implementation of this feature.
@@ -151,12 +151,11 @@ before those attributes will get applied. For example:
will neither assign 42 to $x I<nor> will it apply the C<Bent> attribute
to the variable.
-An attempt to set
-an unrecognized attribute is a fatal error. (The error is trappable, but
-it still stops the compilation within that C<eval>.) Setting an attribute
-with a name that's all lowercase letters that's not a built-in attribute
-(such as "foo")
-will result in a warning with B<-w> or C<use warnings 'reserved'>.
+An attempt to set an unrecognized attribute is a fatal error. (The
+error is trappable, but it still stops the compilation within that
+C<eval>.) Setting an attribute with a name that's all lowercase
+letters that's not a built-in attribute (such as "foo") will result in
+a warning with B<-w> or C<use warnings 'reserved'>.
=head2 Built-in Attributes
@@ -191,10 +190,7 @@ as a scalar variable, as described in L<perlsub>.
=back
-There are no built-in attributes for anything other than subroutines.
-
-=for hackers
-What about C<unique>?
+For global variables there is C<unique> attribute: see L<perlfunc/our>.
=head2 Available Subroutines
diff --git a/patchlevel.h b/patchlevel.h
index 8b5b66df88..84f2ea0bbe 100644
--- a/patchlevel.h
+++ b/patchlevel.h
@@ -79,7 +79,7 @@
#if !defined(PERL_PATCHLEVEL_H_IMPLICIT) && !defined(LOCAL_PATCH_COUNT)
static char *local_patches[] = {
NULL
- ,"DEVEL17189"
+ ,"DEVEL17205"
,NULL
};
diff --git a/perliol.h b/perliol.h
index 8595c2e200..250a01529d 100644
--- a/perliol.h
+++ b/perliol.h
@@ -16,7 +16,7 @@ struct PerlIO_list_s {
struct _PerlIO_funcs {
char *name;
Size_t size;
- IV kind;
+ U32 kind;
IV (*Pushed) (pTHX_ PerlIO *f, const char *mode, SV *arg);
IV (*Popped) (pTHX_ PerlIO *f);
PerlIO *(*Open) (pTHX_ PerlIO_funcs *tab,
diff --git a/pod/perldelta.pod b/pod/perldelta.pod
index c1f08fe93d..726eecfeca 100644
--- a/pod/perldelta.pod
+++ b/pod/perldelta.pod
@@ -2580,7 +2580,8 @@ functionality and better error handling. [561]
File access tests now use current process privileges rather than the
user's default privileges, which could sometimes result in a mismatch
-between reported access and actual access.
+between reported access and actual access. This improvement is only
+available on VMS v6.0 and later.
There is a new C<kill> implementation based on C<sys$sigprc> that allows
older VMS systems (pre-7.0) to use C<kill> to send signals rather than
@@ -3165,6 +3166,10 @@ is serious but as of yet unsolved. It points at some problems with the
signedness handling of the C compiler, as do the 64bitint, arith, and pow
failures. Most of the rest point at problems with SysV IPC.
+=head2 PDL failing some tests
+
+Use PDL 2.3.4 or later.
+
=head2 Term::ReadKey not working on Win32
Use Term::ReadKey 2.20 or later.
@@ -3337,6 +3342,15 @@ behaviour may be fixed at a later date.
Self-tying of scalars and IO thingies works.
+=head2 Tied/Magical Array/Hash Elements Do Not Autovivify
+
+For normal arrays C<$foo = \$bar[1]> will assign C<undef> to
+C<$bar[1]> (assuming that it didn't exist before), but for
+tied/magical arrays and hashes such autovivification does not happen
+because there is currently no way to catch the reference creation.
+The same problem affects slicing over non-existent indices/keys of
+a tied/magical array/hash.
+
=head2 Building Extensions Can Fail Because Of Largefiles
Some extensions like mod_perl are known to have issues with
diff --git a/pod/perlfunc.pod b/pod/perlfunc.pod
index c85d43be64..e858b26a4a 100644
--- a/pod/perlfunc.pod
+++ b/pod/perlfunc.pod
@@ -2626,12 +2626,22 @@ and C<IPC::SysV::Msg> documentation.
=item my EXPR
-=item my EXPR : ATTRIBUTES
+=item my TYPE EXPR
+
+=item my EXPR : ATTRS
+
+=item my TYPE EXPR : ATTRS
A C<my> declares the listed variables to be local (lexically) to the
-enclosing block, file, or C<eval>. If
-more than one value is listed, the list must be placed in parentheses. See
-L<perlsub/"Private Variables via my()"> for details.
+enclosing block, file, or C<eval>. If more than one value is listed,
+the list must be placed in parentheses.
+
+The exact semantics and interface of TYPE and ATTRS are still
+evolving. TYPE is currently bound to the use of C<fields> pragma,
+and attributes are handled using the C<attributes> pragma, or starting
+from Perl 5.8.0 also via the C<Attribute::Handlers> module. See
+L<perlsub/"Private Variables via my()"> for details, and L<fields>,
+L<attributes>, and L<Attribute::Handlers>.
=item next LABEL
@@ -3058,7 +3068,11 @@ See L<perlunicode> and L<encoding> for more about Unicode.
=item our EXPR
-=item our EXPR : ATTRIBUTES
+=item our EXPR TYPE
+
+=item our EXPR : ATTRS
+
+=item our TYPE EXPR : ATTRS
An C<our> declares the listed variables to be valid globals within
the enclosing block, file, or C<eval>. That is, it has the same
@@ -3099,15 +3113,20 @@ package, Perl will emit warnings if you have asked for them.
our $bar; # emits warning
An C<our> declaration may also have a list of attributes associated
-with it. B<WARNING>: This is an experimental feature that may be
-changed or removed in future releases of Perl. It should not be
-relied upon.
+with it.
-The only currently recognized attribute is C<unique> which indicates
-that a single copy of the global is to be used by all interpreters
-should the program happen to be running in a multi-interpreter
-environment. (The default behaviour would be for each interpreter
-to have its own copy of the global.) Examples:
+The exact semantics and interface of TYPE and ATTRS are still
+evolving. TYPE is currently bound to the use of C<fields> pragma,
+and attributes are handled using the C<attributes> pragma, or starting
+from Perl 5.8.0 also via the C<Attribute::Handlers> module. See
+L<perlsub/"Private Variables via my()"> for details, and L<fields>,
+L<attributes>, and L<Attribute::Handlers>.
+
+The only currently recognized C<our()> attribute is C<unique> which
+indicates that a single copy of the global is to be used by all
+interpreters should the program happen to be running in a
+multi-interpreter environment. (The default behaviour would be for
+each interpreter to have its own copy of the global.) Examples:
our @EXPORT : unique = qw(foo);
our %EXPORT_TAGS : unique = (bar => [qw(aa bb cc)]);
@@ -4483,16 +4502,18 @@ sockets but not socketpair.
=item sort LIST
-Sorts the LIST and returns the sorted list value. If SUBNAME or BLOCK
-is omitted, C<sort>s in standard string comparison order. If SUBNAME is
-specified, it gives the name of a subroutine that returns an integer
-less than, equal to, or greater than C<0>, depending on how the elements
-of the list are to be ordered. (The C<< <=> >> and C<cmp>
-operators are extremely useful in such routines.) SUBNAME may be a
-scalar variable name (unsubscripted), in which case the value provides
-the name of (or a reference to) the actual subroutine to use. In place
-of a SUBNAME, you can provide a BLOCK as an anonymous, in-line sort
-subroutine.
+In list context, this sorts the LIST and returns the sorted list value.
+In scalar context, the behaviour of C<sort()> is undefined.
+
+If SUBNAME or BLOCK is omitted, C<sort>s in standard string comparison
+order. If SUBNAME is specified, it gives the name of a subroutine
+that returns an integer less than, equal to, or greater than C<0>,
+depending on how the elements of the list are to be ordered. (The C<<
+<=> >> and C<cmp> operators are extremely useful in such routines.)
+SUBNAME may be a scalar variable name (unsubscripted), in which case
+the value provides the name of (or a reference to) the actual
+subroutine to use. In place of a SUBNAME, you can provide a BLOCK as
+an anonymous, in-line sort subroutine.
If the subroutine's prototype is C<($$)>, the elements to be compared
are passed by reference in C<@_>, as for a normal subroutine. This is
@@ -5197,17 +5218,22 @@ out the names of those files that contain a match:
print $file, "\n";
}
-=item sub BLOCK
+=item sub NAME BLOCK
+
+=item sub NAME (PROTO) BLOCK
-=item sub NAME
+=item sub NAME : ATTRS BLOCK
-=item sub NAME BLOCK
+=item sub NAME (PROTO) : ATTRS BLOCK
+
+This is subroutine definition, not a real function I<per se>.
+Without a BLOCK it's just a forward declaration. Without a NAME,
+it's an anonymous function declaration, and does actually return
+a value: the CODE ref of the closure you just created.
-This is subroutine definition, not a real function I<per se>. With just a
-NAME (and possibly prototypes or attributes), it's just a forward declaration.
-Without a NAME, it's an anonymous function declaration, and does actually
-return a value: the CODE ref of the closure you just created. See L<perlsub>
-and L<perlref> for details.
+See L<perlsub> and L<perlref> for details about subroutines and
+references, and L<attributes> and L<Attributed::Handlers> for more
+information about attributes.
=item substr EXPR,OFFSET,LENGTH,REPLACEMENT
diff --git a/pod/perlopentut.pod b/pod/perlopentut.pod
index 34405639f4..6f7f77c432 100644
--- a/pod/perlopentut.pod
+++ b/pod/perlopentut.pod
@@ -838,6 +838,42 @@ how to increment a number in a file safely:
close(FH)
or die "can't close numfile: $!";
+=head2 IO Layers
+
+In Perl 5.8.0 a new I/O framework called "PerlIO" was introduced.
+This is a new "plumbing" for all the I/O happening in Perl; for the
+most part everything will work just as it did, but PerlIO brought in
+also some new features, like the capability of think of I/O as "layers".
+One I/O layer may in addition to just moving the data also do
+transformations on the data. Such transformations may include
+compression and decompression, encryption and decryption, and transforming
+between various character encodings.
+
+Full discussion about the features of PerlIO is out of scope for this
+tutorial, but here is how to recognize the layers being used:
+
+=over 4
+
+=item *
+
+The three-(or more)-argument form of C<open()> is being used and the
+second argument contains something else in addition to the usual
+C<< '<' >>, C<< '>' >>, C<< '>>' >>, C<< '|' >> and their variants,
+for example:
+
+ open(my $fh, "<:utf8", $fn);
+
+=item *
+
+The two-argument form of C<binmode<open()> is being used, for example
+
+ binmode($fh, ":encoding(utf16)");
+
+=back
+
+For more detailed discussion about PerlIO see L<perlio>;
+for more detailed discussion about Unicode and I/O see L<perluniintro>.
+
=head1 SEE ALSO
The C<open> and C<sysopen> function in perlfunc(1);
diff --git a/pod/perlsub.pod b/pod/perlsub.pod
index b92c63a6f4..ce3b120633 100644
--- a/pod/perlsub.pod
+++ b/pod/perlsub.pod
@@ -220,9 +220,9 @@ Synopsis:
my @oof = @bar; # declare @oof lexical, and init it
my $x : Foo = $y; # similar, with an attribute applied
-B<WARNING>: The use of attribute lists on C<my> declarations is
-experimental. This feature should not be relied upon. It may
-change or disappear in future releases of Perl. See L<attributes>.
+B<WARNING>: The use of attribute lists on C<my> declarations is still
+evolving. The current semantics and interface are subject to change.
+See L<attributes> and L<Attribute::Handlers>.
The C<my> operator declares the listed variables to be lexically
confined to the enclosing block, conditional (C<if/unless/elsif/else>),
@@ -1360,7 +1360,7 @@ parsed and invoked:
use attributes __PACKAGE__, \&plugh, q[Ugly('\(")], 'Bad';
For further details on attribute lists and their manipulation,
-see L<attributes>.
+see L<attributes> and L<Attribute::Handlers>.
=head1 SEE ALSO
diff --git a/pod/perlthrtut.pod b/pod/perlthrtut.pod
index 10a7c397df..2d07fb5f93 100644
--- a/pod/perlthrtut.pod
+++ b/pod/perlthrtut.pod
@@ -1048,6 +1048,9 @@ Management: Proc. of the International Workshop IWMM 92, St. Malo,
France, September 1992, Yves Bekkers and Jacques Cohen, eds. Springer,
1992, ISBN 3540-55940-X (real-life thread applications).
+Artur Bergman, "Where Wizards Fear To Tread", June 11, 2002,
+L<http://www.perl.com/pub/a/2002/06/11/threads.html>
+
=head1 Acknowledgements
Thanks (in no particular order) to Chaim Frenkel, Steve Fink, Gurusamy
diff --git a/pod/perltoc.pod b/pod/perltoc.pod
index dccfa05fc8..5ab395fe09 100644
--- a/pod/perltoc.pod
+++ b/pod/perltoc.pod
@@ -1796,7 +1796,7 @@ Proto, LocalPort, Listen, Reuse
=back
-=head2 perlfork - Perl's fork() emulation (EXPERIMENTAL, subject to change)
+=head2 perlfork - Perl's fork() emulation
=over 4
@@ -2645,13 +2645,14 @@ B::Deparse, B::Disassembler, B::Lint, B::Showlex, B::Stackobj, B::Stash,
B::Terse, B::Xref, Benchmark, ByteLoader, CGI, CGI::Apache, CGI::Carp,
CGI::Cookie, CGI::Fast, CGI::Pretty, CGI::Push, CGI::Switch, CGI::Util,
CPAN, CPAN::FirstTime, CPAN::Nox, Carp, Carp::Heavy, Class::ISA,
-Class::Struct, Cwd, DB, DB_File, Devel::SelfStubber, Digest, DirHandle,
-Dumpvalue, Encode, English, Env, Exporter, Exporter::Heavy,
-ExtUtils::Command, ExtUtils::Command::MM, ExtUtils::Constant,
-ExtUtils::Embed, ExtUtils::Install, ExtUtils::Installed, ExtUtils::Liblist,
-ExtUtils::MM, ExtUtils::MM_Any, ExtUtils::MM_BeOS, ExtUtils::MM_Cygwin,
-ExtUtils::MM_DOS, ExtUtils::MM_MacOS, ExtUtils::MM_NW5, ExtUtils::MM_OS2,
-ExtUtils::MM_UWIN, ExtUtils::MM_Unix, ExtUtils::MM_VMS, ExtUtils::MM_Win32,
+Class::Struct, Config, Cwd, DB, DB_File, Devel::SelfStubber, Digest,
+DirHandle, Dumpvalue, Encode, English, Env, Errno, Exporter,
+Exporter::Heavy, ExtUtils::Command, ExtUtils::Command::MM,
+ExtUtils::Constant, ExtUtils::Embed, ExtUtils::Install,
+ExtUtils::Installed, ExtUtils::Liblist, ExtUtils::MM, ExtUtils::MM_Any,
+ExtUtils::MM_BeOS, ExtUtils::MM_Cygwin, ExtUtils::MM_DOS,
+ExtUtils::MM_MacOS, ExtUtils::MM_NW5, ExtUtils::MM_OS2, ExtUtils::MM_UWIN,
+ExtUtils::MM_Unix, ExtUtils::MM_VMS, ExtUtils::MM_Win32,
ExtUtils::MM_Win95, ExtUtils::MY, ExtUtils::MakeMaker, ExtUtils::Manifest,
ExtUtils::Mkbootstrap, ExtUtils::Mksymlists, ExtUtils::Packlist,
ExtUtils::testlib, Fatal, Fcntl, File::Basename, File::CheckTree,
@@ -2673,10 +2674,10 @@ Net::netent, Net::protoent, Net::servent, O, ODBM_File, Opcode, POSIX,
PerlIO, Pod::Checker, Pod::Find, Pod::Functions, Pod::Html,
Pod::InputObjects, Pod::LaTeX, Pod::Man, Pod::ParseLink, Pod::ParseUtils,
Pod::Parser, Pod::Plainer, Pod::Select, Pod::Text, Pod::Text::Color,
-Pod::Text::Overstrike, Pod::Text::Termcap, Pod::Usage, Pod::t::basic,
-SDBM_File, Safe, Search::Dict, SelectSaver, SelfLoader, Shell, Socket,
-Storable, Switch, Symbol, Term::ANSIColor, Term::Cap, Term::Complete,
-Term::ReadLine, Test, Test::Builder, Test::Harness, Test::Harness::Assert,
+Pod::Text::Overstrike, Pod::Text::Termcap, Pod::Usage, SDBM_File, Safe,
+Search::Dict, SelectSaver, SelfLoader, Shell, Socket, Storable, Switch,
+Symbol, Term::ANSIColor, Term::Cap, Term::Complete, Term::ReadLine, Test,
+Test::Builder, Test::Harness, Test::Harness::Assert,
Test::Harness::Iterator, Test::Harness::Straps, Test::More, Test::Simple,
Test::Tutorial, Text::Abbrev, Text::Balanced, Text::ParseWords,
Text::Soundex, Text::Tabs, Text::Wrap, Thread, Thread::Queue,
@@ -5097,7 +5098,7 @@ NFS, rsync'ing the patches
=item Why rsync the source tree
-It's easier to rsync the source tree, It's more recent, It's more reliable
+It's easier to rsync the source tree, It's more reliable
=item Why rsync the patches
@@ -7548,6 +7549,8 @@ SetNWBld.bat, Buildtype.bat
=item Install
+=item Build new extensions
+
=item Acknowledgements
=item Authors
@@ -10728,7 +10731,7 @@ C<orderlib>, C<osname>, C<osvers>, C<otherlibdirs>
=item p
C<package>, C<pager>, C<passcat>, C<patchlevel>, C<path_sep>, C<perl5>,
-C<perl5>, C<perl>, C<perl_patchlevel>
+C<perl>, C<perl_patchlevel>
=item P
@@ -10798,7 +10801,7 @@ C<xlibpth>, C<xs_apiversion>
=item y
-C<yaccflags>
+C<yacc>, C<yaccflags>
=item z
@@ -16007,9 +16010,10 @@ MSGNUM ] ), delete ( MSGNUM ), reset (), quit ()
=item Functions
-Net::Ping->new([$proto [, $def_timeout [, $bytes]]]);, $p->hires( { 0 | 1 }
-);, $p->bind($local_addr);, $p->ping($host [, $timeout]);,
-$p->open($host);, $p->close();, pingecho($host [, $timeout]);
+Net::Ping->new([$proto [, $def_timeout [, $bytes]]]);, $p->source_verify( {
+0 | 1 } );, $p->hires( { 0 | 1 } );, $p->bind($local_addr);, $p->ping($host
+[, $timeout]);, $p->open($host);, $p->close();, pingecho($host [,
+$timeout]);
=back
@@ -19542,6 +19546,33 @@ Win32::UnregisterServer(LIBRARYNAME)
=back
+=head2 XS::APItest - Test the perl C API
+
+=over 4
+
+=item SYNOPSIS
+
+=item ABSTRACT
+
+=item DESCRIPTION
+
+=over 4
+
+=item EXPORT
+
+B<print_double>, B<print_long_double>, B<have_long_double>, B<print_nv>,
+B<print_iv>, B<print_uv>, B<print_int>, B<print_long>, B<print_float>
+
+=back
+
+=item SEE ALSO
+
+=item AUTHORS
+
+=item COPYRIGHT AND LICENSE
+
+=back
+
=head2 XS::Typemap - module to test the XS typemaps distributed with perl
=over 4
diff --git a/pp_pack.c b/pp_pack.c
index d3fd37abcf..486c4f7136 100644
--- a/pp_pack.c
+++ b/pp_pack.c
@@ -2101,7 +2101,18 @@ Perl_pack_cat(pTHX_ SV *cat, char *pat, register char *patend, register SV **beg
afloat = _float_constants[0]; /* single prec. inf. */
else afloat = (float)SvNV(fromstr);
#else
+# if defined(VMS) && !defined(__IEEE_FP)
+/* IEEE fp overflow shenanigans are unavailable on VAX and optional
+ * on Alpha; fake it if we don't have them.
+ */
+ if (SvNV(fromstr) > FLT_MAX)
+ afloat = FLT_MAX;
+ else if (SvNV(fromstr) < -FLT_MAX)
+ afloat = -FLT_MAX;
+ else afloat = (float)SvNV(fromstr);
+# else
afloat = (float)SvNV(fromstr);
+# endif
#endif
sv_catpvn(cat, (char *)&afloat, sizeof (float));
}
@@ -2122,7 +2133,18 @@ Perl_pack_cat(pTHX_ SV *cat, char *pat, register char *patend, register SV **beg
adouble = _double_constants[0]; /* double prec. inf. */
else adouble = (double)SvNV(fromstr);
#else
+# if defined(VMS) && !defined(__IEEE_FP)
+/* IEEE fp overflow shenanigans are unavailable on VAX and optional
+ * on Alpha; fake it if we don't have them.
+ */
+ if (SvNV(fromstr) > DBL_MAX)
+ adouble = DBL_MAX;
+ else if (SvNV(fromstr) < -DBL_MAX)
+ adouble = -DBL_MAX;
+ else adouble = (double)SvNV(fromstr);
+# else
adouble = (double)SvNV(fromstr);
+# endif
#endif
sv_catpvn(cat, (char *)&adouble, sizeof (double));
}
diff --git a/t/lib/warnings/toke b/t/lib/warnings/toke
index d2695d6b26..0a5346a50f 100644
--- a/t/lib/warnings/toke
+++ b/t/lib/warnings/toke
@@ -378,20 +378,20 @@ $a = -123._456; print "$a\n"; # 25
$a = -123.4_56; print "$a\n";
$a = -123.45_6; print "$a\n";
$a = -123.456_; print "$a\n"; # 28
-$a = 123.456E_12; print "$a\n"; # 29
-$a = 123.456E1_2; print "$a\n";
-$a = 123.456E12_; print "$a\n"; # 31
-$a = 123.456E_+12; print "$a\n"; # 32
-$a = 123.456E+_12; print "$a\n"; # 33
-$a = 123.456E+1_2; print "$a\n";
-$a = 123.456E+12_; print "$a\n"; # 35
+$a = 123.456E_12; printf("%.0f\n", $a); # 29
+$a = 123.456E1_2; printf("%.0f\n", $a);
+$a = 123.456E12_; printf("%.0f\n", $a); # 31
+$a = 123.456E_+12; printf("%.0f\n", $a); # 32
+$a = 123.456E+_12; printf("%.0f\n", $a); # 33
+$a = 123.456E+1_2; printf("%.0f\n", $a);
+$a = 123.456E+12_; printf("%.0f\n", $a); # 35
$a = 123.456E_-12; print "$a\n"; # 36
$a = 123.456E-_12; print "$a\n"; # 37
$a = 123.456E-1_2; print "$a\n";
$a = 123.456E-12_; print "$a\n"; # 39
$a = 1__23; print "$a\n"; # 40
$a = 12.3__4; print "$a\n"; # 41
-$a = 12.34e1__2; print "$a\n"; # 42
+$a = 12.34e1__2; printf("%.0f\n", $a); # 42
no warnings 'syntax' ;
$a = _123; print "$a\n";
$a = 1_23; print "$a\n";
@@ -419,20 +419,20 @@ $a = -123._456; print "$a\n";
$a = -123.4_56; print "$a\n";
$a = -123.45_6; print "$a\n";
$a = -123.456_; print "$a\n";
-$a = 123.456E_12; print "$a\n";
-$a = 123.456E1_2; print "$a\n";
-$a = 123.456E12_; print "$a\n";
-$a = 123.456E_+12; print "$a\n";
-$a = 123.456E+_12; print "$a\n";
-$a = 123.456E+1_2; print "$a\n";
-$a = 123.456E+12_; print "$a\n";
+$a = 123.456E_12; printf("%.0f\n", $a);
+$a = 123.456E1_2; printf("%.0f\n", $a);
+$a = 123.456E12_; printf("%.0f\n", $a);
+$a = 123.456E_+12; printf("%.0f\n", $a);
+$a = 123.456E+_12; printf("%.0f\n", $a);
+$a = 123.456E+1_2; printf("%.0f\n", $a);
+$a = 123.456E+12_; printf("%.0f\n", $a);
$a = 123.456E_-12; print "$a\n";
$a = 123.456E-_12; print "$a\n";
$a = 123.456E-1_2; print "$a\n";
$a = 123.456E-12_; print "$a\n";
$a = 1__23; print "$a\n";
$a = 12.3__4; print "$a\n";
-$a = 12.34e1__2; print "$a\n";
+$a = 12.34e1__2; printf("%.0f\n", $a);
EXPECT
OPTIONS regex
Misplaced _ in number at - line 6.
diff --git a/utils/perlivp.PL b/utils/perlivp.PL
index fa7a8396ad..fd58e87824 100644
--- a/utils/perlivp.PL
+++ b/utils/perlivp.PL
@@ -14,9 +14,9 @@ use Cwd;
# This forces PL files to create target in same directory as PL file.
# This is so that make depend always knows where to find PL derivatives.
-$origdir = cwd;
+my $origdir = cwd;
chdir dirname($0);
-$file = basename($0, '.PL');
+my $file = basename($0, '.PL');
$file .= '.com' if $^O eq 'VMS';
# Create output file.
@@ -37,7 +37,7 @@ $Config{'startperl'}
print OUT <<'!NO!SUBS!';
-# perlivp V 0.01
+# perlivp V 0.02
sub usage {
@@ -56,7 +56,7 @@ Usage:
exit;
}
-use vars (%opt); # allow testing with older versions (do not use our)
+use vars qw(%opt); # allow testing with older versions (do not use our)
@opt{ qw/? H h P p V v/ } = qw(0 0 0 0 0 0 0);
@@ -88,8 +88,15 @@ if (defined($Config{'perlpath'})) { $perlpath = $Config{'perlpath'}; }
# Of course some platforms are distinct...
if ($^O eq 'VMS') { $perlpath = $^X; }
+# The useithreads Config variable plays a role in whether or not
+# threads and threads/shared work when C<use>d. They apparently always
+# get installed on systems that can run Configure.
+my $useithreads = '';
+if (defined($Config{'useithreads'})) { $useithreads = $Config{'useithreads'}; }
+
print OUT <<"!GROK!THIS!";
my \$perlpath = '$perlpath';
+my \$useithreads = '$useithreads';
!GROK!THIS!
print OUT <<'!NO!SUBS!';
@@ -199,6 +206,10 @@ if (defined($Config{'extensions'})) {
my @extensions = split(/\s+/,$Config{'extensions'});
foreach (@extensions) {
next if ($_ eq '');
+ if ( $useithreads !~ /define/i ) {
+ next if ($_ eq 'threads');
+ next if ($_ eq 'threads/shared');
+ }
next if ($_ eq 'Devel/DProf');
# VMS$ perl -e "eval ""require \""Devel/DProf.pm\"";"" print $@"
# \NT> perl -e "eval \"require 'Devel/DProf.pm'\"; print $@"
diff --git a/vms/vms.c b/vms/vms.c
index a147bd8326..f0e41213b7 100644
--- a/vms/vms.c
+++ b/vms/vms.c
@@ -3341,6 +3341,7 @@ static char *mp_do_pathify_dirspec(pTHX_ char *dir,char *buf, int ts)
unsigned long int retlen;
char *retpath, *cp1, *cp2, trndir[NAM$C_MAXRSS+1];
unsigned short int trnlnm_iter_count;
+ STRLEN trnlen;
if (!dir || !*dir) {
set_errno(EINVAL); set_vaxc_errno(SS$_BADPARAM); return NULL;
@@ -3354,7 +3355,7 @@ static char *mp_do_pathify_dirspec(pTHX_ char *dir,char *buf, int ts)
&& my_trnlnm(trndir,trndir,0)) {
trnlnm_iter_count++;
if (trnlnm_iter_count >= PERL_LNM_MAX_ITER) break;
- STRLEN trnlen = strlen(trndir);
+ trnlen = strlen(trndir);
/* Trap simple rooted lnms, and return lnm:[000000] */
if (!strcmp(trndir+trnlen-2,".]")) {
@@ -6636,13 +6637,17 @@ Perl_cando_by_name(pTHX_ I32 bit, Uid_t effective, char *fname)
/* Before we call $check_access, create a user profile with the current
* process privs since otherwise it just uses the default privs from the
- * UAF and might give false positives or negatives.
+ * UAF and might give false positives or negatives. This only works on
+ * VMS versions v6.0 and later since that's when sys$create_user_profile
+ * became available.
*/
/* get current process privs and username */
_ckvmssts(sys$getjpiw(0,0,0,jpilst,iosb,0,0));
_ckvmssts(iosb[0]);
+#if defined(__VMS_VER) && __VMS_VER >= 60000000
+
/* find out the space required for the profile */
_ckvmssts(sys$create_user_profile(&usrdsc,&usrprolst,0,0,
&usrprodsc.dsc$w_length,0));
@@ -6656,6 +6661,13 @@ Perl_cando_by_name(pTHX_ I32 bit, Uid_t effective, char *fname)
retsts = sys$check_access(&objtyp,&namdsc,0,armlst,0,0,0,&usrprodsc);
Safefree(usrprodsc.dsc$a_pointer);
if (retsts == SS$_NOCALLPRIV) retsts = SS$_NOPRIV; /* not really 3rd party */
+
+#else
+
+ retsts = sys$check_access(&objtyp,&namdsc,&usrdsc,armlst);
+
+#endif
+
if (retsts == SS$_NOPRIV || retsts == SS$_NOSUCHOBJECT ||
retsts == SS$_INVFILFOROP || retsts == RMS$_FNF || retsts == RMS$_SYN ||
retsts == RMS$_DIR || retsts == RMS$_DEV || retsts == RMS$_DNF) {
diff --git a/win32/config.bc b/win32/config.bc
index 0df9810030..483ffcd41e 100644
--- a/win32/config.bc
+++ b/win32/config.bc
@@ -793,14 +793,14 @@ sPRIFUldbl='"F"'
sPRIGUldbl='"G"'
sPRIXU64='"lX"'
sPRId64='"ld"'
-sPRIeldbl='"e"'
-sPRIfldbl='"f"'
-sPRIgldbl='"g"'
+sPRIeldbl='"Le"'
+sPRIfldbl='"Lf"'
+sPRIgldbl='"Lg"'
sPRIi64='"li"'
sPRIo64='"lo"'
sPRIu64='"lu"'
sPRIx64='"lx"'
-sSCNfldbl='"f"'
+sSCNfldbl='"Lf"'
sched_yield=''
scriptdir='~INST_TOP~~INST_VER~\bin'
scriptdirexp='~INST_TOP~~INST_VER~\bin'
diff --git a/win32/config_H.bc b/win32/config_H.bc
index 3fa348c71f..3e4e80c576 100644
--- a/win32/config_H.bc
+++ b/win32/config_H.bc
@@ -2930,7 +2930,7 @@
#define PERL_PRIfldbl "Lf" /**/
#define PERL_PRIgldbl "Lg" /**/
#define PERL_PRIeldbl "Le" /**/
-#define PERL_SCNfldbl "f" /**/
+#define PERL_SCNfldbl "Lf" /**/
/* Off_t:
* This symbol holds the type used to declare offsets in the kernel.
diff --git a/win32/config_H.gc b/win32/config_H.gc
index 85c000a83e..a968ec6f3c 100644
--- a/win32/config_H.gc
+++ b/win32/config_H.gc
@@ -2927,9 +2927,9 @@
* This symbol, if defined, contains the string used by stdio to
* format long doubles (format 'f') for input.
*/
-#define PERL_PRIfldbl "Lf" /**/
-#define PERL_PRIgldbl "Lg" /**/
-#define PERL_PRIeldbl "Le" /**/
+/*#define PERL_PRIfldbl "f" /**/
+/*#define PERL_PRIgldbl "g" /**/
+/*#define PERL_PRIeldbl "e" /**/
/*#define PERL_SCNfldbl "f" /**/
/* Off_t: