summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xConfigure21
-rw-r--r--Todo-5.654
-rw-r--r--config_h.SH74
-rw-r--r--hints/irix_6.sh13
-rw-r--r--lib/Math/Complex.pm22
-rw-r--r--regcomp.c3
-rw-r--r--t/op/64bit.t3
7 files changed, 126 insertions, 64 deletions
diff --git a/Configure b/Configure
index 5724a60b55..d9681ef051 100755
--- a/Configure
+++ b/Configure
@@ -20,7 +20,7 @@
# $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
#
-# Generated on Sun Mar 5 23:53:58 EET 2000 [metaconfig 3.0 PL70]
+# Generated on Fri Mar 10 03:07:09 EET 2000 [metaconfig 3.0 PL70]
# (with additional metaconfig patches by perlbug@perl.com)
cat >/tmp/c1$$ <<EOF
@@ -4512,6 +4512,14 @@ esac
set use64bitint
eval $setvar
+case "$use64bitall" in
+"$define"|true|[yY]*) dflt='y' ;;
+*) case "$longsize" in
+ 8) dflt='y' ;;
+ *) dflt='n' ;;
+ esac
+ ;;
+esac
cat <<EOM
You may also choose to try maximal 64-bitness. It means using as much
@@ -4522,14 +4530,6 @@ have any more 64-bitness available than what you already have chosen.
If this doesn't make any sense to you, just accept the default '$dflt'.
EOM
rp='Try to use maximal 64-bit support, if available?'
-case "$use64bitall" in
-"$define"|true|[yY]*) dflt='y' ;;
-*) case "$longsize" in
- 8) dflt='y' ;;
- *) dflt='n' ;;
- esac
- ;;
-esac
. ./myread
case "$ans" in
[yY]*) val="$define" ;;
@@ -8636,7 +8636,8 @@ extern int errno;
#ifdef I_UNISTD
#include <unistd.h>
#endif
-#ifdef $i_string
+#$i_string I_STRING
+#ifdef I_STRING
#include <string.h>
#else
#include <strings.h>
diff --git a/Todo-5.6 b/Todo-5.6
index 10efded75a..7f183777f5 100644
--- a/Todo-5.6
+++ b/Todo-5.6
@@ -16,6 +16,7 @@ Unicode support
autoload utf8_heavy.pl's swash routines in swash_init()
autoload byte.pm when byte:: is seen by the parser
check uv_to_utf8() calls for buffer overflow
+ (see also "Locales", "Regexen", and "Miscellaneous")
Multi-threading
support "use Thread;" under useithreads
@@ -45,22 +46,51 @@ Configure
make configuring+building away from source directory work (VPATH et al)
_r support
cross-compilation configuring
- POSIX 1003.1 1996 Edition support
+ 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)
+ UNIX98 support: reader-writer locks, realtime/asynchronous IO
+
+Long doubles
+ figure out where the PV->NV->PV conversion gets it wrong at least
+ in AIX and Tru64 (V5.0 and onwards) when using long doubles: see the
+ regexp tricks we had to insert to t/comp/use.t and t/lib/bigfltpm.t.
Locales
deprecate traditional/legacy locales?
+ How do locales work across packages?
figure out how to support Unicode locales
- locales across packages?
+ suggestion: integrate the IBM Classes for Unicode (ICU)
+ http://oss.software.ibm.com/developerworks/opensource/icu/project/
+ and check out also the Locale Converter:
+ http://alphaworks.ibm.com/tech/localeconverter
+ ICU is "portable, open-source Unicode library with:
+ charset-independent locales (with multiple locales simultaneously
+ supported in same thread; character conversions; formatting/parsing
+ for numbers, currencies, date/time and messages; message catalogs
+ (resources) ; transliteration, collation, normalization, and text
+ boundaries (grapheme, word, line-break))".
+ There is also 'iconv', either from XPG4 or GNU (glibc).
+ iconv is about character set conversions.
+ Either ICU or iconv would be valuable to get integrated
+ into Perl, Configure already probes for libiconv and <iconv.h>.
Regexen
make RE engine thread-safe
POSIX [=bar=] and [.zap.] would nice too but there's no API for them
- (=bar= could be done with Unicode, though, see TR about normalization forms)
+ =bar= could be done with Unicode, though, see the Unicode TR #15 about
+ normalization forms:
+ http://www.unicode.org/unicode/reports/tr15/
+ this is also a part of the Unicode 3.0:
+ http://www.unicode.org/unicode/uni2book/u2.html
+ executive summary: there are several different levels of 'equivalence'
approximate matching
Security
use fchown, fchmod (and futimes?) internally when possible
use fchdir(how portable?)
+ create secure reliable portable temporary file modules
+ audit the standard utilities for security problems and fix them
Reliable Signals
custom opcodes
@@ -74,11 +104,23 @@ Win32 stuff
Miscellaneous
add new modules (Archive::Tar, Compress::Zlib, CPAN::FTP?)
- sub-second sleep? (integrate Time::HiRes?)
- floating point handling: nans, infinities, fp exception masks, etc
+ sub-second sleep()? alarm()? time()? (integrate Time::HiRes?
+ Configure doesn't yet probe for usleep/nanosleep/ualarm but
+ the units exist)
+ floating point handling: nans, infinities, fp exception masks, etc.
+ at least the following interfaces exist: fp_classify(), fp_class(),
+ class(), isnan(), isinf(), isfinite(), finite(), isnormal(),
+ fp_setmask(), fp_getmask(), fp_setround(), fp_getround(),
+ ieeefp.h, fp_class.h. There are metaconfig units for all of these.
+ fix the basic arithmetics (+ - * / %) to preserve IVness/UVness if
+ both arguments are IVs/UVs
replace pod2html with new PodtoHtml? (requires other modules from CPAN)
automate testing with large parts of CPAN
- Unicode collation?
+ Unicode collation? http://www.unicode.org/unicode/reports/tr10/
+ turn Cwd into an XS module? (Configure already probes for getcwd())
+ mmap for speeding up input? (Configure already probes for the mmap family)
+ sendmsg, recvmsg? (Configure doesn't probe for these but the units exist)
+ setitimer, getitimer? (the units exist)
Ongoing
keep filenames 8.3 friendly, where feasible
diff --git a/config_h.SH b/config_h.SH
index cae08f30dd..108b6739cb 100644
--- a/config_h.SH
+++ b/config_h.SH
@@ -1412,6 +1412,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
*/
#$d_getcwd HAS_GETCWD /**/
+/* HAS_GETFSSTAT:
+ * This symbol, if defined, indicates that the getfsstat routine is
+ * available to stat filesystems in bulk.
+ */
+#$d_getfsstat HAS_GETFSSTAT /**/
+
/* HAS_GETGRENT:
* This symbol, if defined, indicates that the getgrent routine is
* available for sequential access of the group database.
@@ -1638,13 +1644,6 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
*/
#$d_isascii HAS_ISASCII /**/
-/* HAS_LCHOWN:
- * This symbol, if defined, indicates that the lchown routine is
- * available to operate on a symbolic link (instead of following the
- * link).
- */
-#$d_lchown HAS_LCHOWN /**/
-
/* HAS_LDBL_DIG:
* This symbol, if defined, indicates that this system's <float.h>
* or <limits.h> defines the symbol LDBL_DIG, which is the number
@@ -1680,6 +1679,14 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
#define LONGLONGSIZE $longlongsize /**/
#endif
+/* HAS_LSEEK_PROTO:
+ * This symbol, if defined, indicates that the system provides
+ * a prototype for the lseek() function. Otherwise, it is up
+ * to the program to supply one. A good guess is
+ * extern off_t lseek(int, off_t, int);
+ */
+#$d_lseekproto HAS_LSEEK_PROTO /**/
+
/* HAS_MADVISE:
* This symbol, if defined, indicates that the madvise system call is
* available to map a file into memory.
@@ -2274,6 +2281,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
*/
#$i_iconv I_ICONV /**/
+/* I_IEEEFP:
+ * This symbol, if defined, indicates that <ieeefp.h> exists and
+ * should be included.
+ */
+#$i_ieeefp I_IEEEFP /**/
+
/* I_INTTYPES:
* This symbol, if defined, indicates to the C program that it should
* include <inttypes.h>.
@@ -2827,6 +2840,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
*/
#define Size_t $sizetype /* length paramater for string functions */
+/* Sock_size_t:
+ * This symbol holds the type used for the size argument of
+ * various socket calls (just the base type, not the pointer-to).
+ */
+#define Sock_size_t $socksizetype /**/
+
/* SSize_t:
* This symbol holds the type used by functions that return
* a count of bytes or an error condition. It must be a signed type.
@@ -2966,10 +2985,22 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
#endif
#$d_oldpthreads OLD_PTHREADS_API /**/
+/* PERL_VENDORARCH:
+ * If defined, this symbol contains the name of a private library.
+ * The library is private in the sense that it needn't be in anyone's
+ * execution path, but it should be accessible by the world.
+ * It may have a ~ on the front.
+ * The standard distribution will put nothing in this directory.
+ * Vendors who distribute perl may wish to place their own
+ * architecture-dependent modules and extensions in this directory with
+ * MakeMaker Makefile.PL INSTALLDIRS=vendor
+ * or equivalent. See INSTALL for details.
+ */
/* PERL_VENDORARCH_EXP:
* This symbol contains the ~name expanded version of PERL_VENDORARCH, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
+#$d_vendorarch PERL_VENDORARCH "$vendorarch" /**/
#$d_vendorarch PERL_VENDORARCH_EXP "$vendorarchexp" /**/
/* PERL_VENDORLIB_EXP:
@@ -3044,31 +3075,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
#define PERL_XS_APIVERSION "$xs_apiversion"
#define PERL_PM_APIVERSION "$pm_apiversion"
-/* HAS_GETFSSTAT:
- * This symbol, if defined, indicates that the getfsstat routine is
- * available to stat filesystems in bulk.
- */
-#$d_getfsstat HAS_GETFSSTAT /**/
-
-/* I_IEEEFP:
- * This symbol, if defined, indicates that <ieeefp.h> exists and
- * should be included.
- */
-#$i_ieeefp I_IEEEFP /**/
-
-/* HAS_LSEEK_PROTO:
- * This symbol, if defined, indicates that the system provides
- * a prototype for the lseek() function. Otherwise, it is up
- * to the program to supply one. A good guess is
- * extern off_t lseek(int, off_t, int);
- */
-#$d_lseekproto HAS_LSEEK_PROTO /**/
-
-/* Sock_size_t:
- * This symbol holds the type used for the size argument of
- * various socket calls (just the base type, not the pointer-to).
+/* HAS_LCHOWN:
+ * This symbol, if defined, indicates that the lchown routine is
+ * available to operate on a symbolic link (instead of following the
+ * link).
*/
-#define Sock_size_t $socksizetype /**/
+#$d_lchown HAS_LCHOWN /**/
#endif
!GROK!THIS!
diff --git a/hints/irix_6.sh b/hints/irix_6.sh
index 6119c0d282..9d9852d049 100644
--- a/hints/irix_6.sh
+++ b/hints/irix_6.sh
@@ -142,8 +142,17 @@ case "$cc" in
ld=$cc
# perl's malloc can return improperly aligned buffer
- # usemymalloc='undef'
-malloc_cflags='ccflags="-DSTRICT_ALIGNMENT $ccflags"'
+ # which (under 5.6.0RC1) leads into really bizarre bus errors
+ # and freak test failures (lib/safe1 #18, for example),
+ # even more so with -Duse64bitall: for example lib/io_linenumtb.
+ # fails under the harness but succeeds when run separately,
+ # under make test pragma/warnings #98 fails, and lib/io_dir
+ # apparently coredumps (the last two don't happen under
+ # the harness. Helmut Jarausch is seeing bus errors from
+ # miniperl, as was Scott Henry with snapshots from just before
+ # the RC1. --jhi
+ usemymalloc='undef'
+#malloc_cflags='ccflags="-DSTRICT_ALIGNMENT $ccflags"'
nm_opt='-p'
nm_so_opt='-p'
diff --git a/lib/Math/Complex.pm b/lib/Math/Complex.pm
index 5d33020761..1a47f4af5e 100644
--- a/lib/Math/Complex.pm
+++ b/lib/Math/Complex.pm
@@ -1373,6 +1373,7 @@ sub stringify_polar {
1;
__END__
+=pod
=head1 NAME
Math::Complex - complex numbers and associated mathematical functions
@@ -1673,19 +1674,15 @@ When printed, a complex number is usually shown under its cartesian
style I<a+bi>, but there are legitimate cases where the polar style
I<[r,t]> is more appropriate.
-In the polar style Math::Complex will try to recognize certain common
-numbers such as multiples or small rationals of pi (2pi, pi/2) and
-prettyprint those numbers.
-
By calling the class method C<Math::Complex::display_format> and
supplying either C<"polar"> or C<"cartesian"> as an argument, you
-override the default display format, which is C<"cartesian">. Not
+override the default display style, which is C<"cartesian">. Not
supplying any argument returns the current settings.
This default can be overridden on a per-number basis by calling the
C<display_format> method instead. As before, not supplying any argument
-returns the current display format for this number. Otherwise whatever you
-specify will be the new display format for I<this> particular number.
+returns the current display style for this number. Otherwise whatever you
+specify will be the new display style for I<this> particular number.
For instance:
@@ -1697,8 +1694,9 @@ For instance:
$j->display_format('cartesian');
print "j = $j\n"; # Prints "j = -0.5+0.866025403784439i"
-The polar format attempts to emphasize arguments like I<k*pi/n>
-(where I<n> is a positive integer and I<k> an integer within [-9,+9]).
+The polar style attempts to emphasize arguments like I<k*pi/n>
+(where I<n> is a positive integer and I<k> an integer within [-9,+9]),
+this is called I<polar pretty-printing>.
=head2 CHANGED IN PERL 5.6
@@ -1731,9 +1729,9 @@ will be returned, as opposed to only the style parameter value. If
you want to know the whole truth for a complex number, you must call
both the class method and the object method:
-The second new display parameter is C<"polar_pretty_print">, which can be
-set to true or false, the default being true. See above for what this
-means.
+The second new display parameter is C<"polar_pretty_print">, which can
+be set to true or false, the default being true. See the previous
+section for what this means.
=head1 USAGE
diff --git a/regcomp.c b/regcomp.c
index 9768d18c93..9fbb3df20e 100644
--- a/regcomp.c
+++ b/regcomp.c
@@ -1359,7 +1359,10 @@ Perl_pregcomp(pTHX_ char *exp, char *xend, PMOP *pm)
PL_regsize = 0L;
PL_regcode = &PL_regdummy;
PL_reg_whilem_seen = 0;
+#if 0 /* REGC() is (currently) a NOP at the first pass.
+ * Clever compilers notice this and complain. --jhi */
REGC((U8)REG_MAGIC, (char*)PL_regcode);
+#endif
if (reg(0, &flags) == NULL) {
Safefree(PL_regprecomp);
PL_regprecomp = Nullch;
diff --git a/t/op/64bit.t b/t/op/64bit.t
index da9cedd22e..60f72c3536 100644
--- a/t/op/64bit.t
+++ b/t/op/64bit.t
@@ -11,9 +11,6 @@ BEGIN {
}
# This could use a lot of more tests.
-#
-# Nota bene: bit operations (&, |, ^, ~, <<, >>) are not 64-bit clean.
-# See the beginning of pp.c and the explanation next to IBW/UBW.
# so that using > 0xfffffff constants and
# 32+ bit integers don't cause noise