summaryrefslogtreecommitdiff
path: root/util.c
Commit message (Collapse)AuthorAgeFilesLines
* 5.002 beta 1Larry Wall1995-11-211-7/+8
| | | | | | | | | | | | | | | | | | | | | If you're adventurous, have a look at ftp://ftp.sems.com/pub/outgoing/perl5.0/perl5.002beta1.tar.gz Many thanks to Andy for doing the integration. Obviously, if you consult the bugs database, you'll note there are still plenty of buglets that need fixing, and several enhancements that I've intended to put in still haven't made it in (Hi, Tim and Ilya). But I think it'll be pretty stable. And you can start to fiddle around with prototypes (which are, of course, still totally undocumented). Packrats, don't worry too much about readvertising this widely. Nowadays we're on a T1 here, so our bandwidth is okay. Have the appropriate amount of jollity. Larry
* This is my patch patch.1i for perl5.001.Andy Dougherty1995-05-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To apply, change to your perl directory, run the commands above, then apply with patch -p1 -N < thispatch. After you apply this patch, I would recommend: rm config.sh sh Configure [whatever options you use] make depend make make test Here are the highlights: All pod documentation now installed, along with corresponding man pages, if possible (Configure allows you to change this). cppstdin no longer points back to the build directory. This necessitated two changes to the test suite: comp/cpp.t is now a front end that punts if cppstdin is not yet available (the old perl4 trick doesn't work for perl5). The op/misc.t test ./perl -P -e 'use POSIX;' has been dropped since I couldn't think of an elegant way to bypass it for systems that need the cppstdin wrapper. Grand autoload patch included (minus the installperl, lib/, and ext/ changes). The lib/ changes are in patch.1g, and the ext/ changes are in patch.1h. Better detection and use of stdio variants, especially on SVR4. Sarathy's consolidated patches (for ties) included. New filter stuff included. Three patches from Larry (gv.c, toke.c, pp_ctl.c) Patch and enjoy, Andy Dougherty doughera@lafcol.lafayette.edu Dept. of Physics Lafayette College Easton, PA 18042 Here's the file-by-file breakdown of what's included: Changes.Conf Document changes in the Configure & build process. Configure Upgrade to metaconfig PL55. Add /opt hierarchy to paths searched for programs. Tye McQueen's updated std stdio testing. Prompting for installation info for perl module pages. Add possible SITELIB to include site-specific include directories. By default this is disabled, but it seemed a neat idea now that the standard perl library is getting so big. Check that the compiler chosen exists and actually supports the options the user specified. Correctly sort multiple shared library version numbers. Use a compile & link test for gconvert(), dlopen(), and dlerror(). Do not include build directory name in cppstdin wrapper. MANIFEST Updated. Makefile.SH Reorganized a bit to support separate install.perl and install.man targets to use the new installman script and to accomodate those who don't want to install the man pages. Organize cleanup of .SH files a little better. No longer automatically make the pod/*.man files. This is done by installman only if requested. Include additional error messages and info for regenerating the automatically maintained header files. Add 'minitest' target. README Updated. README.vms Fix perl5-porters subscription info. config_H Updated. config_h.SH Updated. configpm Embedded pod. configure GNU configure-like front end to metaconfig's Configure. Only supports a few options. doio.c Updated to use new std stdio testing. embed.h Add new symbols for filtering. global.sym see embed.h. gv.c C<sub method;> patch from lwall. hints/README.hints Updated. hints/aux.sh Updated. hints/cxux.sh Updated. hints/epix.sh New file. hints/freebsd.sh Updated. hints/irix_4.sh Updated. hints/irix_5.sh Updated. hints/irix_6.sh Updated. hints/linux.sh Updated. hints/powerunix.sh Updated. installman New file to install pod/*.pod and lib/*.p(m|od) man pages. installperl Move installation of man pages over to installman script. Install pod/*.pod files in $privlib/pod/. Preserve timestamps on .a files. makedepend.SH Now includes . and .. in PATH to explicitly find cppstdin wrapper. opcode.h opcode.pl shmwrite fix. perl.c Changed unofficial patchlevel message. Included optional SITELIB directory. perl.h #include <memory.h> cryptswitch gone/filters added. EUNICE replaced by UNLINK_ALL_VERSIONS. Only matters for VMS. perldoc.SH New file. pod/perl.pod Describe where modpods are. pp_ctl.c sort bug fix from lwall. pp_hot.c csh glob bug fix from tchrist. Sarathy's consolidated "tie" patch for NETaa13753 N 2 trey pp_sys.c Emulate flock with lockf, if possible. Use new std stdio unit. proto.h Filters stuff. prototype for unlnk() is only needed #if UNLINK_ALL_VERSIONS sv.c Sarathy's consolidated "tie" patch for NETaa13753 N 2 trey Sarathy's consolidated patch for nested ties. Use new std stdio unit. t/comp/cpp.aux New file. This only gets called if cppstdin is avaiable. t/comp/cpp.t Calls cpp.aux test only if cppstdin is available. t/op/misc.t Drop perl -P -e 'use POSIX;' test. it couldn't work on systems without the cppstdin wrapper installed, and is usually misleading when it fails anyway. toke.c filter stuff. fix for NETaa13798 from lwall. unixish.h undef UNLINK_ALL_VERSIONS since it's irrelevant for unix. util.c s/EUNICE/UNLINK_ALL_VERSIONS/ for the unlnk() function. vms/config.vms VMS updates from Charles Bailey. std stdio updates to match changes in perl sources. add UNLINK_ALL_VERSIONS constant, but leave it #undef. vms/ext/MM_VMS.pm vms/ext/VMS/stdio/stdio.xs vms/perlvms.pod vms/vms.c VMS updates from Charles Bailey. x2p/Makefile.SH Updated to match man page Configure questions. Slight clean-up on .SH targets. x2p/str.c Use new std stdio unit.
* perl5.001 patch.1dAndy Dougherty1995-04-141-17/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is my patch patch.1d for perl5.001. A complete description is given below, but here are the basic changes. 1. Linux: more tweaks so dynamic loading works under ELF or (maybe) under dld. There are so many different dld versions and so many different tool sets, it's hard to be more specific. 2. perl -e '$v=1e19+0' no longer dumps core on Intel x86 processors. 3. pod stuff: a. Wrapped pod2* translators in a 'SH' wrapper so that they have the proper path to perl at the top. b. Fixed pod/ Makefile to call the pod2html translator correctly. (Why do pod2man and pod2html work differently?) c. Include latest (Feb 2, 1995) version of pod2html, fresh from ftp.metronet.com. 4. MakeMaker 4.093. 5. GIMME and installperl patches from Tim Bunce. 6. Miscellaneous hint file updates. Configure Allow ' ' to mean 'none' in a few more places. This provides a way for hint files to set something to an empty value and to ensure that the empty value will be maintained when config.sh is reused. Fix silly ld typo that prevented hint file from actually setting $ld. MANIFEST Now has pod/pod2*.SH. Makefile.SH Remove old libperl.a instead of blindly adding to it. Failure to do this causes a problem if you originally used perl's malloc but later changed your mind. The old malloc.o would still be in libperl.a ext/DynaLoader/dl_dlopen.xs Use strerror(errno) instead of dlerror for NetBSD. handy.h Clarify & rework HAS_BOOL comments and code. No functionality is changed, but I hope this is easier to follow. hints/freebsd.sh hints/isc.sh hints/linux.sh hints/netbsd.sh hints/next_3_0.sh hints/next_3_2.sh hints/sco_3.sh Miscellaneous updates. See the individual comments in the patches. installperl Run ranlib on installed .a libraries. unlink() old versions of files before installing new ones, in case the old ones are are write-protected. lib/ExtUtils/MakeMaker.pm Updated to 4.092 by Andreas Koenig. This features better selection of shared library versions and shorter command lines for static linking of new extensions. It is also more robust against broken csh on Linux. (There's still a glob in the library selection loop, however.) I further updated it to 4.093 because I didn't like the distclean target :-). It's just a sloppy quick fix, but that's all I have time for now. I've also worked on the library version selection stuff and the $(CC) command stuff a little more. lib/TieHash.pm Overdue removal of ambiguous ${pack} construction. perl.h New U_V macro to cast to the UV type (usually unsigned long). pod/Makefile Updated. pod/pod2html.SH Updated. Converted to 'SH' wrapper so correct #!/path/to/perl gets used. pod/pod2latex.SH pod/pod2man.SH Converted to 'SH' wrapper so correct #!/path/to/perl gets used. pp_hot.c GIMME patch from Tim Bunce. pp_sys.c Allow use of F_FREESP fcntl() directive to truncate files. If HAS_MKDIR is not defined, the stat() call to check the result of the system "mkdir" call was failing because the filename pointer no longer pointed to the right location. sv.c Protect some (UV) casts by the new U_V() macro. util.c New cast_uv() function to support the U_V() macro, if needed. cast_iv() and cast_uv() no longer assume 32-bit longs. The various cast_() functions have also been simplified.
* perl5.001 patch.1cAndy Dougherty1995-04-061-31/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Configure Updated to dist PL53. Fix overlapping memcpy test. Add check for ld. Use $cc instead, if on an ELF system. With -d, don't reuse config.sh unless $myuname matches. Warn more explicitly about changing compilers before reloading old config.sh. Detect Linux ELF format in nm scan. Better detection of d_castneg. (ISC 4.1 was passing the test, but couldn't cast in an argument list.) Suggest -fpic for dynamic loading if you're using GNU CC under any name. No longer test for byacc, fmod, or drem, since they are not used. Makefile.SH Use $ld, not ld (only matters for SVR4) Silence some byacc-related harmless error messages. README Suggest using -Dcc=gcc (or whatever). Warn about reusing old config.sh. (The warning was already there in 5.001; I've just expanded it a little.) Warn against using GNU as and GNU ld on SunOS & Solaris. config.H config_h.SH Updated to match Configure. doio.c Add socket includes. ext/Fcntl/Fcntl.xs Fix typo: s/SETFL/F_SETFL/; handy.h Check _G_HAVE_BOOL, not just if it's defined. hints/dynix.sh hints/hpux_9.sh hints/linux.sh hints/netbsd.sh hints/titanos.sh Updated. ELF on linux should probably work. installperl Install pod2html, pod2latex, and pod2man. lib/ExtUtils/MakeMaker.pm Updated to 4.091. (4.09 + a small writedoc() patch.) myconfig Now includes 'ld' command. perl.c Revised an #elif clause since Pyramid's cpp doesn't understand #elif. perl.h Fix U_L, I_V, and I_32 cast macros to ensure that the cast_ulong(), cast_iv(), and cast_i32() functions (if used) are passed a double. In particular, the FIXSTATUS macros were handing int's to U_L(). Remove unnecessary HAS_FMOD testing (See util.c). proto.h Remove my_fmod() prototype. (See util.c) sv.h Fix GV/CV typo. util.c Simplified cast_i32() and cast_iv() to mimic what *actually* happens on a SPARC running SunOS 4.1.3. (Previously, they did some complicated fmod() calculation. I've since discovered that's not what happens on the SPARC.) With this change, fmod() is no longer necessary. Hence my_fmod is removed. This also means the HAS_FMOD and HAS_DREM tests are no longer needed in Configure, so they are gone too. vms/config.vms Remove unnecessary HAS_FMOD and HAS_DREM defines. x2p/Makefile.SH Silence byacc-related things.
* Perl 5.001perl-5.001Larry Wall1995-03-121-26/+98
| | | | [See the Changes file for a list of changes]
* perl5.000 patch.0o: [address] a few more Configure and build nits.perl-5.000oAndy Dougherty1995-03-101-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch addresses a few more Configure and build nits. Full details are given below, but the main hightligths are (slightly) better support for nested extensions and DLD and AIX MakeMaker fixes. Configure Detect MachTen. Thanks to Mark Pease <peasem@primenet.com>. Delete some tabs that caused a MachTen /bin/sh core dump! Detect extensions nested 1 level deep, e.g. Devel/DProf/DProf.xs MANIFEST MANIFEST.new Include new hints/machten.sh hint file. Makefile.SH Document why we use ./makedir instead of mkdir. U/Extensions.U Detect extensions nested 1 level deep, e.g. Devel/DProf/DProf.xs U/dist3_051.pat Include MachTen patches. configpm Convert nested extension names from filesytem-dependent Devel/DProf to perl5's internal naming scheme Devel::DProf. doio.c A dup-related buglet fix from Hallvard B. Furuseth <h.b.furuseth@usit.uio.no>. ext/DB_File/DB_File.pm ext/DynaLoader/DynaLoader.pm ext/Fcntl/Fcntl.pm ext/GDBM_File/GDBM_File.pm ext/POSIX/POSIX.pm ext/Socket/Socket.pm Throw a qw() around @ISA elements to show "good style". hints/machten.sh new file. lib/ExtUtils/MakeMaker.pm Bump version number to 4.086. Fix AIX buglet -- needed to specify NAME. Linux/DLD/gcc-2.6.2: We no longer load .sa libraries (except libm.sa, which is apparently still o.k. util.c Another dup-related buglet fix.
* perl5.000 patch.0m: [various fixes, hint file updates and documentation]Andy Dougherty1995-02-271-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is my patch patch.0m for perl5.000. This patch fixes all remaining problems that I am aware of, and for which I have a solution. It also updates some hint files and documentation. Here's what's new: Configure Protect against spaces in uname -m output (unicos). Look in <stdlib.h> for malloctype and freetype. Check if user has void free() or int free(). Look in linux/signal.h for signal names. MANIFEST MANIFEST.new Two new hint files: cxux.sh and PowerUNIX.sh. Sorted. README Indicate what gets installed and where it usually goes. Thanks to Hallvard B. Furuseth <h.b.furuseth@usit.uio.no> for suggesting this. U/Myinit.U Update extliblist comment. U/dist3_051.pat This file contains patches to dist 3 (PL 51) that I used to generate Configure for perl. U/mallocsrc.U Look in <stdlib.h> for malloctype and freetype. Check if user has void free() or int free(). config_h.SH config.H Add Free_t to handle void free() vs. int free(). ext/DynaLoader/README Updated comment. ext/POSIX/POSIX.pm creat() has 2 arguments, not 3 (thanks, Paul). ext/POSIX/POSIX.xs Fix return type of lseek. ext/SDBM_File/sdbm/sdbm.h Add I_STDLIB guard on #include <stdlib.h> ext/util/extliblist Add note indicating this is obsolete. Don't remove it because people might be using it for their own private extensions. hints/PowerUNIX.sh hints/cxux.sh New files. Written by Tom.Horsley@mail.hcsc.com hints/linux.sh Simplified. lib/ExtUtils/MakeMaker.pm Typo fixed, only affected aix? malloc.c Allow for possible int free(). perl.h pp_sys.c util.c If the user is not using vfork, move the #define vfork fork util after various #include files. Since vfork() and fork() might have different prototypes, the #define could cause a conflict in system header files. (Reported for 386bsd.) Makefile.SH make realclean will remove h2xs and makeaperl (but leave behind the .SH versions, of course).
* perl5.000 patch.0j: fix minor portability and build problems remaining even ↵Andy Dougherty1995-02-071-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | after patches 0a through 0i Specifically, here's what's included: Configure Regenerated with metaconfig patchlevel 50. This changed a variety of things, mostly related to selecting and changing the installation prefix. Handle csh, sed, and byacc no matter what the setting of d_portable. (This was causing glob problems in patch.0i). Set d_portable to default to 'y'. It doesn't matter anyway, but gives people a warm fuzzy feeling. Remove useless d_group and d_passwd tests. Add check for <sys/stat.h>. Improve & generalize AIX version detection. Consider /opt/man/man1 as a possible place to install man pages. Be a little more robust about OS version changes when deciding if the output of uname -a has really changed. MANIFEST MANIFEST.new Added hints/mpeix.sh. README Tell users the Configure defaults are probably right. Makefile.SH Better detection of whether user has byacc. Use $(MAKE) instead of make. U/Loc_sed.U Works again with d_portable='define'. U/Myinit.U Set d_portable=define as default. U/d_byacc.U Detect whether user has byacc even if d_portable=define. U/d_csh.U Works again with d_portable='define'. U/d_group.U Empty file to avoid useless metaconfig test. U/d_passwd.U Empty file to avoid useless metaconfig test. U/dist.patch This file contains two minor updates to dist3 PL50 that were used to generage Configure. U/i_sysstat.U New test. See if sys/stat.h is available. config.H Updated. config_h.SH Updated to metaconfig patchlevel 50. ext/NDBM_File/Makefile.PL ext/ODBM_File/Makefile.PL Add -lucb for SVR4 systems. handy.h Protect agains g++-2.6.3, which predefines bool. g++ can be used to compile an extension, but not perl itself. Still, the extension will #include "perl.h", which eventually gets "handy.h", which #define's bool. If this happens to you, add -DHAS_BOOL to your ccflags in your extension, or else ensure that _G_config.h is #include'd before perl.h. (_G_config.h will define _G_HAVE_BOOL, if indeed your version of g++ has bool.) hints/aix.sh Updated. Handles AIX 3.2.x and 4.1. Comments included! hints/hpux_9.sh Updated. hints/irix_4.sh Updated. Includes comments for IRIX 4.0.4 hints/linux.sh Updated. Beginnings of ELF support added, but completely untested. hints/mpeix.sh New hint file. hints/solaris_2.sh Useless ccflags="$ccflags" line removed. hints/svr4.sh Updated. installperl Doesn't use Config anymore (it already reads config.sh directly. That's probably backwards, but, oh well. Install perl.exp for AIX. lib/ExtUtils/MakeMaker.pm Upgraded from 4.01 to 4.03. makedepend.SH Use $MAKE instead of plain make. Index: op.c Remove overlapping strcpy(). perl.h Add test for <sys/stat.h>. Delete unused VOIDSIG stuff. Delete unused typedef struct lstring Lstring; perl_exp.SH Add safexxxx calls. pp_sys.c Delete wayward break in HAS_ALARM section. proto.h Change true and false (!) in function prototypes to please g++-2.6.3, which has true and false built in. (See notes for handy.h.) Index: unixish.h Long-overdue housekeeping. HAS_GROUP and HAS_PASSWD are always defined. util.c Yet another (char*) cast for bcmp. vms/config.vms Changed comments to match unixish.h. writemain.SH Now correctly handles nested static extensions. Recent MakeMakers have moved where they get built. x2p/a2p.h More definitions that will doubtless cause trouble somewhere else. x2p/a2py.c x2p/walk.c Remove unprotected char *strchr();
* perl5.000 patch.0i: fix glaring mistakes in patches a-hAndy Dougherty1995-01-261-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch does the following things: 1. Fix various bonehead errors I introduced in patches a-g. 2. Incorporate MakeMaker changes to bring it up to version 4.01 (mostly). 3. Stick in things I forgot in patches a-g (e.g. AIX). 4. Some minor additional cleanup in x2p/ for even pickier compilers. 5. More hints updates (hpux and next). 6. Include newest dl_hpux.xs. I didn't have time to 1. Fix the overlapping strcpy() in op.c 2. Restore h2xs to Larry's original design to process <>. 3. take out unnecessary "use Config" in installperl. 4. Add in vms patches. I forgot to [If I remembered what i forgot, I wouldn't have forgotten it. :] I deliberately decided *not* to 1. Touch pod/* 2. deal with overloading Specifically, here's what's included: Configure Regenerated to be sure it's up-to-date. Makefile.SH Build extension libraries right into lib/auto/whatever. Don't set CCCDLFLAGS since we don't use it anyway. Take care to avoid modifying lib/Config.pm without reason Visit DynaLoader for `make clean'. (Previously only did so for `make realclean'.) @echo "Note that make realclean does not delete config.sh" Include config.h dependency. U/i_db.U config_h.SH config.H Remove unwanted quotes around db_hashtype and db_prefixtype. configpm Allow specification of alternate name for lib/Config.pm, so the makefile mv-if-diff trick saves needless re-making. ext/DynaLoader/DynaLoader.pm Updated warning messages and comments. ext/DynaLoader/dl_hpux.xs Updated to version 2.1. Now uses bootstrap files. ext/util/make_ext Explicitly use #!/bin/sh to start it up. This is useful for testing make_ext. Improve & simplify Nested::Extension::Processing. More robust handling of `make clean'. hints/hpux_9.sh Support both the bundled and unbundled compilers. hints/next_3_2.sh Back to using -posix rather than POSIX_SOURCE. And that only for ext/POSIX/POSIX.xs. installperl Special ranlib treatment for NeXT, which gets confused about timestamps in libraries, even when you just copy the library. Supply missing '$' in samepath() function. lib/AutoSplit.pm New parameters. lib/ExtUtils/MakeMaker.pm Upgraded from 3.8 to 4.01. lib/ExtUtils/xsubpp Documentation changed from man to pod. lib/Getopt/Long.pm Avoid typo warning. Drop unused $optx. lib/Text/Tabs.pm Fix package name. makedepend.SH Explicitly start with $startsh. Catch cpp that prints # <stdin> instead of line numbers. perl.h Fix bonehead mistake that ended up calling my_fmod even if not needed. perl_exp.SH also add symbols from interp.sym proto.h Delete 2 redundant prototypes (newBINOP and newUNOP). util.c Add (char *) casts to unsigned char args to bcmp. x2p/a2p.h Rearrange order of <string?.h> and bcopy & bzero stuff. Change a few function prototypes to void, to reflect actual usage. x2p/a2py.c Change a few function types to void, to reflect actual usage. x2p/handy.h Make *alloc declarations match those in x2p/util.c. x2p/util.c Make *alloc declarations match those in x2p/handy.h. x2p/walk.c Add a (Size_t) cast for comparison of 1 to the result of strlen(). Thanks to all who's work is included here. Little of it is mine.
* perl5.000 patch.0g: [various portability fixes, and use latest metaconfig ↵Andy Dougherty1995-01-181-9/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | for Configure] This patch incorporates various portability fixes and uses the latest metaconfig to generate Configure (and config_h.SH). It would take a long time to summarize all that I've changed. I haven't included many code changes because I'm trying *not* to duplicate bug fixes Larry may already have applied. Here's an older description I prepared that's still mostly accurate: I've also included a few portability fixes in the main source, but these are certainly not a complete set of everything that's been reported. Don't be put off by the size of the patch. Mostly, it's just rearrangement of the parts in Configure and some cosmetic changes. Since gcc often supports long long, I had started to add quad support to Configure. Since SunOS 4.1.3 defines a conflicting "quad" structure, I changed the name from 'quad' to Quad_t, consistent with other Configure "types." I also changed "QUAD" to "HAS_QUAD". However, it turns out it's pretty hard to actually *use* Quad_t. Neither system I have access to can sprintf() a "long long", nor can they carry one around in an IV, unless I make IV "long long", which I didn't want to force generally. Thus I wonder whether any but a precious few could actually use Quad_t, and dropped the tests from Configure. I left in the s/quad/Quad_t/ and s/QUAD/HAS_QUAD/ stuff in case someone else wants to pick it up, and also because I was too lazy to take it back out :-). Some highlights: Configure Several new options. Use Configure -h to learn more. Also, read the directions Configure prints. :-) Spaces now allowed in -D command line options. New -O option that overrides config.sh. You can start interactively and then change that to accepting all the defaults by specifying &-d at any Configure prompt. This is useful if you have to re-run Configure to only change a few settings. Signal type set correctly for the cast{i32,neg} tests. archname detection improved a bit guard against ksh users who have set -u Oldconfig.U cleaned up and regularized a bit more. Guard against hint files using (and over-writing) $tmp. Command line options now are processed after metaconfig INIT lines. Thus things like Configure -Uuseposix should work now. Various miscellaneous clean-ups. better use/detection of tr. i_db.U now checks for hash and prefix type (I think!) I can't test it here. i_?db*.U now all check for an associated function before deciding to include or not the header. MANIFEST MANIFEST.new Sorted & updated. Makefile.SH Some shells/makes bombed out on test -d lib/auto || mkdir lib/auto Use makedir instead. README Some additional notes that people won't read :-). cflags.SH Now calls $startsh. Weird things were happening on Intergraph, and this might be related. config.H Updated. config_h.SH Regenerated. deb.c Varargs dependencies on STANDARD_C replaced by I_STDARG. doop.c quad stuff. ext/DB_File/DB_File.xs Use the new DB_Hash_t and DB_Prefix_t symbols. ext/SDBM_File/sdbm/sdbm.h Fix #defines to be more robust. mg.c Replace VOIDSIG by metaconfig's Signal_t. opcode.h opcode.pl semop only takes 2 arguments, not 3. perl.c Better guard on getenv() prototype. A hint file can use this, if necessary. Me, I think some compilers are just too picky. perl.h The (very) beginnings of some Quad support. See above. Remove the very troublesome sprintf() prototype. Since we don't _use_ the return value anyway (since it's not portable) this should be o.k. The problem was that some systems CAN_PROTOTYPE but include char *sprintf(); in <stdio.h>. That's incompatible with the version we used to have in perl.h. Most people have a prototype for sprintf() in <stdio.h>. Those that don't probably can get by without it anyway. Protect the timesbuf by the specific HAS_TIMES test. Some older gcc-2.something/Solaris 2.something installations apparently don't have times. pp.c More quad stuff. pp_ctl.c s/STANDARD_C/I_STDARG/ for varargs stuff. pp_sys.c use Signal_t. proto.h Update to match new metaconfig names. util.c s/STANDARD_C/I_STDARG/ for varargs stuff. comment out <unistd.h>. A pause prototype was causing problems on some systems. vms/config.vms Changed to use Signal_t.
* perl 5.000perl-5.000Larry Wall1994-10-171-96/+94
| | | | | | | | | | | [editor's note: this commit combines approximate 4 months of furious releases of Andy Dougherty and Larry Wall - see pod/perlhist.pod for details. Andy notes that; Alas neither my "Irwin AccuTrack" nor my DC 600A quarter-inch cartridge backup tapes from that era seem to be readable anymore. I guess 13 years exceeds the shelf life for that backup technology :-(. ]
* perl 5.0 alpha 9perl-5a9Larry Wall1994-05-041-10/+6
| | | | [editor's note: the sparc executables have not been included, and emacs backup files have been removed]
* perl 5.0 alpha 8Andy Dougherty1994-04-041-45/+45
| | | | | [the last one taken from the September '94 InfoMagic CD; a similar style of cleanup as the previous commits was performed]
* perl 5.0 alpha 6Larry Wall1994-03-181-41/+56
| | | | [editor's note: cleaned up from the September '94 InfoMagic CD, just like the last commit]
* perl 5.0 alpha 5Larry Wall1993-12-101-0/+18
| | | | | | [editor's note: the sparc executables have not been included, and emacs backup files and other cruft such as patch backup files have been removed. This was reconstructed from a tarball found on the September 1994 InfoMagic CD]
* perl 5.0 alpha 4Larry Wall1993-11-101-38/+45
| | | | | | | [editor's note: the sparc executables have not been included, and emacs backup files have been removed. This was reconstructed from a tarball found on the September 1994 InfoMagic CD; the date of this is approximate]
* perl 5.0 alpha 3Larry Wall1993-10-101-5/+5
| | | | | [editor's note: the sparc executables have not been included, and emacs backup files have been removed]
* perl 5.0 alpha 2perl-5a2Larry Wall1993-10-071-441/+238
| | | | [editor's note: from history.perl.org. The sparc executables originally included in the distribution are not in this commit.]
* perl 4.0 patch 34: (combined patch)Larry Wall1992-06-111-2/+5
| | | | | | Here's the typical cleanup patch that follows any large set of patches. My testing organization is either too large or too small, depending on how you look at it, sigh...
* perl 4.0 patch 32: patch #20, continuedLarry Wall1992-06-081-41/+88
| | | | See patch #20.
* perl 4.0 patch 19: (combined patch)Larry Wall1991-11-111-24/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ok, here's the cleanup patch I suggested you wait for. Have at it... Subject: added little-endian pack/unpack options This is the only enhancement in this patch, but it seemed unlikely to bust anything else, and added functionality that it was very difficult to do any other way. Compliments of David W. Sanderson. Subject: op/regexp.t failed from missing arg to bcmp() Subject: study was busted by 4.018 Subject: sort $subname was busted by changes in 4.018 Subject: default arg for shift was wrong after first subroutine definition Things that broke in 4.018. Shame on me. Subject: do {$foo ne "bar";} returned wrong value A bug of long standing. How come nobody saw this one? Or if you did, why didn't you report it before now? Or if you did, why did I ignore you? :-) Subject: some machines need -lsocket before -lnsl Subject: some earlier patches weren't propagated to alternate 286 code Subject: compile in the x2p directory couldn't find cppstdin Subject: more hints for aix, isc, hp, sco, uts Subject: installperl no longer updates unchanged library files Subject: uts wrongly defines S_ISDIR() et al Subject: too many preprocessors can't expand a macro right in #if The usual pastiche of portability kludges. Subject: deleted some unused functions from usersub.c And fixed the spelling of John Macdonald's name, and included his suggested workaround for a certain vendor's stdio bug... Subject: added readdir test Subject: made op/groups.t more reliable Subject: added test for sort $subname to op/sort.t Subject: added some hacks to op/stat.t for weird filesystem architectures Improvements (hopefully) to the regression tests.
* perl 4.0 patch 17: patch #11, continuedLarry Wall1991-11-051-25/+155
| | | | See patch #11.
* perl 4.0 patch 9: patch #4, continuedLarry Wall1991-06-061-12/+30
| | | | See patch #4.
* perl 4.0 patch 2: Patch 1 continuedLarry Wall1991-04-111-8/+10
|
* perl 4.0.00: (no release announcement available)perl-4.0.00Larry Wall1991-03-211-88/+93
| | | | So far, 4.0 is still a beta test version. For the last production version, look in pub/perl.3.0/kits@44.
* perl 3.0 patch #44 patch #42, continuedperl-3.044Larry Wall1991-01-111-4/+8
| | | | See patch #42.
* perl 3.0 patch #40 patch #38, continuedLarry Wall1990-11-091-5/+22
| | | | See patch #38.
* perl 3.0 patch #37 (combined patch)Larry Wall1990-10-191-6/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | I tried to take the strlen of an integer on systems without wait4() or waitpid(). For some reason this didn't work too well... In hash.c there was a call to dbm_nextkey() which needed to be ifdefed on old dbm systems. A pattern such as /foo.*bar$/ was wrongly optimized to do tail matching on "foo". This was a longstanding bug that was unmasked by patch 36. Some systems have some SYS V IPC but not all of it. Configure now figures this out. Patch 36 put the user's PATH in front of Configures, but to make it work right I needed to change all calls of loc to ./loc in Configure. $cryptlib needed to be mentioned in the Makefile. Apollo 10.3 and Sun 3.5 have some compilation problems, so I mentioned them in README. Cray has weird restrictions on setjmp locations--you can't say if (result = setjmp(...)) Random typos and cleanup.
* perl 3.0 patch #36 patch #29, continuedLarry Wall1990-10-151-38/+81
| | | | See patch #29.
* perl 3.0 patch #28 (combined patch)Larry Wall1990-08-131-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Certain systems, notable Ultrix, set the close-on-exec flag by default on dup'ed file descriptors. This is anti-social when you're creating a new STDOUT. The flag is now forced off for STDIN, STDOUT and STDERR. Some yaccs report 29 shift/reduce conflicts and 59 reduce/reduce conflicts, while other yaccs and bison report 27 and 61. The Makefile now says to expect either thing. I'm not sure if there's a bug lurking there somewhere. The defined(@array) and defined(%array) ended up defining the arrays they were trying to determine the status of. Oops. Using the status of NSIG to determine whether <signal.h> had been included didn't work right on Xenix. A fix seems to be beyond Configure at the moment, so we've got some OS dependent #ifdefs in there. There were some syntax errors in the new code to determine whether it is safe to emulate rename() with unlink/link/unlink. Obviously heavily tested code... :-) Patch 27 introduced the possibility of using identifiers as unquoted strings, but the code to warn against the use of totally lowercase identifiers looped infinitely. I documented that you can't interpolate $) or $| in pattern. It was actually implied under s///, but it should have been more explicit. Patterns with {m} rather than {m,n} didn't work right. Tests io.fs and op.stat had difficulties under AFS. They now ignore the tests in question if they think they're running under /afs. The shift/reduce expectation message was off for a2p's Makefile.
* perl 3.0 patch #27 patch #19, continuedLarry Wall1990-08-081-14/+121
| | | | See patch #19.
* perl 3.0 patch #18 patch #16, continuedLarry Wall1990-03-271-1/+26
| | | | See patch #16.
* perl 3.0 patch #12 patch #9, continuedLarry Wall1990-02-281-4/+80
| | | | See patch #9.
* perl 3.0 patch #8 patch 7 continuedLarry Wall1989-12-211-4/+4
| | | | See patch 7.
* perl 3.0 patch #6 patch 5 continuedLarry Wall1989-11-171-14/+20
| | | | See patch 5.
* perl 3.0 patch #4 Patch #2 continuedLarry Wall1989-11-101-2/+37
|
* perl 3.0: (no announcement message available)perl-3.000Larry Wall1989-10-181-189/+806
| | | | | | | | | | | | | | A few of the new features: (18 Oct) * Perl can now handle binary data correctly and has functions to pack and unpack binary structures into arrays or lists. You can now do arbitrary ioctl functions. * You can now pass things to subroutines by reference. * Debugger enhancements. * An array or associative array may now appear in a local() list. * Array values may now be interpolated into strings. * Subroutine names are now distinguished by prefixing with &. You can call subroutines without using do, and without passing any argument list at all. * You can use the new -u switch to cause perl to dump core so that you can run undump and produce a binary executable image. Alternately you can use the "dump" operator after initializing any variables and such. * You can now chop lists. * Perl now uses /bin/csh to do filename globbing, if available. This means that filenames with spaces or other strangenesses work right. * New functions: mkdir and rmdir, getppid, getpgrp and setpgrp, getpriority and setpriority, chroot, ioctl and fcntl, flock, readlink, lstat, rindex, pack and unpack, read, warn, dbmopen and dbmclose, dump, reverse, defined, undef.
* perl 2.0 (no announcement message available)perl-2.0Larry Wall1988-06-051-27/+335
| | | | | | | | | | | | | | | | | | | | | | | | Some of the enhancements from Perl1 included: * New regexp routines derived from Henry Spencer's. o Support for /(foo|bar)/. o Support for /(foo)*/ and /(foo)+/. o \s for whitespace, \S for non-, \d for digit, \D nondigit * Local variables in blocks, subroutines and evals. * Recursive subroutine calls are now supported. * Array values may now be interpolated into lists: unlink 'foo', 'bar', @trashcan, 'tmp'; * File globbing. * Use of <> in array contexts returns the whole file or glob list. * New iterator for normal arrays, foreach, that allows both read and write. * Ability to open pipe to a forked off script for secure pipes in setuid scripts. * File inclusion via do 'foo.pl'; * More file tests, including -t to see if, for instance, stdin is a terminal. File tests now behave in a more correct manner. You can do file tests on filehandles as well as filenames. The special filetests -T and -B test a file to see if it's text or binary. * An eof can now be used on each file of the <> input for such purposes as resetting the line numbers or appending to each file of an inplace edit. * Assignments can now function as lvalues, so you can say things like ($HOST = $host) =~ tr/a-z/A-Z/; ($obj = $src) =~ s/\.c$/.o/; * You can now do certain file operations with a variable which holds the name of a filehandle, e.g. open(++$incl,$includefilename); $foo = <$incl>; * Warnings are now available (with -w) on use of uninitialized variables and on identifiers that are mentioned only once, and on reference to various undefined things. * There is now a wait operator. * There is now a sort operator. * The manual is now not lying when it says that perl is generally faster than sed. I hope.
* perl 1.0 patch 8: perl needed an eval operator and a symbolic debuggerLarry Wall1988-01-271-1/+9
| | | | | | | | | | | I didn't add an eval operator to the original perl because I hadn't thought of any good uses for it. Recently I thought of some. Along with creating the eval operator, this patch introduces a symbolic debugger for perl scripts, which makes use of eval to interpret some debugging commands. Having eval also lets me emulate awk's FOO=bar command line behavior with a line such as the one a2p now inserts at the beginning of translated scripts.
* a "replacement" for awk and sedperl-1.0Larry Wall1987-12-181-0/+263
[ Perl is kind of designed to make awk and sed semi-obsolete. This posting will include the first 10 patches after the main source. The following description is lifted from Larry's manpage. --r$ ] Perl is a interpreted language optimized for scanning arbitrary text files, extracting information from those text files, and printing reports based on that information. It's also a good language for many system management tasks. The language is intended to be practical (easy to use, efficient, complete) rather than beautiful (tiny, elegant, minimal). It combines (in the author's opinion, anyway) some of the best features of C, sed, awk, and sh, so people familiar with those languages should have little difficulty with it. (Language historians will also note some vestiges of csh, Pascal, and even BASIC-PLUS.) Expression syntax corresponds quite closely to C expression syntax. If you have a problem that would ordinarily use sed or awk or sh, but it exceeds their capabilities or must run a little faster, and you don't want to write the silly thing in C, then perl may be for you. There are also translators to turn your sed and awk scripts into perl scripts.