summaryrefslogtreecommitdiff
path: root/pp_hot.c
Commit message (Collapse)AuthorAgeFilesLines
* This is my patch patch.1i for perl5.001.Andy Dougherty1995-05-301-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.1b: [byacc deps fix, set*id fixes, x2p/walk.c emit_split()Andy Dougherty1995-03-311-22/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fix] This is my patch patch.1b for perl5.001. [Actually, that's a lie. This is just a reposting of two of my patches (removing some byacc dependencies and fixing some set*id stuff) + one version of the x2p/walk.c emit_split() patch. I've just usurped the letter 'b' to fit in my patch sequence. You probably have already applied these as well, but again here they are all packaged up nice and neatly for storage on ftp sites.] Here's one possible solution to the byacc problem. Short summary: make will think your perly.[ch] are out of date because perly.c.diff has changed. They aren't really out of date, but the ordering of the timestamps in the distribution fools make. I had put some traps in perly.fixer to check to make sure that everything got run only if you ran the same version of byacc (1.8) as Larry, but the traps aren't good enough: There's a Cygnus version of byacc out there that also calls itself 1.8 (with a +Cygnus xxx note attached). I don't think I'll ever be able to reliably detect all mutant byacc's, so the safest course of action seems to be to never run byacc. (Yes, the perly.fixer check could be a _lot_ smarter. Volunteers?) This simple-minded fix just puts in a perly.c: perly.y - touch perly.c perly.h: perly.y - touch perly.h to bring perly.[ch] up to date, if needed. The '-' are in case your source is read-only. It also does the same trick in x2p/Makefile.SH. WARNING! Danger! Larry, if you do this, it means you have to explicitly call make run_byacc whenever you change perly.y, perly.c.diff, or cd x2p; make run_byacc if you change x2p/a2p.y. However, it might be worth it. I leave it up to you.
* [fix s/// memory leak]Larry Wall1995-03-151-0/+1
| | | | | | In fixing another bug I installed a nasty memory leak in s///. Here's the fix. Larry
* Perl 5.001perl-5.001Larry Wall1995-03-121-50/+116
| | | | [See the Changes file for a list of changes]
* perl5.000 patch.0g: [various portability fixes, and use latest metaconfig ↵Andy Dougherty1995-01-181-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-0/+1792
[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 :-(. ]