diff options
-rwxr-xr-x | Configure | 21 | ||||
-rw-r--r-- | Todo-5.6 | 54 | ||||
-rw-r--r-- | config_h.SH | 74 | ||||
-rw-r--r-- | hints/irix_6.sh | 13 | ||||
-rw-r--r-- | lib/Math/Complex.pm | 22 | ||||
-rw-r--r-- | regcomp.c | 3 | ||||
-rw-r--r-- | t/op/64bit.t | 3 |
7 files changed, 126 insertions, 64 deletions
@@ -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> @@ -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 @@ -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 |