This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Remove the UTS port.
authorNicholas Clark <nick@ccl4.org>
Tue, 14 Aug 2012 09:54:48 +0000 (11:54 +0200)
committerNicholas Clark <nick@ccl4.org>
Fri, 17 Aug 2012 14:35:30 +0000 (16:35 +0200)
UTS was a mainframe version of System V created by Amdahl, subsequently sold
to UTS Global. The port has not been touched since before 5.8.0, and UTS
Global is now defunct.

17 files changed:
MANIFEST
Porting/perlhist_calculate.pl
README.uts [deleted file]
ext/POSIX/hints/uts.pl [deleted file]
handy.h
hints/uts.sh [deleted file]
perl.h
plan9/mkfile
pod/perl.pod
pod/perl58delta.pod
pod/perldelta.pod
util.c
uts/sprintf_wrap.c [deleted file]
uts/strtol_wrap.c [deleted file]
win32/Makefile
win32/makefile.mk
x2p/a2p.h

index 6834d86..25f2546 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -3874,7 +3874,6 @@ ext/POSIX/hints/next_3.pl Hint for POSIX for named architecture
 ext/POSIX/hints/openbsd.pl     Hint for POSIX for named architecture
 ext/POSIX/hints/sunos_4.pl     Hint for POSIX for named architecture
 ext/POSIX/hints/svr4.pl                Hint for POSIX for named architecture
-ext/POSIX/hints/uts.pl         Hint for POSIX for named architecture
 ext/POSIX/lib/POSIX.pm         POSIX extension Perl module
 ext/POSIX/lib/POSIX.pod                POSIX extension documentation
 ext/POSIX/Makefile.PL          POSIX extension makefile writer
@@ -4181,7 +4180,6 @@ hints/unicosmk.sh         Hints for named architecture
 hints/unicos.sh                        Hints for named architecture
 hints/unisysdynix.sh           Hints for named architecture
 hints/utekv.sh                 Hints for named architecture
-hints/uts.sh                   Hints for named architecture
 hints/uwin.sh                  Hints for named architecture
 hints/vmesa.sh                 Hints for named architecture
 hints/vos.sh                   Hints for named architecture
@@ -4879,7 +4877,6 @@ README.solaris                    Perl notes for Solaris
 README.symbian                 Perl notes for Symbian
 README.tru64                   Perl notes for Tru64
 README.tw                      Perl for Traditional Chinese (in Big5)
-README.uts                     Perl notes for UTS
 README.vmesa                   Perl notes for VM/ESA
 README.vms                     Notes about installing the VMS port
 README.vos                     Perl notes for Stratus VOS
@@ -5576,8 +5573,6 @@ utils/shasum.PL                   filter for computing SHA digests (analogous to md5sum)
 utils/splain.PL                        Stand-alone version of diagnostics.pm
 utils/xsubpp.PL                        External subroutine preprocessor
 utils/zipdetails.PL                    display the internal structure of zip files
-uts/sprintf_wrap.c             sprintf wrapper for UTS
-uts/strtol_wrap.c              strtol wrapper for UTS
 vmesa/Makefile                 VM/ESA Makefile
 vmesa/vmesa.c                  VM/ESA-specific C code for Perl core
 vmesa/vmesaish.h               VM/ESA-specific C header for Perl core
index b03fef4..2bb3104 100755 (executable)
@@ -141,7 +141,7 @@ sub calc_longtable {
 
        say "Configure: $configure_size 1";
 
-       foreach my $dir (qw(Cross djgpp emacs epoc h2pl hints mad mint mpeix NetWare os2 plan9 Porting qnx symbian utils uts vmesa vms vos win32 x2p)) {
+       foreach my $dir (qw(Cross djgpp emacs epoc h2pl hints mad mint mpeix NetWare os2 plan9 Porting qnx symbian utils vmesa vms vos win32 x2p)) {
                calc_dir($dir);
        }
 }
diff --git a/README.uts b/README.uts
deleted file mode 100644 (file)
index 2025e37..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-If you read this file _as_is_, just ignore the funny characters you
-see. It is written in the POD format (see perlpod manpage) which is
-specially designed to be readable as is.
-
-=head1 NAME
-
-perluts - Perl under UTS
-
-=head1 SYNOPSIS
-
-This document can be read I<as is>: as F<README.uts>, or you
-can read it after you build your package using "man perluts".
-
-The purpose is to help you build Perl for UTS, which, if you
-follow these instructions, should be easy, and result in
-a solidly working installation.
-
-=head1 DESCRIPTION
-
-Perl 5.7.2 (Developmental) or Perl 5.8.x (forthcoming) for UTS
-
-=head1 BUILDING PERL ON UTS
-
-NOTE: Some sites have redefined the way uname works, and if yours
-does this, special steps must be taken so that Configure can
-recognize your system as a UTS system.  To see if you are in
-this category, issue the command "uname -a".  It should look
-something like:
-
-  uts juno 4 4.4 9672 370
-
-At any rate, the first field should be "uts".  If this is not
-the case; supposing it is, say telcoUTS, create a script, uts/uname
-(i.e. uname, in the subdirectory "uts" of the main Perl source dir):
-   # uname
-   /usr/bin/uname "$@" | sed -e 's/^telcoUTS/uts/'
-
-and when you execute Configure, do it as below, except for adding
-PATH=uts:$PATH as a prefix.  I.e. do:
-
-   PATH=uts:$PATH ./Configure ...
-
-There is no need to do an interactive configure, just type
-
-  ./Configure -de [-Dusedevel] [-Doptimize=-g ] 2>&1 | tee Conf.out
-
-"-Dusedevel" may be required to configure Perl 5.7.2 non-interactively.
-Use -Doptimize=-g if you want to run Perl under sdb or gdb, OR
-if you want to be able to use the -D command line flags to perl,
-which are occasionally useful in debugging perl scripts.
-
-In this and the following steps, the "2>&1 | tee XXX.out" records all
-output from the process, which will be useful if anything unexpected
-goes wrong.
-
-Then do the compilation with
-
-  make 2>&1 | tee make.out
-
-Finally, test using
-
-  make test 2>&1 | tee make-test.out
-
-In the output, the only failures you should see should look like:
-
-   lib/Math/BigInt/t/bigfltpm.........Use of uninitialized value ...
-   FAILED at test 57
-   lib/Math/BigInt/t/bigintc..........ok
-   lib/Math/BigInt/t/bigintpm.........FAILED at test 204
-   lib/Math/BigInt/t/mbimbf...........Use of uninitialized value ...
-   Illegal division by zero at ../lib/Math/BigInt/Calc.pm line 314.
-   FAILED at test 71
-   lib/Math/Complex...................exp: OVERFLOW
-   FAILED at test 250
-   lib/Math/Trig......................exp: OVERFLOW
-   ok
-   lib/Memoize/t/array................ok
-       ...
-   lib/Net/protoent...................ok
-   lib/Net/servent....................FAILED at test 0
-
-This means that everything passes except for some problems in the
-packages "Math::BigInt", "Math::Complex", and "Math::Trig".
-The lib/Net/servent failure seems to be a bug in the test
-program.  To confirm this, from the main Perl source dir, do:
-
-   LD_LIBRARY_PATH=`pwd` ./perl -Ilib lib/Net/servent.t
-
-and it should output
-
-   1..3
-   ok 1
-   ok 2
-   ok 3
-
-=head1 Installing the built perl on UTS
-
-Run the command "make install"
-
-=head1 AUTHOR
-
-   Hal Morris
-   UTS Global LLC
-   email: hom00@utsglobal.com
-
-=cut
-
diff --git a/ext/POSIX/hints/uts.pl b/ext/POSIX/hints/uts.pl
deleted file mode 100644 (file)
index 7a18b4a..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-# UTS - Leaving -lm in there results in death of make with the message:
-#         LD_RUN_PATH="/usr/ccs/lib" ld  -G -z text POSIX.o \
-#         -o ../../lib/auto/POS IX/POSIX.so   -lm
-# relocations referenced
-#         from file(s)
-#         /usr/ccs/lib/libm.a(acos.o)
-#               ...
-
-$self->{LIBS} = [''];
diff --git a/handy.h b/handy.h
index d4df8bd..f83bce5 100644 (file)
--- a/handy.h
+++ b/handy.h
@@ -101,7 +101,7 @@ Null SV pointer. (No longer available when C<PERL_CORE> is defined.)
 #endif /* NeXT || __NeXT__ */
 
 #ifndef HAS_BOOL
-# if defined(UTS) || defined(VMS)
+# if defined(VMS)
 #  define bool int
 # else
 #  define bool char
diff --git a/hints/uts.sh b/hints/uts.sh
deleted file mode 100644 (file)
index 2ac5221..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-archname='s390'
-archobjs='uts/strtol_wrap.o uts/sprintf_wrap.o'
-cc='cc -Xa'
-ccflags='-XTSTRINGS=1500000 -DStrtol=strtol_wrap32 -DStrtoul=strtoul_wrap32 -DSPRINTF_E_BUG'
-cccdlflags='-pic'
-d_bincompat3='undef'
-d_csh='undef' 
-d_lstat='define'
-d_suidsafe='define'
-dlsrc='dl_dlopen.xs'
-i_ieeefp='undef'
-ld='ld'
-lddlflags='-G -z text'
-libperl='libperl.so'
-libpth='/lib /usr/lib /usr/ccs/lib'
-libs='-lsocket -lnsl -ldl -lm'
-libswanted='m'
-prefix='/usr/local'
-toke_cflags='optimize=""' 
-useshrplib='true'
-
-#################################
-# Some less routine stuff:
-#################################
-cc -g -Xa -c -pic -O uts/strtol_wrap.c -o uts/strtol_wrap.o
-cc -g -Xa -c -pic -O uts/sprintf_wrap.c -o uts/sprintf_wrap.o
-# Make POSIX a static extension.
-cat <<'EOSH' > config.over
-static_ext='POSIX B'
-dynamic_ext=`echo " $dynamic_ext " |
-  sed -e 's/ POSIX / /' -e 's/ B / /'`
-EOSH
diff --git a/perl.h b/perl.h
index ab6807b..47f642f 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -1172,7 +1172,7 @@ EXTERN_C int usleep(unsigned int);
 #   define S_IFIFO _S_IFIFO
 #endif
 
-/* The stat macros for Amdahl UTS, Unisoft System V/88 (and derivatives
+/* The stat macros for Unisoft System V/88 (and derivatives
    like UTekV) are broken, sometimes giving false positives.  Undefine
    them here and let the code below set them to proper values.
 
@@ -1181,7 +1181,7 @@ EXTERN_C int usleep(unsigned int);
    This header file bug is corrected in gcc-2.5.8 and later versions.
    --Kaveh Ghazi (ghazi@noc.rutgers.edu) 10/3/94.  */
 
-#if defined(uts) || (defined(m88k) && defined(ghs))
+#if defined(m88k) && defined(ghs)
 #   undef S_ISDIR
 #   undef S_ISCHR
 #   undef S_ISBLK
@@ -1624,10 +1624,6 @@ EXTERN_C char *crypt(const char *, const char *);
 #undef UV
 #endif
 
-#ifdef SPRINTF_E_BUG
-#  define sprintf UTS_sprintf_wrap
-#endif
-
 /* For the times when you want the return value of sprintf, and you want it
    to be the length. Can't have a thread variable passed in, because C89 has
    no varargs macros.
@@ -1690,13 +1686,6 @@ EXTERN_C char *crypt(const char *, const char *);
 #  define my_strlcpy   Perl_my_strlcpy
 #endif
 
-/* Configure gets this right but the UTS compiler gets it wrong.
-   -- Hal Morris <hom00@utsglobal.com> */
-#ifdef UTS
-#  undef  UVTYPE
-#  define UVTYPE unsigned
-#endif
-
 /*
     The IV type is supposed to be long enough to hold any integral
     value or a pointer.
@@ -1762,11 +1751,6 @@ typedef UVTYPE UV;
 # undef PERL_NEED_MY_BETOH64
 #endif
 
-#if defined(uts) || defined(UTS)
-#      undef UV_MAX
-#      define UV_MAX (4294967295u)
-#endif
-
 #define IV_DIG (BIT_DIGITS(IVSIZE * 8))
 #define UV_DIG (BIT_DIGITS(UVSIZE * 8))
 
@@ -2421,9 +2405,8 @@ typedef struct custom_op XOP;
 
 typedef struct interpreter PerlInterpreter;
 
-/* Amdahl's <ksync.h> has struct sv */
 /* SGI's <sys/sema.h> has struct sv */
-#if defined(UTS) || defined(__sgi)
+#if defined(__sgi)
 #   define STRUCT_SV perl_sv
 #else
 #   define STRUCT_SV sv
index 8f086b0..0c59a99 100644 (file)
@@ -23,7 +23,7 @@ installman3dir = /sys/man/2
 podnames = perl perlbook perldata perldebtut perldiag perldsc perlform perlfunc perlipc perllexwarn perllol perlmod perlmodlib perlmodinstall perlnewmod perlop perlootut perlopentut perlpacktut perlpod perlport perlrequick perlretut perlref perlreftut perlrequick perlrun perlsec perlstyle perlsub perlsyn perltie perltrap perlutil perlunifaq perluniintro perlvar
 faqpodnames = perlfaq perlfaq1 perlfaq2 perlfaq3 perlfaq4 perlfaq5 perlfaq6 perlfaq7 perlfaq8 perlfaq9
 advpodnames = perlapi perlapio perlcall perlclib perlcompile perldebguts perldbmfilter perldebug perldelta perldiag perlebcdic perlembed perlfilter perlfork perlguts perlhack perlintern perliol perllocale perlnumber perlobj perlpodspec perlre perlthrtut perltodo perlunicode perlxs perlxs perlxstut
-archpodnames = perlaix perlamiga perlbeos perlbs2000 perlce perlcygwin perldgux perldos perlepoc perlfreebsd perlhpux perlhurd perlirix perlmacos perlmpeix perlnetware perlos2 perlos390 perlos400 perlplan9 perlqnx perlsolaris perltru64 perluts perlvmesa perlvms perlvos perlwin32
+archpodnames = perlaix perlamiga perlbeos perlbs2000 perlce perlcygwin perldgux perldos perlepoc perlfreebsd perlhpux perlhurd perlirix perlmacos perlmpeix perlnetware perlos2 perlos390 perlos400 perlplan9 perlqnx perlsolaris perltru64 perlvmesa perlvms perlvos perlwin32
 histpods = perl5004delta perl5005delta perl561delta perl56delta perl570delta perl571delta perl572delta perl573delta perl58delta perlhist
 
 libpods = ${podnames:%=pod/%.pod}
index 2220a6b..2956a8a 100644 (file)
@@ -252,7 +252,6 @@ aux a2p c2ph h2ph h2xs perlbug pl2pm pod2html pod2man s2p splain xsubpp
     perlsolaris        Perl notes for Solaris
     perlsymbian        Perl notes for Symbian
     perltru64          Perl notes for Tru64
-    perluts            Perl notes for UTS
     perlvmesa          Perl notes for VM/ESA
     perlvms            Perl notes for VMS
     perlvos            Perl notes for Stratus VOS
index 0612ca6..9777b55 100644 (file)
@@ -3631,7 +3631,9 @@ return only three values, not four.
 
 =head2 UTS
 
-There are a few known test failures, see L<perluts> (README.uts).
+There are a few known test failures.  (B<Note:> the relevant information was
+available in F<README.uts> until support for UTS was removed in Perl
+v5.18.0)
 
 =head2 VOS (Stratus)
 
index 375a52e..f0ae626 100644 (file)
@@ -450,13 +450,13 @@ XXX
 
 =head2 Discontinued Platforms
 
-XXX List any platforms that this version of perl no longer compiles on.
-
 =over 4
 
-=item XXX-some-platform
+=item UTS Global
 
-XXX
+Support code relating to UTS global has been removed.  UTS was a mainframe
+version of System V created by Amdahl, subsequently sold to UTS Global.  The
+port has not been touched since before 5.8.0, and UTS Global is now defunct.
 
 =back
 
diff --git a/util.c b/util.c
index e267bbf..c12624d 100644 (file)
--- a/util.c
+++ b/util.c
@@ -3087,9 +3087,6 @@ Perl_my_pclose(pTHX_ PerlIO *ptr)
 #endif
     close_failed = (PerlIO_close(ptr) == EOF);
     SAVE_ERRNO;
-#ifdef UTS
-    if(PerlProc_kill(pid, 0) < 0) { return(pid); }   /* HOM 12/23/91 */
-#endif
 #ifndef PERL_MICRO
     rsignal_save(SIGHUP,  (Sighandler_t) SIG_IGN, &hstat);
     rsignal_save(SIGINT,  (Sighandler_t) SIG_IGN, &istat);
diff --git a/uts/sprintf_wrap.c b/uts/sprintf_wrap.c
deleted file mode 100644 (file)
index e86eae0..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-#include       <stdlib.h>
-#include       <stdio.h>
-#include       <assert.h>
-#include       <string.h>
-
-char   *UTS_sprintf_wrap();
-char   *do_efmt();
-char   *do_gfmt();
-char   *Fill();
-
-/* main(argc, argv)
- * char        **argv;
- * {
- *     double  d;
- *     char    *Fmt, *Ret;
- *     char    obuf[200];
- * 
- *     assert(argc > 2);
- *     Fmt = argv[1];
- *     d = strtod(argv[2], (char **)0);
- * 
- *     putchar('{');
- *     printf(Fmt, d);
- *     printf("}\n");
- * 
- *     Ret = UTS_sprintf_wrap(obuf, Fmt, d);
- *     assert(Ret == obuf);
- * 
- *     printf("{%s}\n", obuf);
- * }
- */
-
-char *
-UTS_sprintf_wrap(obuf, fmt, d,
-       a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)
-char   *obuf, *fmt;
-double d;
-{
-       int     fmtlen, Width=0, Precision=6, Alt=0, Plus=0, Minus=0,
-               Zero = 0;
-       int     FmtChar, BaseFmt = 0;
-       char    *f = fmt, *AfterWidth = 0, *AfterPrecision = 0;
-       char    *Dot;
-
-       if(*f++ != '%') {
-               return
-sprintf(obuf, fmt, d, a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15);
-       }
-       fmtlen = strlen(fmt);
-       FmtChar = fmt[fmtlen - 1];
-       switch(FmtChar) {
-       case 'f':
-       case 'F':
-               return
-sprintf(obuf, fmt, d, a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15);
-       case 'e':
-       case 'E':
-               BaseFmt = 'e';
-               goto BaseFmt_IsSet;
-       case 'g':
-       case 'G':
-               BaseFmt = 'g';
-BaseFmt_IsSet:
-               if(*f == '#') { Alt = 1; ++f; }   /* Always has '.' */
-               if(*f == '+') { Plus = 1; ++f; }  /* Force explicit sign */
-               if(*f == '-') { Minus = 1; ++f; } /* Left justify */
-               if(*f == '0') { Zero = 1; ++f;} /* Fill using 0s*/
-               if(Dot = strchr(f, '.')) {
-                       Precision = strtol(Dot+1, &AfterPrecision, 0);
-               }
-               if(!Dot || (Dot && Dot > f)) { /* Next char=='.' => no width*/
-                       Width = strtol(f, &AfterWidth, 0);
-               }
-               if(Dot) { f = AfterPrecision; }
-               else if(AfterWidth) { f = AfterWidth; }
-               if(*f != FmtChar) goto regular_sprintf;
-                /* It doesn't look like a f.p. sprintf call */
-                /* from Perl_sv_vcatpvfn                    */
-
-               if(BaseFmt == 'e') {
-                       return do_efmt(d, obuf, Width, Precision, Alt,
-                               Plus, Minus, Zero, FmtChar == 'E');
-               } else {
-                       return do_gfmt(d, obuf, Width, Precision, Alt,
-                               Plus, Minus, Zero, FmtChar == 'G');
-               }
-       default:
-regular_sprintf:
-               return
-sprintf(obuf, fmt, d, a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15);
-       }
-}
-
-char   *
-do_efmt(d, obuf, Width, Precision, Alt, Plus, Minus, Zero, UpperCase)
-char   *obuf;
-double d;
-{
-       char    *Ecvt;
-       char    *ob;
-       int     decpt, sign, E;
-       int     len;
-       int     AllZeroes = 0;
-
-       Ecvt = ecvt( d , Precision+1, &decpt, &sign);
-
-       /* fprintf(stderr, "decpt=%d, sign=%d\n", decpt, sign); */
-
-       len = strlen(Ecvt);
-       if(strspn(Ecvt, "0") == len) AllZeroes = 1;
-
-       ob = obuf;
-       if(sign)        *ob++ = '-';
-       else if(Plus)   *ob++ = '+';
-
-       *ob++ = Ecvt[0];
-
-       if(Precision > 0 || Alt) *ob++ = '.';
-       strcpy(ob, &Ecvt[1]);
-
-       ob += strlen(ob);       /* ADVANCE TO END OF WHAT WE JUST ADDED */
-       *ob++ = UpperCase ? 'E' : 'e';
-
-       if(AllZeroes)   E = 0;
-       else            E = decpt - 1;
-
-       if(E < 0)       { *ob++ = '-'; E = -E; }
-       else            { *ob++ = '+'; }
-
-       sprintf(ob, "%.2d", E); /* Too much horsepower used here */
-
-       if(Width > strlen(obuf)) return Fill(obuf, Width, Minus, Zero);
-       else                     return obuf;
-}
-
-char   *
-do_gfmt(d, obuf, Width, Precision, Alt, Plus, Minus, Zero, UpperCase)
-char   *obuf;
-double d;
-{
-       char    *Ecvt = gcvt(d, Precision ? Precision : 1, obuf);
-       int     len = strlen(obuf);
-
-        /* gcvt fails (maybe give a warning? For now return empty string): */
-       if(!Ecvt) { *obuf = '\0'; return obuf; }
-
-       /* printf("Ecvt='%s'\n", Ecvt); */
-       if(Plus && (Ecvt[0] != '-')) {
-               memmove(obuf+1, obuf, len+1); /* "+1" to get '\0' at end */
-               obuf[0] = '+';
-               ++len;
-       }
-       if(Alt && !strchr(Ecvt, '.')) {
-               int     LenUpTo_E = strcspn(obuf, "eE");
-               int     E_etc_len = strlen(&obuf[LenUpTo_E]);
-                       /* ABOVE: Will be 0 if there's no E/e because */
-                       /* strcspn will return length of whole string */
-
-               if(E_etc_len)
-                       memmove(obuf+LenUpTo_E+1, obuf+LenUpTo_E, E_etc_len);
-               obuf[LenUpTo_E] = '.';
-               obuf[LenUpTo_E + 1 + E_etc_len ] = '\0';
-       }
-       { char *E_loc;
-         if(UpperCase && (E_loc = strchr(obuf, 'e'))) { *E_loc = 'E'; }
-       }
-       if(Width > len)
-               return Fill(obuf, Width, Minus, Zero);
-       else
-               return obuf;
-}
-
-char *
-Fill(obuf, Width, LeftJustify, Zero)
-char   *obuf;
-{
-       int     W = strlen(obuf);
-       int     diff = Width - W;
-        /* LeftJustify means there was a '-' flag, and in that case,   */
-        /* printf man page (UTS4.4) says ignore '0'                    */
-       char    FillChar = (Zero && !LeftJustify) ? '0' : ' ';
-       int     i;
-       int     LeftFill = ! LeftJustify;
-
-       if(Width <= W) return obuf;
-
-       if(LeftFill) {
-               memmove(obuf+diff, obuf, W+1); /* "+1" to get '\0' at end */
-               for(i=0 ; i < diff ; ++i) { obuf[i] = FillChar; }
-       } else {
-               for(i=W ; i < Width ; ++i)
-                       obuf[i] = FillChar;
-               obuf[Width] = '\0';
-       }
-       return obuf;
-}
diff --git a/uts/strtol_wrap.c b/uts/strtol_wrap.c
deleted file mode 100644 (file)
index 24bb055..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-/* A wrapper around strtol() and strtoul() to correct some
- * "out of bounds" cases that don't work well on at least UTS.
- * If a value is Larger than the max, strto[u]l should return
- * the max value, and set errno to ERANGE
- *  The same if a value is smaller than the min value (only
- * relevant for strtol(); not strtoul()), except the minimum
- * value is returned (and errno == ERANGE).
- */
-
-#include       <ctype.h>
-#include       <string.h>
-#include       <sys/errno.h>
-#include       <stdlib.h>
-
-extern int     errno;
-
-#undef I32
-#undef U32
-
-#define        I32     int
-#define        U32     unsigned int
-
-struct base_info {
-       char    *ValidChars;
-
-       char    *Ulong_max_str;
-       char    *Long_max_str;
-       char    *Long_min_str;  /* Absolute value */
-
-       int     Ulong_max_str_len;
-       int     Long_max_str_len;
-       int     Long_min_str_len;       /* Absolute value */
-
-       U32     Ulong_max;
-       I32     Long_max;
-       I32     Long_min;       /* NOT Absolute value */
-};
-static struct  base_info Base_info[37];
-
-static struct base_info Base_info_16 = {
-       "0123456789abcdefABCDEF",
-       "4294967295", "2147483648" /* <== ABS VAL */ , "2147483647",
-       10, 10, 10,
-       4294967295, 2147483647, - 2147483648,
-};
-
-static struct base_info Base_info_10 = {
-       "0123456789",
-       "4294967295", "2147483648" /* <== ABS VAL */ , "2147483647",
-       10, 10, 10,
-       4294967295, 2147483647, - 2147483648,
-};
-
- /* Used eventually (if this is fully developed) to hold info
-  * for processing bases 2-36.  So that we can just plug the
-  * base in as a selector for its info, we sacrifice
-  * Base_info[0] and Base_info[1] (unless they are used
-  * at some point for special information).
-  */
-
-/* This may be replaced later by something more universal */
-static void
-init_Base_info()
-{
-       if(Base_info[10].ValidChars) return;
-       Base_info[10] = Base_info_10;
-       Base_info[16] = Base_info_16;
-}
-
-unsigned int
-strtoul_wrap32(char *s, char **pEnd, int base)
-{
-       int     Len;
-       int     isNegated = 0;
-       char    *sOrig = s;
-
-       init_Base_info();
-
-       while(*s && isspace(*s)) ++s;
-
-       if(*s == '-') {
-               ++isNegated;
-               ++s;
-               while(*s && isspace(*s)) ++s;
-       }
-       if(base == 0) {
-               if(*s == '0') {
-                       if(s[1] == 'x' || s[1] == 'X') {
-                               s += 2;
-                               base = 16;
-                       } else {
-                               ++s;
-                               base = 8;
-                       }
-               } else if(isdigit(*s)) {
-                       base = 10;
-               }
-       }
-       if(base != 10) {
-               return strtoul(sOrig, pEnd, base);
-       }
-       
-       Len = strspn(s, Base_info[base].ValidChars);
-
-       if(Len > Base_info[base].Ulong_max_str_len
-               ||
-          (Len == Base_info[base].Ulong_max_str_len
-                       &&
-           strncmp(Base_info[base].Ulong_max_str, s, Len) < 0)
-         ) {
-               /* In case isNegated is set - what to do?? */
-               /* Mightn't we say a negative number is ERANGE for strtoul? */
-               errno = ERANGE;
-               return Base_info[base].Ulong_max;
-       }
-
-       return strtoul(sOrig, pEnd, base);
-}
-
-int
-strtol_wrap32(char *s, char **pEnd, int base)
-{
-       int     Len;
-       int     isNegated = 0;
-       char    *sOrig = s;
-
-       init_Base_info();
-
-       while(*s && isspace(*s)) ++s;
-
-       if(*s == '-') {
-               ++isNegated;
-               ++s;
-               while(*s && isspace(*s)) ++s;
-       }
-       if(base == 0) {
-               if(*s == '0') {
-                       if(s[1] == 'x' || s[1] == 'X') {
-                               s += 2;
-                               base = 16;
-                       } else {
-                               ++s;
-                               base = 8;
-                       }
-               } else if(isdigit(*s)) {
-                       base = 10;
-               }
-       }
-       if(base != 10) {
-               return strtol(sOrig, pEnd, base);
-       }
-       
-       Len = strspn(s, Base_info[base].ValidChars);
-
-       if(Len > Base_info[base].Long_max_str_len
-                               ||
-          (!isNegated && Len == Base_info[base].Long_max_str_len
-               &&
-           strncmp(Base_info[base].Long_max_str, s, Len) < 0)
-                               ||
-          (isNegated && Len == Base_info[base].Long_min_str_len
-               &&
-           strncmp(Base_info[base].Long_min_str, s, Len) < 0)
-         ) {
-               /* In case isNegated is set - what to do?? */
-               /* Mightn't we say a negative number is ERANGE for strtol? */
-               errno = ERANGE;
-               return(isNegated ? Base_info[base].Long_min
-                                       :
-                                  Base_info[base].Long_min);
-       }
-
-       return strtol(sOrig, pEnd, base);
-}
index e2fde81..038b993 100644 (file)
@@ -1155,7 +1155,6 @@ utils: $(PERLEXE) $(X2P)
        copy ..\README.symbian  ..\pod\perlsymbian.pod
        copy ..\README.tru64    ..\pod\perltru64.pod
        copy ..\README.tw       ..\pod\perltw.pod
-       copy ..\README.uts      ..\pod\perluts.pod
        copy ..\README.vmesa    ..\pod\perlvmesa.pod
        copy ..\README.vos      ..\pod\perlvos.pod
        copy ..\README.win32    ..\pod\perlwin32.pod
@@ -1261,8 +1260,8 @@ distclean: realclean
            perlnetware.pod perlopenbsd.pod perlos2.pod perlos390.pod \
            perlos400.pod perlplan9.pod perlqnx.pod perlriscos.pod \
            perlsolaris.pod perlsymbian.pod perltoc.pod perltru64.pod \
-           perltw.pod perluniprops.pod perluts.pod perlvmesa.pod \
-           perlvos.pod perlwin32.pod
+           perltw.pod perluniprops.pod perlvmesa.pod perlvos.pod \
+           perlwin32.pod
        -cd ..\utils && del /f h2ph splain perlbug pl2pm c2ph pstruct h2xs \
            perldoc perlivp libnetcfg enc2xs piconv cpan *.bat \
            xsubpp pod2html instmodsh json_pp prove ptar ptardiff ptargrep cpanp-run-perl cpanp cpan2dist shasum corelist config_data zipdetails
index 20aa972..381f986 100644 (file)
@@ -1335,7 +1335,6 @@ utils: $(PERLEXE) $(X2P)
        copy ..\README.symbian  ..\pod\perlsymbian.pod
        copy ..\README.tru64    ..\pod\perltru64.pod
        copy ..\README.tw       ..\pod\perltw.pod
-       copy ..\README.uts      ..\pod\perluts.pod
        copy ..\README.vmesa    ..\pod\perlvmesa.pod
        copy ..\README.vos      ..\pod\perlvos.pod
        copy ..\README.win32    ..\pod\perlwin32.pod
@@ -1440,8 +1439,8 @@ distclean: realclean
            perlnetware.pod perlopenbsd.pod perlos2.pod perlos390.pod \
            perlos400.pod perlplan9.pod perlqnx.pod perlriscos.pod \
            perlsolaris.pod perlsymbian.pod perltoc.pod perltru64.pod \
-           perltw.pod perluniprops.pod perluts.pod perlvmesa.pod \
-           perlvos.pod perlwin32.pod
+           perltw.pod perluniprops.pod perlvmesa.pod perlvos.pod \
+           perlwin32.pod
        -cd ..\utils && del /f h2ph splain perlbug pl2pm c2ph pstruct h2xs \
            perldoc perlivp libnetcfg enc2xs piconv cpan *.bat \
            xsubpp pod2html instmodsh json_pp prove ptar ptardiff ptargrep cpanp-run-perl cpanp cpan2dist shasum corelist config_data zipdetails
index bf31b3a..a69b94a 100644 (file)
--- a/x2p/a2p.h
+++ b/x2p/a2p.h
 
 #define MEM_SIZE Size_t
 #ifdef PERL_MEM_LOG
-/* Blindly copied from ../perl.h. -- AD 2/2006. */
-/* Configure gets this right but the UTS compiler gets it wrong.
-   -- Hal Morris <hom00@utsglobal.com> */
-#  ifdef UTS
-#    undef  UVTYPE
-#    define UVTYPE unsigned
-#  endif
-
   typedef IVTYPE IV;
   typedef UVTYPE UV;
 #endif