Hi coders, greetings from the stone age: This is perl, v5.9.4 built for sun4-sunos-stdio SunOS Release 4.1.3 (GENERIC) #3: Mon Jul 27 16:44:16 PDT 1992 $ uname -a SunOS xxx 4.1.3 3 sun4m If anyone is interested in patches for SunOS yet, I have some. Some are harmless, some may not be optimal. Help/hints/tips are always nice and appreciated. 1. SunOS realloc() does not like NULL pointers as parameters. (buf?realloc((buf), (size)):malloc((size))) 2. There is no strtoul(), alas. Some older code correctly uses the Strtoul() macro (capital S). Newer additions don't always (probabaly nobody noticed). I enclosed the expansion of the Strtoul macro definition in round parentheses: # define Strtoul(s, e, b) (strchr((s), '-') ? ULONG_MAX : (unsigned long)strtol((s), (e), (b))) and changed all occurences of strtoul() to Strtoul(). 3. There is no prototype for drand48() available, although one is needed. This cures the previously failing sort and shuffle tests. #ifndef HAS_DRAND48_PROTO extern double drand48 (void); #endif 4. For the generation of miniperl I had to do something about div_t and div(), which are lacking. It is used for version string formatting. Since I considered this usage not the most time critical, I replaced the div() call with the good old / and % operators. Perl_sv_catpvf(aTHX_ sv, "%0*d_%d", width, (int)PERL_ABS(digit) / denom, (int)PERL_ABS(digit) % denom); 5. snprintf() is missing, so vsprintf() is used to emulate it. But vsprintf() like sprintf() has a non standard return type (the buffer instead of the length of characters output). sprintf() was treated ok by the older code parts, vsprintf was not. I think my patch is not optimal, it was a bit quick-and-dirty. 6. Finally Dynaloading. I saw it does not work in 5.9.4. (and also not since 5.8.1 according to the hints file). So I peeked in version 5.6.3 and changed the return types for dl_load_file() and dl_find_symbol() in dl_open.xs back to the previously working return types (void *). Since I don't know why they were changed (to void), I suspect the best solution is to have a seperate dl_sunos.xs. This is work in progress so no patch yet. Hope this is useful, Heiko diff -r -c perl-5.9.4/iperlsys.h perl-5.9.4-patched/iperlsys.h *** perl-5.9.4/iperlsys.h Tue Aug 15 14:37:41 2006 --- perl-5.9.4-patched/iperlsys.h Mon Apr 2 20:04:53 2007 *************** *** 875,881 **** /* Interpreter specific memory macros */ #define PerlMem_malloc(size) malloc((size)) ! #define PerlMem_realloc(buf, size) realloc((buf), (size)) #define PerlMem_free(buf) free((buf)) #define PerlMem_calloc(num, size) calloc((num), (size)) #define PerlMem_get_lock() --- 875,881 ---- /* Interpreter specific memory macros */ #define PerlMem_malloc(size) malloc((size)) ! #define PerlMem_realloc(buf, size) (buf?realloc((buf), (size)):malloc((size))) #define PerlMem_free(buf) free((buf)) #define PerlMem_calloc(num, size) calloc((num), (size)) #define PerlMem_get_lock() *************** *** 884,890 **** /* Shared memory macros */ #define PerlMemShared_malloc(size) malloc((size)) ! #define PerlMemShared_realloc(buf, size) realloc((buf), (size)) #define PerlMemShared_free(buf) free((buf)) #define PerlMemShared_calloc(num, size) calloc((num), (size)) #define PerlMemShared_get_lock() --- 884,890 ---- /* Shared memory macros */ #define PerlMemShared_malloc(size) malloc((size)) ! #define PerlMemShared_realloc(buf, size) (buf?realloc((buf), (size)):malloc((size))) #define PerlMemShared_free(buf) free((buf)) #define PerlMemShared_calloc(num, size) calloc((num), (size)) #define PerlMemShared_get_lock() *************** *** 893,899 **** /* Parse tree memory macros */ #define PerlMemParse_malloc(size) malloc((size)) ! #define PerlMemParse_realloc(buf, size) realloc((buf), (size)) #define PerlMemParse_free(buf) free((buf)) #define PerlMemParse_calloc(num, size) calloc((num), (size)) #define PerlMemParse_get_lock() --- 893,899 ---- /* Parse tree memory macros */ #define PerlMemParse_malloc(size) malloc((size)) ! #define PerlMemParse_realloc(buf, size) (buf?realloc((buf), (size)):malloc((size))) #define PerlMemParse_free(buf) free((buf)) #define PerlMemParse_calloc(num, size) calloc((num), (size)) #define PerlMemParse_get_lock() diff -r -c perl-5.9.4/perl.h perl-5.9.4-patched/perl.h *** perl-5.9.4/perl.h Tue Aug 15 14:37:41 2006 --- perl-5.9.4-patched/perl.h Tue Apr 3 20:08:05 2007 *************** *** 5166,5172 **** # define Strtoul strtoul #endif #if !defined(Strtoul) && defined(HAS_STRTOL) /* Last resort. */ ! # define Strtoul(s, e, b) strchr((s), '-') ? ULONG_MAX : (unsigned long)strtol((s), (e), (b)) #endif #ifndef Atoul # define Atoul(s) Strtoul(s, NULL, 10) --- 5166,5172 ---- # define Strtoul strtoul #endif #if !defined(Strtoul) && defined(HAS_STRTOL) /* Last resort. */ ! # define Strtoul(s, e, b) (strchr((s), '-') ? ULONG_MAX : (unsigned long)strtol((s), (e), (b))) #endif #ifndef Atoul # define Atoul(s) Strtoul(s, NULL, 10) diff -r -c perl-5.9.4/pp_sort.c perl-5.9.4-patched/pp_sort.c *** perl-5.9.4/pp_sort.c Tue Aug 15 14:37:41 2006 --- perl-5.9.4-patched/pp_sort.c Fri Apr 6 17:28:05 2007 *************** *** 28,33 **** --- 28,37 ---- #define PERL_IN_PP_SORT_C #include "perl.h" + #ifndef HAS_DRAND48_PROTO + extern double drand48 (void); + #endif + #if defined(UNDER_CE) /* looks like 'small' is reserved word for WINCE (or somesuch)*/ #define small xsmall diff -r -c perl-5.9.4/util.c perl-5.9.4-patched/util.c *** perl-5.9.4/util.c Tue Aug 15 14:37:42 2006 --- perl-5.9.4-patched/util.c Wed Apr 11 00:18:38 2007 *************** *** 45,50 **** --- 45,54 ---- # endif #endif + #ifndef HAS_DRAND48_PROTO + extern double drand48 (void); + #endif + #define FLUSH #if defined(HAS_FCNTL) && defined(F_SETFD) && !defined(FD_CLOEXEC) *************** *** 4425,4432 **** digit = SvIV(*av_fetch(av, i, 0)); if ( width < 3 ) { const int denom = (width == 2 ? 10 : 100); ! const div_t term = div((int)PERL_ABS(digit),denom); Perl_sv_catpvf(aTHX_ sv, "%0*d_%d", width, term.quot, term.rem); } else { Perl_sv_catpvf(aTHX_ sv, "%0*d", width, (int)digit); --- 4429,4439 ---- digit = SvIV(*av_fetch(av, i, 0)); if ( width < 3 ) { const int denom = (width == 2 ? 10 : 100); ! /* const div_t term = div((int)PERL_ABS(digit),denom); Perl_sv_catpvf(aTHX_ sv, "%0*d_%d", width, term.quot, term.rem); + */ + Perl_sv_catpvf(aTHX_ sv, "%0*d_%d", width, (int)PERL_ABS(digit) / denom, (int)PERL_ABS(digit) % denom); + } else { Perl_sv_catpvf(aTHX_ sv, "%0*d", width, (int)digit); *************** *** 5391,5396 **** --- 5398,5406 ---- retval = vsnprintf(buffer, len, format, ap); #else retval = vsprintf(buffer, format, ap); + if ((char *) retval == buffer) { + retval = strlen(buffer); + } #endif va_end(ap); /* vsnprintf() shows failure with >= len, vsprintf() with < 0 */ diff -r -c perl-5.9.4/ext/Digest/SHA/src/sha.c perl-5.9.4-patched/ext/Digest/SHA/src/sha.c *** perl-5.9.4/ext/Digest/SHA/src/sha.c Tue Aug 15 14:37:40 2006 --- perl-5.9.4-patched/ext/Digest/SHA/src/sha.c Tue Apr 3 20:07:02 2007 *************** *** 579,587 **** if ((p = getval(pr, &pr)) == NULL) return(1); switch (type) { ! case T_C: *pc++ = (UCHR) strtoul(p, NULL, base); break; ! case T_I: *pi++ = (UINT) strtoul(p, NULL, base); break; ! case T_L: *pl++ = (W32 ) strtoul(p, NULL, base); break; case T_Q: *pq++ = (W64 ) strto64(p ); break; } } --- 579,587 ---- if ((p = getval(pr, &pr)) == NULL) return(1); switch (type) { ! case T_C: *pc++ = (UCHR) Strtoul(p, NULL, base); break; ! case T_I: *pi++ = (UINT) Strtoul(p, NULL, base); break; ! case T_L: *pl++ = (W32 ) Strtoul(p, NULL, base); break; case T_Q: *pq++ = (W64 ) strto64(p ); break; } } diff -r -c perl-5.9.4/ext/Digest/SHA/src/sha64bit.c perl-5.9.4-patched/ext/Digest/SHA/src/sha64bit.c *** perl-5.9.4/ext/Digest/SHA/src/sha64bit.c Tue Aug 15 14:37:40 2006 --- perl-5.9.4-patched/ext/Digest/SHA/src/sha64bit.c Tue Apr 3 20:07:19 2007 *************** *** 72,78 **** W64 u = C64(0); while (isxdigit(str[0] = *s++)) ! u = (u << 4) + strtoul(str, NULL, 16); return(u); } --- 72,78 ---- W64 u = C64(0); while (isxdigit(str[0] = *s++)) ! u = (u << 4) + Strtoul(str, NULL, 16); return(u); } diff -r -c perl-5.9.4/ext/List/Util/Util.xs perl-5.9.4-patched/ext/List/Util/Util.xs *** perl-5.9.4/ext/List/Util/Util.xs Tue Aug 15 14:37:41 2006 --- perl-5.9.4-patched/ext/List/Util/Util.xs Wed Apr 11 00:44:28 2007 *************** *** 59,64 **** --- 59,68 ---- # define Drand01() ((rand() & 0x7FFF) / (double) ((unsigned long)1 << 15)) #endif + #ifndef HAS_DRAND48_PROTO + extern double drand48 (void); + #endif + #if PERL_VERSION < 5 # ifndef gv_stashpvn # define gv_stashpvn(n,l,c) gv_stashpv(n,c)
![]() |
0 |
![]() |
On Wed, Apr 11, 2007 at 08:35:50PM +0200, Heiko wrote: > Hi coders, > > greetings from the stone age: > > This is perl, v5.9.4 built for sun4-sunos-stdio > > SunOS Release 4.1.3 (GENERIC) #3: Mon Jul 27 16:44:16 PDT 1992 > $ uname -a > SunOS xxx 4.1.3 3 sun4m > > > If anyone is interested in patches for SunOS yet, I have some. Wow. Yes, we are. If only because it's nice to know that it works. (Although clearly it doesn't quite work, as you need to tweak it) > 3. There is no prototype for drand48() available, although one is needed. > This cures the previously failing sort and shuffle tests. > #ifndef HAS_DRAND48_PROTO > extern double drand48 (void); > #endif I see that you did this in two places in C files. I'm not sure whether it would be better in header files. But we could fix that. > 4. For the generation of miniperl I had to do something about div_t and > div(), > which are lacking. It is used for version string formatting. Since I > considered > this usage not the most time critical, I replaced the div() call with > the good old > / and % operators. > Perl_sv_catpvf(aTHX_ sv, "%0*d_%d", width, (int)PERL_ABS(digit) / denom, > (int)PERL_ABS(digit) % denom); Hmm. STANDARDS The div() function conforms to ISO/IEC 9899:1999 (``ISO C99''). I don't think that we should be using div(). Or at least, if we want to we should probe for it and emulate it. > 5. snprintf() is missing, so vsprintf() is used to emulate it. But > vsprintf() like sprintf() > has a non standard return type (the buffer instead of the length of > characters output). > sprintf() was treated ok by the older code parts, vsprintf was not. I > think my patch > is not optimal, it was a bit quick-and-dirty. Gosh. I remember being bitten by sprintf()'s return on SunOS - about a decade ago. Hence why there's this whole my_sprintf() stuff we added recently instead of assuming that sprintf() wasn't, well, "wrong". (or at least pre-ANSI C89) Glad to know that it wasn't a waste of time. I think your fix is rather quick and dirty. We should add a probe to configure for vsprintf(), much like the probe for sprintf() > 6. Finally Dynaloading. I saw it does not work in 5.9.4. (and also not > since 5.8.1 according to > the hints file). So I peeked in version 5.6.3 and changed the return > types for dl_load_file() and > dl_find_symbol() in dl_open.xs back to the previously working return > types (void *). Since I > don't know why they were changed (to void), I suspect the best solution > is to have a seperate dl_sunos.xs. > This is work in progress so no patch yet. It's not obvious. If I start here: http://public.activestate.com/cgi-bin/perlbrowse Annotate dl_open.xs http://public.activestate.com/cgi-bin/perlbrowse?filename=ext%2FDynaLoader%2Fdl_dlopen.xs&show_blame=Show+Annotated+File Find the line, and the patch: Change 10534 by jhi@alpha on 2001/06/12 13:13:27 Subject: ext/ + -Wall From: Doug MacEachern <dougm@covalent.net> Date: Mon, 11 Jun 2001 22:19:45 -0700 (PDT) Message-ID: <Pine.LNX.4.21.0106112212261.24181-100000@mako.covalent.net> The trail goes cold with that message ID :-( http://groups.google.com/groups?selm=Pine.LNX.4.21.0106112212261.24181-100000%40mako.covalent.net Fortunately it does appear to be indexed on xray: http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2001-06/thrd7.html It seems to be intended to get rid of warnings under -Wall Would it be better to change the return types with #ifdefs in dl_open.xs ? Should Configure probe for the return types? I'm not sure how to do that. > Hope this is useful, Yes, very. I don't think that anyone here has anything this old to verify that perl still compiles portably. In a similar vein, we knew that we compiled on old Crays until a year or two ago, when Boeing decomissioned their last machine. Nicholas Clark
![]() |
0 |
![]() |
On Thu, 12 Apr 2007, Nicholas Clark wrote: > On Wed, Apr 11, 2007 at 08:35:50PM +0200, Heiko wrote: > > Hi coders, > > > > greetings from the stone age: > > > > This is perl, v5.9.4 built for sun4-sunos-stdio > > > > SunOS Release 4.1.3 (GENERIC) #3: Mon Jul 27 16:44:16 PDT 1992 > > $ uname -a > > SunOS xxx 4.1.3 3 sun4m > > > > > > If anyone is interested in patches for SunOS yet, I have some. > > Wow. Yes, we are. > If only because it's nice to know that it works. (Although clearly it doesn't > quite work, as you need to tweak it) Yes, thank you! SunOS 4.1.3 was Perl5's original platform. It'd be nice to recapture it. Thanks for the good work. Looks like more Configure probes are in order. > I don't think that anyone here has anything this old to verify that perl > still compiles portably. I don't think so either. I know my last SunOS 4.1.3 box failed about 7 or 8 years ago. -- Andy Dougherty doughera@lafayette.edu
![]() |
0 |
![]() |
Hi, thanks for your kind replies. I agree with your comments Nicholas, someone more knowlegable than me would do better integrated patches. Being lazy, I rely on you for this:-) I am willing then to testdrive newer versions of Configure with SunOs. Dynaloading: Thanks for pointers how to investigate. >It seems to be intended to get rid of warnings under -Wall From the email subject, yes. I need to understand this myself. The variants of dl_open.xs (dl_*.xs) should agree on the function signature for dl_load_file and dl_find_symbol, I think, (which they don't). >Would it be better to change the return types with #ifdefs in = dl_open.xs ? >Should Configure probe for the return types? I'm not sure how to do = that. Good questions. I thought there is an interface definition for dl_*.xs which says use return type void *, and this is what needs to be = implemented for all variants. Maybe I am wrong. ---- There are also some issues during make test, the most irritating is that some of the failed tests succeed when being run isolated with ./perl -Ilib .../*.t. There are also tests that block. More details when I am home at my sun.. Heiko Ei=DFfeldt=20 =20 -----Urspr=FCngliche Nachricht----- Von: Nicholas Clark [mailto:nick@flirble.org] Im Auftrag von Nicholas = Clark Gesendet: Donnerstag, 12. April 2007 12:14 An: Heiko Cc: perl5-porters@perl.org Betreff: Re: [PATCH] patching for sunos On Wed, Apr 11, 2007 at 08:35:50PM +0200, Heiko wrote: > 6. Finally Dynaloading. I saw it does not work in 5.9.4. (and also not = > since 5.8.1 according to > the hints file). So I peeked in version 5.6.3 and changed the return=20 > types for dl_load_file() and > dl_find_symbol() in dl_open.xs back to the previously working return=20 > types (void *). Since I > don't know why they were changed (to void), I suspect the best = solution=20 > is to have a seperate dl_sunos.xs. > This is work in progress so no patch yet. It seems to be intended to get rid of warnings under -Wall Would it be better to change the return types with #ifdefs in dl_open.xs = ? Should Configure probe for the return types? I'm not sure how to do = that.
![]() |
0 |
![]() |
On Thu, Apr 12, 2007 at 04:43:42PM +0200, Eissfeldt, Heiko wrote: > There are also some issues during make test, > the most irritating is that some of the failed tests > succeed when being run isolated with ./perl -Ilib .../*.t. If you are running the tests as make test then it sets the environment variable PERL_DESTRUCT_LEVEL=2 That likely isn't set when you run them isolated, and might explain this. Nicholas Clark
![]() |
0 |
![]() |
Hi again, I tried to add most missing prototypes to my header files, and recompiled. Probably I am doing something wrong yet. These are failing tests from make test (*NR* for not reproducible when being run isolated with PERL_DESTRUCT_LEVEL=2 ./perl -T -It -Ilib -MTestInit .../*.t): Failed 11 tests out of 1167, 99.06% okay. ../ext/Devel/DProf/t/DProf.t *NR* ../ext/DynaLoader/t/DynaLoader.t (dies at test 16, if this is skipped fails on test 20 dl_findfile(c)) ../ext/IPC/SysV/t/ipcsysv.t *NR* ../ext/POSIX/t/sigaction.t fails on test 6: returns 2 instead of 0 ../ext/POSIX/t/time.t fails on test1 and 2, both return empty strings, on test 8 a warning is given Use of uninitialized value $Config{"d_difftime"} in string ne at ext/POSIX/t/time.t line 50 ../ext/Sys/Syslog/t/syslog.t test 158 fails with return of 1 instead of false ../ext/Time/HiRes/t/HiRes.t *NR* gives warning: Time::HiRes::clock(): unimplemented in this platform at ext/Time/HiRes/t/HiRes.t line 571. ../lib/Tie/File/t/09_gen_rs.t blocks forever in test 51 during splice ../lib/warnings.t stderr output is garbled by libm library message 'pow(0,0): DOMAIN error', otherwise ok. op/getppid.t *NR* run/switchF1.t *NR* Details from make test are appended below. Regarding DynaLoading and return types, I read the comment at the beginning of the file dl_dlopen.xs, and found the stated rule violated in the original from 5.9.4: Remember when you are making any changes that the return value from dl_load_file is used as a parameter in the dl_find_symbol function. Also the return value from find_symbol is used as a parameter to install_xsub. So according to this, void * is needed. I also compiled with -Wall and got no warnings grom gcc. Hints for resolving any deviations are welcome, of course. Thanks, Heiko Summary of my perl5 (revision 5 version 9 subversion 4) configuration: Platform: osname=sunos, osvers=4.1.3, archname=sun4-sunos-stdio uname='sunos lunaco 4.1.3 3 sun4m ' config_args='-de -Dlibpth=/usr/lib -Dusedevel -Dusedl' hint=previous, useposix=true, d_sigaction=define useithreads=undef, usemultiplicity=undef useperlio=undef, d_sfio=undef, uselargefiles=define, usesocks=undef use64bitint=undef, use64bitall=undef, uselongdouble=undef usemymalloc=y, bincompat5005=undef Compiler: cc='gcc', ccflags ='-g', optimize='-O -g', cppflags='-g -g' ccversion='', gccversion='2.6.3', gccosandvers='sunos4.1' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=8 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=4 alignbytes=8, prototype=define Linker and Libraries: ld='/usr/bin/ld', ldflags =' -L/usr/local/lib' libpth=/usr/local/lib /lib /usr/lib /usr/ucblib libs=-lnsl -ldbm -lm -lc -lposix perllibs=-lnsl -ldbm -lm -lc -lposix libc=/lib/libc.so.1.8, so=so, useshrplib=false, libperl=libperl.a gnulibc_version='' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' ' cccdlflags='-fpic', lddlflags='-assert nodefinitions -L/usr/local/lib' Characteristics of this binary (from libperl): Compile-time options: MYMALLOC PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP USE_LARGE_FILES Built under sunos Compiled at Apr 13 2007 01:13:51 @INC: lib /usr/local/lib/perl5/5.9.4/sun4-sunos-stdio /usr/local/lib/perl5/5.9.4 /usr/local/lib/perl5/site_perl/5.9.4/sun4-sunos-stdio /usr/local/lib/perl5/site_perl/5.9.4 /usr/local/lib/perl5/site_perl . ===================================================== t/run/switchF1.......................................FAILED--expected 5 tests, saw 4 t/op/getppid.........................................FAILED--seen duplicate leader ext/Devel/DProf/t/DProf..............................sh: 12854 Memory fault - core dumped sh: 12856 Memory fault - core dumped sh: 12858 Memory fault - core dumped sh: 12860 Memory fault - core dumped FAILED at test 1 ext/DynaLoader/t/DynaLoader..........................ld.so: is not for this machine type FAILED--expected 37 tests, saw 15 ext/IPC/SysV/t/ipcsysv...............................# cannot proceed: semget() error: # Looks like you planned 17 tests but ran 16. FAILED--expected 17 tests, saw 16 ext/POSIX/t/sigaction................................# Failed test in .../ext/POSIX/t/sigaction.t at line 61. # got: '2' # expected: '0' FAILED at test 6 ext/POSIX/t/time.....................................# Failed test 'tzset() to GMT/UTC' # in ../ext/POSIX/t/time.t at line 24. # '' # doesn't match '(?i-xsm:(GMT|UTC))' FAILED at test 1 ext/Sys/Syslog/t/syslog..............................# Failed test 'setlogsock() should return false: '1'' # in ../ext/Sys/Syslog/t/syslog.t at line 189. FAILED at test 158 ext/Time/HiRes/t/HiRes...............................Time::HiRes::clock(): unimplemented in this platform at ../ext/Time/HiRes/t/HiRes.t line 571. FAILED--expected 33 tests, saw 32 lib/Tie/File/t/09_gen_rs.............................FAILED--no leader found lib/warnings.........................................PROG: use warnings 'uninitialized'; my ($m1, $m2, $v); our ($g1); eval { $v = $m1 / $g1 }; $v = $m2 / 2; eval { $v = $m1 % $g1 }; $v = $m2 % 2; $v = $m1 == $g1; $v = $m1 >= $g1; $v = $m1 > $g1; $v = $m1 <= $g1; $v = $m1 < $g1; $v = $m1 * $g1; $v = $m1 <=>$g1; $v = $m1 != $g1; $v = $m1 -$g1; $v = $m1 ** $g1; $v = $m1 + $g1; $v = $m1 - $g1; EXPECTED: Use of uninitialized value $g1 in division (/) at - line 5. Use of uninitialized value $m1 in division (/) at - line 5. Use of uninitialized value $m2 in division (/) at - line 6. Use of uninitialized value $g1 in modulus (%) at - line 7. Use of uninitialized value $m1 in modulus (%) at - line 7. Use of uninitialized value $m2 in modulus (%) at - line 8. Use of uninitialized value $g1 in numeric eq (==) at - line 9. Use of uninitialized value $m1 in numeric eq (==) at - line 9. Use of uninitialized value $g1 in numeric ge (>=) at - line 10. Use of uninitialized value $m1 in numeric ge (>=) at - line 10. Use of uninitialized value $g1 in numeric gt (>) at - line 11. Use of uninitialized value $m1 in numeric gt (>) at - line 11. Use of uninitialized value $g1 in numeric le (<=) at - line 12. Use of uninitialized value $m1 in numeric le (<=) at - line 12. Use of uninitialized value $g1 in numeric lt (<) at - line 13. Use of uninitialized value $m1 in numeric lt (<) at - line 13. Use of uninitialized value $g1 in multiplication (*) at - line 14. Use of uninitialized value $m1 in multiplication (*) at - line 14. Use of uninitialized value $g1 in numeric comparison (<=>) at - line 15. Use of uninitialized value $m1 in numeric comparison (<=>) at - line 15. Use of uninitialized value $g1 in numeric ne (!=) at - line 16. Use of uninitialized value $m1 in numeric ne (!=) at - line 16. Use of uninitialized value $g1 in subtraction (-) at - line 17. Use of uninitialized value $m1 in subtraction (-) at - line 17. Use of uninitialized value $g1 in exponentiation (**) at - line 18. Use of uninitialized value $m1 in exponentiation (**) at - line 18. Use of uninitialized value $g1 in addition (+) at - line 19. Use of uninitialized value $m1 in addition (+) at - line 19. Use of uninitialized value $g1 in subtraction (-) at - line 20. Use of uninitialized value $m1 in subtraction (-) at - line 20. GOT: Use of uninitialized value $g1 in division (/) at - line 5. Use of uninitialized value $m1 in division (/) at - line 5. Use of uninitialized value $m2 in division (/) at - line 6. Use of uninitialized value $g1 in modulus (%) at - line 7. Use of uninitialized value $m1 in modulus (%) at - line 7. Use of uninitialized value $m2 in modulus (%) at - line 8. Use of uninitialized value $g1 in numeric eq (==) at - line 9. Use of uninitialized value $m1 in numeric eq (==) at - line 9. Use of uninitialized value $g1 in numeric ge (>=) at - line 10. Use of uninitialized value $m1 in numeric ge (>=) at - line 10. Use of uninitialized value $g1 in numeric gt (>) at - line 11. Use of uninitialized value $m1 in numeric gt (>) at - line 11. Use of uninitialized value $g1 in numeric le (<=) at - line 12. Use of uninitialized value $m1 in numeric le (<=) at - line 12. Use of uninitialized value $g1 in numeric lt (<) at - line 13. Use of uninitialized value $m1 in numeric lt (<) at - line 13. Use of uninitialized value $g1 in multiplication (*) at - line 14. Use of uninitialized value $m1 in multiplication (*) at - line 14. Use of uninitialized value $g1 in numeric comparison (<=>) at - line 15. Use of uninitialized value $m1 in numeric comparison (<=>) at - line 15. Use of uninitialized value $g1 in numeric ne (!=) at - line 16. Use of uninitialized value $m1 in numeric ne (!=) at - line 16. Use of uninitialized value $g1 in subtraction (-) at - line 17. Use of uninitialized value $m1 in subtraction (-) at - line 17. Use of uninitialized value $g1 in exponentiation (**) at - line 18. Use of uninitialized value $m1 in exponentiation (**) at - line 18. pow(0,0): DOMAIN error Use of uninitialized value $g1 in addition (+) at - line 19. Use of uninitialized value $m1 in addition (+) at - line 19. Use of uninitialized value $g1 in subtraction (-) at - line 20. Use of uninitialized value $m1 in subtraction (-) at - line 20. # Failed at ../t/lib/common.pl line 186 FAILED at test 239 Failed 11 tests out of 1167, 99.06% okay. ../ext/Devel/DProf/t/DProf.t ../ext/DynaLoader/t/DynaLoader.t ../ext/IPC/SysV/t/ipcsysv.t ../ext/POSIX/t/sigaction.t ../ext/POSIX/t/time.t ../ext/Sys/Syslog/t/syslog.t ../ext/Time/HiRes/t/HiRes.t ../lib/Tie/File/t/09_gen_rs.t ../lib/warnings.t op/getppid.t run/switchF1.t
![]() |
0 |
![]() |