Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

perl 5.0 alpha 8

[the last one taken from the September '94 InfoMagic CD; a similar
style of cleanup as the previous commits was performed]
  • Loading branch information...
commit 2304df62caa7d9be70e8b8bcdb454e139c9c103d 1 parent 8990e30
Andy Dougherty authored
Showing with 25,793 additions and 3,242 deletions.
  1. +4 −0 .config/README
  2. +1 −0  .config/instruct
  3. +72 −0 Bugs/arraynotok
  4. +4 −0 Bugs/clearmyarray
  5. +1 −0  Bugs/clobberref
  6. +2 −0  Bugs/delete_env
  7. +7 −0 Bugs/formatsub
  8. +37 −0 Bugs/lcsort
  9. +6 −0 Bugs/lcsortdump
  10. +17 −0 Bugs/mig
  11. +1 −0  Bugs/myforeach
  12. +12 −0 Bugs/numkey
  13. +2 −0  Bugs/signedbits
  14. +1 −0  Bugs/splitdump
  15. +1 −0  Bugs/splitscalar
  16. +107 −0 Bugs/subform
  17. +2 −0  Bugs/substrdump
  18. +1 −0  Bugs/zeroanonref
  19. +5,689 −0 Configure
  20. +13 −0 HelpWanted
  21. +89 −36 MANIFEST
  22. +449 −0 MANIFEST.new
  23. +110 −201 Makefile
  24. +325 −0 Makefile.SH
  25. +10 −5 NDBM_File.c
  26. +10 −5 ODBM_File.c
  27. +25 −0 Obsolete
  28. +3,126 −129 POSIX.c
  29. +1 −8 README
  30. +64 −0 README.Conf
  31. +47 −42 SDBM_File.c
  32. +169 −0 TCL
  33. +6 −1 Todo
  34. +48 −0 U/Extensions.U
  35. +260 −0 U/Loc.U
  36. +284 −0 U/Oldconfig.U
  37. +15 −0 U/README.U
  38. +119 −0 U/cc.U
  39. +241 −0 U/ccflags.U
  40. +86 −0 U/d_casti32.U
  41. +59 −0 U/d_isascii.U
  42. +39 −0 U/d_setlocale.U
  43. +122 −0 U/d_strerror.U
  44. +66 −0 U/dlsrc.U
  45. +60 −0 U/gidtype.U
  46. +58 −0 U/groupstype.U
  47. +37 −0 U/i_dlfcn.U
  48. +297 −0 U/libc.U
  49. +83 −0 U/libpth.U
  50. +132 −0 U/libs.U
  51. +69 −0 U/libyacc.U
  52. +101 −0 U/mallocsrc.U
  53. +124 −0 U/prototype.U
  54. +161 −0 U/voidflags.U
  55. +91 −0 U/yacc.U
  56. +361 −0 Wanted
  57. +29 −0 autosplit
  58. +27 −3 bar
  59. +500 −0 bar.out
  60. +30 −1 cflags
  61. +20 −32 cflags.SH
  62. +596 −486 config.h
  63. +214 −147 config.sh
  64. +605 −492 config_h.SH
  65. +1 −1  configpm
  66. +1 −0  cppstdin
  67. +0 −8 deb.c
  68. +3 −3 dl.c
  69. +5 −5 doio.c
  70. +10 −1 dump.c
  71. +4 −0 embed.h
  72. +3,048 −0 eval.c.save
  73. +267 −0 ext/dbm/SDBM_File.c.bak
  74. +2 −1  ext/dbm/typemap
  75. +3 −3 ext/dl/dl.c
  76. +2,421 −29 ext/posix/POSIX.xs
  77. +7 −4 ext/posix/typemap
  78. +47 −0 ext/typemap
  79. +252 −198 ext/xsubpp
  80. +529 −0 ext/xsubpp.bak
  81. +1 −1  ext/xvarpp
  82. +15 −9 foo
  83. +1 −1  gv.c
  84. +7 −7 h2ph
  85. +7 −1 handy.h
  86. +2 −2 hints/isc_3_2_2.sh
  87. +1 −1  hints/isc_3_2_3.sh
  88. +10 −0 hints/solaris_2_2.sh
  89. +10 −0 hints/solaris_2_3.sh
  90. +1 −0  hints/sunos_4_1_2.sh
  91. +1 −0  hints/sunos_4_1_3.sh
  92. +14 −14 hvdbm.h
  93. +29 −3 internals
  94. +2 −0  interp.sym
  95. +214 −147 lib/Config.pm
  96. +0 −2  lib/English.pm
  97. +19 −2 lib/FileHandle.pm
  98. +1,034 −11 lib/POSIX.pm
  99. +9 −0 lib/auto/POSIX/_exit
  100. +2 −0  lib/auto/README
  101. +154 −0 lib/dotsh.pl.art
  102. +146 −0 lib/quotewords.pl.art
  103. +285 −0 lib/soundex.pl.art
  104. +0 −20 main.c
  105. +4 −5 make.out
  106. +15 −14 makedepend
  107. +1 −0  makedepend.SH
  108. +5 −5 makedir
  109. +852 −903 makefile
  110. +6 −6 malloc.c
  111. +6 −12 mg.c
  112. +39 −0 miniperlmain.c
  113. +1 −2  op.c
  114. +16 −10 perl.c
  115. +27 −12 perl.h
  116. +1 −1  perl.man
  117. +42 −0 perlmain.c
  118. +3 −0  perlmain.x
  119. +591 −0 perly.y.save
  120. +15 −20 pp.c
  121. +5 −3 proto.h
  122. +2 −2 regcomp.h
  123. +4 −3 regexec.c
  124. +26 −29 sv.c
  125. +3 −3 sv.h
  126. +4 −0 t/SDBM_File.so
  127. +2 −2 t/lib/english.t
  128. +18 −5 toke.c
  129. +11 −0 unobsolete
  130. +45 −45 util.c
  131. +44 −0 writemain
  132. +6 −6 x2p/Makefile
  133. +3 −1 x2p/a2p.y
  134. +19 −15 x2p/find2perl
  135. +46 −49 x2p/makefile
  136. +22 −27 x2p/malloc.c
View
4 .config/README
@@ -0,0 +1,4 @@
+This directory created by Configure to save information that should
+persist across sessions.
+
+You may safely delete it if you wish.
View
1  .config/instruct
@@ -0,0 +1 @@
+lwall
View
72 Bugs/arraynotok
@@ -0,0 +1,72 @@
+#!/usr/bin/perl
+
+#
+# I thought that I would try out some perl 5 features for the first time.
+# So I wrote a small program, included below. It died, and the partial
+# output looks very much like what I wanted to accompish. Even if the program
+# had not died, there is still the problem that no output was given under the
+# label "sonia:".
+#
+# Since the output is close, perhaps a bug lurks within...(?) I'm using the
+# compiled binary provided in the perl5a6 tar file. I tried to write this
+# post so it could be given to perl with the -x flag. You should get the
+# output I describe here --
+# James Bence
+# jbence@math.ucla.edu
+#
+# Output:
+#
+# Pushed ege into @sonia
+# Pushed caflisch into @joshua
+# Pushed catalina into @julia
+# Pushed lunnon into @sonia
+# Pushed m270alg into @redwood
+# Pushed harten into @joshua
+# Pushed ycc into @joshua
+# Pushed m270wsc into @redwood
+#
+#
+# joshua:
+# caflisch harten ycc
+#
+# sonia:
+#
+#
+# redwood:
+# m270alg m270wsc
+#
+# julia:
+# Segmentation fault
+#
+#
+
+require 5.000;
+
+while (<DATA>) {
+ ($login,$host) = split;
+ push(@{$hostref{$host}},$login); # t/op/ref.t (22) suggests this is ok.
+ print "Pushed $login into \@$host\n";
+}
+
+print"\n\n";
+
+while ( ($host,$ref) = each(%hostref)) {
+ print "$host:\n ";
+ $count = 0;
+ foreach $person (@{$ref}) {
+ print $person, " ";
+ $count++;
+ if ($count % 5 == 0) { print "\n "; }
+ }
+ print "\n\n";
+}
+
+__END__
+ege sonia
+caflisch joshua
+catalina julia
+lunnon sonia
+m270alg redwood
+harten joshua
+ycc joshua
+m270wsc redwood
View
4 Bugs/clearmyarray
@@ -0,0 +1,4 @@
+@a = ( 5, 6, 7, 8);
+&foo(1, 2, @a);
+
+sub foo { my($a, $b, @c) = @_; print scalar(@c), "\n"; }
View
1  Bugs/clobberref
@@ -0,0 +1 @@
+$B = [X, Y]; $B = 1; print $B
View
2  Bugs/delete_env
@@ -0,0 +1,2 @@
+delete $ENV{TERM};
+system "env";
View
7 Bugs/formatsub
@@ -0,0 +1,7 @@
+#!./perl
+
+format STDOUT {
+ formline "@<<<<<<<<<<<<< @>>>>>>>>>>>\n", "foo", "bar";
+}
+
+write;
View
37 Bugs/lcsort
@@ -0,0 +1,37 @@
+Article 20341 of comp.lang.perl:
+Path: netlabs!news.cerf.net!mvb.saic.com!MathWorks.Com!news.kei.com!hookup!swrinde!gatech!taco.cc.ncsu.edu!taco.cc.ncsu.edu!setzer
+From: setzer@math.ncsu.edu (William Setzer)
+Newsgroups: comp.lang.perl
+Subject: perl5a6 bug: sort sub @ary
+Date: 30 Mar 94 13:49:20
+Organization: The Chebychev Church of Probability
+Lines: 23
+Distribution: world
+Message-ID: <SETZER.94Mar30134920@math.math.ncsu.edu>
+NNTP-Posting-Host: math.ncsu.edu
+
+Ok, here's a weird one. Using the precompiled perl5a6 binary for the
+sun, the following dumps core:
+----
+@S = (0, 1, 2, 3);
+for ("A", "D", "b", "c") { $foo{$i++} = $_; }
+# for (sort { lc($foo{$a}) cmp lc($foo{$b}) } @S) { print $foo{$_}, "\n"; }
+for (sort Alpha @S) { print $foo{$_}, "\n"; }
+
+sub Alpha { lc($foo{$a}) cmp lc($foo{$b}); }
+----
+[Output]
+Segmentation fault (core dumped)
+----
+However, if you comment out the "sort Alpha" and uncomment the "sort
+{lc(...) cmp lc(...) }" line, everything works as expected. Also note
+that if you uncomment both "sort"s, everything also works as expected.
+Do-do-do-do [twilight zone music :-].
+
+William
+
+PS: Does anyone actually care about these bug reports? I thought I
+ remember Larry saying that he preferred them in c.l.p., but it
+ wouldn't be the first time my memory has fritzed.
+
+
View
6 Bugs/lcsortdump
@@ -0,0 +1,6 @@
+@S = (0, 1, 2, 3);
+for ("A", "D", "b", "c") { $foo{$i++} = $_; }
+# for (sort { lc($foo{$a}) cmp lc($foo{$b}) } @S) { print $foo{$_}, "\n"; }
+for (sort Alpha @S) { print $foo{$_}, "\n"; }
+
+sub Alpha { lc($foo{$a}) cmp lc($foo{$b}); }
View
17 Bugs/mig
@@ -0,0 +1,17 @@
+#!./perl
+
+$foo = <<EOF;
+Subject: foobar
+From: baz
+EOF
+
+$* = 1;
+
+$pat = '^([*+&!]*)(Subject:)';
+#$pat =~ s/([a-zA-Z])/[\u$1\l$1]/g;
+#print $pat;
+
+$foo =~ /$pat/g;
+
+print $', "\n";
+
View
1  Bugs/myforeach
@@ -0,0 +1 @@
+sub foo { my $i; for $i (@bar) { } }
View
12 Bugs/numkey
@@ -0,0 +1,12 @@
+$zz = { 1, 9 };
+print %$zz; # wrong; outputs 9
+
+print "\n";
+
+$zz = { "1", 9 };
+print %$zz; # ok; outputs 19
+
+print "\n";
+
+%xx = ( 1, 9 );
+print %xx; # ok; outputs 19
View
2  Bugs/signedbits
@@ -0,0 +1,2 @@
+printf "%x\n", 0x40000000 | 0x00000010;
+printf "%x\n", 0x80000000 | 0x00000010;
View
1  Bugs/splitdump
@@ -0,0 +1 @@
+0 + split
View
1  Bugs/splitscalar
@@ -0,0 +1 @@
+$_ = "a b c" ; $a = ( @b = split ) ; print "$a\n@b\n"
View
107 Bugs/subform
@@ -0,0 +1,107 @@
+Replied: Wed, 02 Mar 94 09:29:46 -0800
+Replied: brad_figg@rainbow.mentorg.com ("Brad Figg")
+Return-Path: brad_figg@rainbow.mentorg.com
+Return-Path: <brad_figg@rainbow.mentorg.com>
+Received: from mgc.mentorg.com by netlabs.com (4.1/SMI-4.1)
+ id AA15524; Wed, 2 Mar 94 09:17:50 PST
+Received: from rainbow.mentorg.com by mgc.mentorg.com with SMTP
+ (16.6/15.5+MGC-TD 2.20) id AA04359; Wed, 2 Mar 94 09:16:55 -0800
+Received: from wv.mentorg.com by rainbow.mentorg.com with SMTP
+ (15.11.1.6/15.5+MGC-TD 2.08) id AA22830; Wed, 2 Mar 94 09:16:53 -0800
+Received: from em-wv02.MENTORG.COM by wv.mentorg.com (8.6.4/CF5.11R)
+ id JAA18865; Wed, 2 Mar 1994 09:16:51 -0800
+Received: from cynic.MENTORG.COM by em-wv02.MENTORG.COM (4.1/CF3.4)
+ id AA23300; Wed, 2 Mar 94 09:16:50 PST
+Received: by cynic.MENTORG.COM (4.1/CF3.4)
+ id AA24503; Wed, 2 Mar 94 09:16:50 PST
+From: brad_figg@rainbow.mentorg.com ("Brad Figg")
+Message-Id: <9403020916.ZM24501@cynic>
+Date: Wed, 2 Mar 1994 09:16:50 -0800
+X-Mailer: Z-Mail (3.0.0 15dec93)
+To: lwall@netlabs.com
+Subject: Perl5 Alpha 6 bug (subs & formats)
+Content-Type: text/plain; charset=us-ascii
+Mime-Version: 1.0
+
+
+The following works just fine as is with Perl 4 but doesn't work with
+Perl5 Alpha 6 unless the format lines are moved outside the sub block.
+
+
+Brad
+
+p.s. I'm not currently at a point where I can make the actual offer
+ but I'm just asking if you have any interest. I have access to
+ 'Purify' and 'Quantify' from Pure Software. I was thinking of
+ building Perl5 with these just to see what I'd get. Would you
+ be interested in the results?
+
+
+-----------------------Error.pl---------------------------------
+######################################################################
+## Package Variables
+##
+
+package Error;
+
+push( @main'Versions, '$Id: Error.pl,v 1.3 1994/02/13 00:26:00 bradf Exp $' );
+
+$Strings[ ($None = 0) ] =
+ "Everythings OK";
+$Strings[ ($BadFileOpen = 0) ] =
+ "I was unable to open the file \'%s\' due to:\n$!";
+$Strings[ ($NoVersion = 0) ] =
+ "Unable to read the first four bytes from the file." .
+ " This probably means it is an empty file.";
+
+######################################################################
+##
+## Emsg
+##
+## Print a formatted error message to STDERR.
+##
+## Args: 2
+## 1. An error message that may contain printf formatting strings.
+## 2. A list of arguments to be used for the format string
+## expansions.
+##
+## Returns:
+##
+## if successful: none
+## if unsuccessful: none
+##
+## Calls:
+##
+## Requires:
+##
+## Notes:
+##
+
+sub Emsg
+ {
+ local( $String, @Args ) = @_;
+ local( $Err );
+
+format EFIRSTLINE =
+ *** Error: ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+$_
+ ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<~~
+$_
+.
+
+format EBODY =
+ ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<~~
+$_
+.
+
+
+ $~ = 'EFIRSTLINE';
+ $Err = sprintf( $String, @Args );
+ foreach (split( "\n", $Err )) {
+ if ( $_ eq '' ) { print( "\n" ); }
+ write;
+ $~ = 'EBODY';
+ }
+ }
+[Acked]
+
View
2  Bugs/substrdump
@@ -0,0 +1,2 @@
+ $a="abc";
+ substr(\$a,1,0)='a';
View
1  Bugs/zeroanonref
@@ -0,0 +1 @@
+$z = \'23'
View
5,689 Configure
5,689 additions, 0 deletions not shown
View
13 HelpWanted
@@ -0,0 +1,13 @@
+Anything in Todo that strikes your fancy and I agree to the design of
+
+Configure support
+ Dynamic loading
+ libperl.so
+ Drop-in module directories
+
+Test suite enhancement
+ POSIX
+
+Extension interface
+ Documentation
+ xvarpp
View
125 MANIFEST
@@ -1,19 +1,18 @@
Artistic The "Artistic License"
-Configure Run this first
Copying The GNU General Public License
EXTERN.h Included before foreign .h files
INTERN.h Included before domestic .h files
+Makefile.SH A script that generates Makefile
MANIFEST This list of files
-Makefile.SH Precursor to Makefile
-PACKINGLIST Which files came from which kits
+NDBM_File.c
+ODBM_File.c
+POSIX.c
README The Instructions
README.ncr Special instructions for NCR
README.uport Special instructions for Microports
README.xenix Special instructions for Xenix
-Wishlist Some things that may or may not happen
-arg.h Public declarations for the above
-array.c Numerically subscripted arrays
-array.h Public declarations for the above
+SDBM_File.c
+XSUB.h
atarist/FILES
atarist/README.ST
atarist/RESULTS
@@ -45,19 +44,23 @@ atarist/usub/acurses.mus
atarist/usub/makefile.st
atarist/usub/usersub.c
atarist/wildmat.c
+av.c
+av.h
+bar.pm
c2ph.SH program to translate dbx stabs to perl
c2ph.doc documentation for c2ph
cflags.SH A script that emits C compilation flags per file
client A client to test sockets
-cmd.c Command interpreter
-cmd.h Public declarations for the above
config.H Sample config.h
-config_h.SH Produces config.h
config_c++.h TEMP FILE
-cons.c Routines to construct cmd nodes of a parse tree
-consarg.c Routines to construct arg nodes of a parse tree
+config_h.SH Produces config.h
+cop.h
+cv.h
+deb.c
+dl.c
+dlperl/dlperl.c
+dlperl/usersub.c
doSH Script to run all the *.SH files
-doarg.c Scalar expression evaluation
doio.c I/O operations
doop.c Support code for various operations
dosish.h
@@ -96,6 +99,7 @@ eg/sysvipc/ipcmsg Example of SYS V IPC message queues
eg/sysvipc/ipcsem Example of Sys V IPC semaphores
eg/sysvipc/ipcshm Example of Sys V IPC shared memory
eg/travesty A program to print travesties of its input text
+eg/unuc.pats
eg/van/empty A program to empty the trashcan
eg/van/unvanish A program to undo what vanish does
eg/van/vanexp A program to expire vanished files
@@ -106,11 +110,35 @@ emacs/perldb.el Emacs debugging
emacs/perldb.pl Emacs debugging
emacs/tedstuff Some optional patches
embed_h.SH
-eval.c The expression evaluator
-form.c Format processing
+ext/dbm/GDBM_File.c
+ext/dbm/NDBM_File.c
+ext/dbm/ODBM_File.c
+ext/dbm/SDBM_File.c
+ext/dbm/sdbm/.pure
+ext/dbm/sdbm/README.too
+ext/dbm/sdbm/dba.c
+ext/dbm/sdbm/dbd.c
+ext/dbm/sdbm/dbe.c
+ext/dbm/sdbm/dbm.c
+ext/dbm/sdbm/dbm.h
+ext/dbm/sdbm/dbu.c
+ext/dbm/sdbm/hash.c
+ext/dbm/sdbm/linux.patches
+ext/dbm/sdbm/pair.c
+ext/dbm/sdbm/pair.h
+ext/dbm/sdbm/readme.ps
+ext/dbm/sdbm/sdbm.c
+ext/dbm/sdbm/sdbm.h
+ext/dbm/sdbm/tune.h
+ext/dbm/sdbm/util.c
+ext/dl/dl.c
+ext/dl/eg/main.c
+ext/dl/eg/test.c
+ext/dl/eg/test1.c
form.h Public declarations for the above
gettest A little script to test the get* routines
-global.var
+gv.c
+gv.h
h2ph.SH A thing to turn C .h file into perl .ph files
h2pl/README How to turn .ph files into .pl files
h2pl/cbreak.pl cbreak routines using .ph
@@ -125,8 +153,6 @@ h2pl/mkvars Program to make .pl from .ph files
h2pl/tcbreak cbreak test routine using .ph
h2pl/tcbreak2 cbreak test routine using .pl
handy.h Handy definitions
-hash.c Associative arrays
-hash.h Public declarations for the above
hints/3b1.sh
hints/3b1cc
hints/3b2.sh
@@ -181,10 +207,21 @@ hints/unisysdynix.sh
hints/utekv.sh
hints/uts.sh
hints/vax.sh
+hv.c
+hv.h
+hvdbm.h
installperl Perl script to do "make install" dirty work
-interp.var
ioctl.pl Sample ioctl.pl
keywords.h
+lib/AutoLoader.pm
+lib/Config.pm
+lib/English.pm
+lib/Exporter.pm
+lib/FOOBAR.pm
+lib/FileHandle.pm
+lib/Hostname.pm
+lib/POSIX.pm
+lib/SDBM_File.pm
lib/abbrev.pl An abbreviation table builder
lib/assert.pl assertion and panic with stack trace
lib/bigfloat.pl An arbitrary precision floating point package
@@ -194,24 +231,31 @@ lib/cacheout.pl Manages output filehandles when you need too many
lib/chat2.pl Randal's famous expect-ish routines
lib/complete.pl A command completion subroutine
lib/ctime.pl A ctime workalike
+lib/dotsh.pl.art
lib/dumpvar.pl A variable dumper
lib/exceptions.pl catch and throw routines
lib/fastcwd.pl a faster but more dangerous getcwd
lib/find.pl A find emulator--used by find2perl
lib/finddepth.pl A depth-first find emulator--used by find2perl
lib/flush.pl Routines to do single flush
+lib/ftp.pl
lib/getcwd.pl a getcwd() emulator
lib/getopt.pl Perl library supporting option parsing
lib/getopts.pl Perl library supporting option parsing
+lib/hostname.pl
lib/importenv.pl Perl routine to get environment into variables
lib/look.pl A "look" equivalent
lib/newgetopt.pl A perl library supporting long option parsing
lib/open2.pl
+lib/open3.pl
lib/perldb.pl Perl debugging routines
lib/pwd.pl Routines to keep track of PWD environment variable
+lib/quotewords.pl.art
lib/shellwords.pl Perl library to split into words with shell quoting
+lib/soundex.pl.art
lib/stat.pl Perl library supporting stat function
lib/syslog.pl Perl library supporting syslogging
+lib/tainted.pl
lib/termcap.pl Perl library supporting termcap usage
lib/timelocal.pl Perl library supporting inverse of localtime, gmtime
lib/validate.pl Perl library supporting wholesale file mode validation
@@ -220,6 +264,8 @@ makedepend.SH Precursor to makedepend
makedir.SH Precursor to makedir
makefile.lib make libperl.a
malloc.c A version of malloc you might not want
+mg.c
+mg.h
msdos/Changes.dds Expanation of MS-DOS patches by Diomidis Spinellis
msdos/Makefile MS-DOS makefile
msdos/README.msdos Compiling and usage information
@@ -235,6 +281,8 @@ msdos/glob.c A command equivalent to csh glob
msdos/msdos.c MS-DOS ioctl, sleep, gete?[gu]if, spawn, aspawn
msdos/popen.c My_popen and my_pclose for MS-DOS
msdos/usage.c How to invoke perl under MS-DOS
+opcode.h
+opcode.pl
os2/Makefile Makefile for OS/2
os2/README.OS2 Notes for OS/2
os2/a2p.cs Compiler script for a2p
@@ -271,21 +319,27 @@ perl.c main()
perl.h Global declarations
perl.man The manual page(s)
perlsh A poor man's perl shell
+perly.c
+perly.c.byacc
+perly.c.diff
+perly.c.yacc
perly.fixer A program to remove yacc stack limitations
+perly.h
+perly.h.yacc
perly.y Yacc grammar for perl
-pp.h Push/Pop code defs
+perly.y.save
pp.c Push/Pop code
+pp.h Push/Pop code defs
proto.h
regcomp.c Regular expression compiler
regcomp.h Private declarations for above
regexec.c Regular expression evaluator
regexp.h Public declarations for the above
+scope.c
+scope.h
server A server to test sockets
-spat.h Search pattern declarations
-stab.c Symbol table stuff
-stab.h Public declarations for the above
-str.c String handling package
-str.h Public declarations for the above
+sv.c
+sv.h
t/README Instructions for regression tests
t/TEST The regression tester
t/base/cond.t See if conditionals work
@@ -313,13 +367,14 @@ t/io/inplace.t See if inplace editing works
t/io/pipe.t See if secure pipes work
t/io/print.t See if print commands work
t/io/tell.t See if file seeking works
-t/lib/big.t See if lib/bigint.pl works
+t/lib/bigint.t
+t/lib/english.t
+t/lib/sdbm.t
t/op/append.t See if . works
t/op/array.t See if array operations work
t/op/auto.t See if autoincrement et all work
t/op/chop.t See if chop works
t/op/cond.t See if conditional expressions work
-t/op/dbm.t See if dbm binding works
t/op/delete.t See if delete works
t/op/do.t See if subroutines work
t/op/each.t See if associative iterators work
@@ -338,6 +393,7 @@ t/op/list.t See if array lists work
t/op/local.t See if local works
t/op/magic.t See if magic variables work
t/op/mkdir.t See if mkdir works
+t/op/my.t
t/op/oct.t See if oct and hex work
t/op/ord.t See if ord works
t/op/pack.t See if pack and unpack work
@@ -347,32 +403,27 @@ t/op/range.t See if .. works
t/op/re_tests Input file for op.regexp
t/op/read.t See if read() works
t/op/readdir.t See if readdir() works
+t/op/ref.t
t/op/regexp.t See if regular expressions work
t/op/repeat.t See if x operator works
-t/op/s.t See if substitutions work
t/op/sleep.t See if sleep works
t/op/sort.t See if sort works
t/op/split.t See if split works
t/op/sprintf.t See if sprintf works
t/op/stat.t See if stat works
t/op/study.t See if study works
+t/op/subst.t
t/op/substr.t See if substr works
t/op/time.t See if time functions work
t/op/undef.t See if undef works
t/op/unshift.t See if unshift works
t/op/vec.t See if vectors work
t/op/write.t See if write works
+taint.c
+test.pl
toke.c The tokener
unixish.h
usersub.c User supplied (possibly proprietary) subroutines
-usub/Makefile Makefile for curseperl
-usub/README Instructions for user supplied subroutines
-usub/bsdcurses.mus what used to be curses.mus
-usub/curses.mus Glue routines for BSD curses
-usub/man2mus A manual page to .mus translator
-usub/mus A .mus to .c translator
-usub/pager A sample pager in curseperl
-usub/usersub.c An initialization file to call curses glue routines
util.c Utility routines
util.h Public declarations for the above
x2p/EXTERN.h Same as above
@@ -387,6 +438,7 @@ x2p/find2perl.SH A find to perl translator
x2p/handy.h Handy definitions
x2p/hash.c Associative arrays again
x2p/hash.h Public declarations for the above
+x2p/malloc.c
x2p/s2p.SH Sed to perl translator
x2p/s2p.man Manual page for sed to perl translator
x2p/str.c String handling package
@@ -394,3 +446,4 @@ x2p/str.h Public declarations for the above
x2p/util.c Utility routines
x2p/util.h Public declarations for the above
x2p/walk.c Parse tree walker
+Configure Portability tool
View
449 MANIFEST.new
@@ -0,0 +1,449 @@
+Artistic The "Artistic License"
+Copying The GNU General Public License
+EXTERN.h Included before foreign .h files
+INTERN.h Included before domestic .h files
+Makefile.SH A script that generates Makefile
+MANIFEST This list of files
+NDBM_File.c
+ODBM_File.c
+POSIX.c
+README The Instructions
+README.ncr Special instructions for NCR
+README.uport Special instructions for Microports
+README.xenix Special instructions for Xenix
+SDBM_File.c
+XSUB.h
+atarist/FILES
+atarist/README.ST
+atarist/RESULTS
+atarist/atarist.c
+atarist/config.h
+atarist/echo.c
+atarist/explain
+atarist/makefile.sm
+atarist/makefile.st
+atarist/osbind.pl
+atarist/perldb.diff
+atarist/perlglob.c
+atarist/test/binhandl
+atarist/test/ccon
+atarist/test/dbm
+atarist/test/err
+atarist/test/gdbm
+atarist/test/gdbm.t
+atarist/test/glob
+atarist/test/osexample.pl
+atarist/test/pi.pl
+atarist/test/printenv
+atarist/test/readme
+atarist/test/sig
+atarist/test/tbinmode
+atarist/usersub.c
+atarist/usub/README.ATARI
+atarist/usub/acurses.mus
+atarist/usub/makefile.st
+atarist/usub/usersub.c
+atarist/wildmat.c
+av.c
+av.h
+bar.pm
+c2ph.SH program to translate dbx stabs to perl
+c2ph.doc documentation for c2ph
+cflags.SH A script that emits C compilation flags per file
+client A client to test sockets
+config.H Sample config.h
+config_c++.h TEMP FILE
+cop.h
+cv.h
+deb.c
+dl.c
+dlperl/dlperl.c
+dlperl/usersub.c
+doSH Script to run all the *.SH files
+doio.c I/O operations
+doop.c Support code for various operations
+dosish.h
+dump.c Debugging output
+eg/ADB An adb wrapper to put in your crash dir
+eg/README Intro to example perl scripts
+eg/changes A program to list recently changed files
+eg/down A program to do things to subdirectories
+eg/dus A program to do du -s on non-mounted dirs
+eg/findcp A find wrapper that implements a -cp switch
+eg/findtar A find wrapper that pumps out a tar file
+eg/g/gcp A program to do a global rcp
+eg/g/gcp.man Manual page for gcp
+eg/g/ged A program to do a global edit
+eg/g/ghosts A sample /etc/ghosts file
+eg/g/gsh A program to do a global rsh
+eg/g/gsh.man Manual page for gsh
+eg/muck A program to find missing make dependencies
+eg/muck.man Manual page for muck
+eg/myrup A program to find lightly loaded machines
+eg/nih Script to insert #! workaround
+eg/relink A program to change symbolic links
+eg/rename A program to rename files
+eg/rmfrom A program to feed doomed filenames to
+eg/scan/scan_df Scan for filesystem anomalies
+eg/scan/scan_last Scan for login anomalies
+eg/scan/scan_messages Scan for console message anomalies
+eg/scan/scan_passwd Scan for passwd file anomalies
+eg/scan/scan_ps Scan for process anomalies
+eg/scan/scan_sudo Scan for sudo anomalies
+eg/scan/scan_suid Scan for setuid anomalies
+eg/scan/scanner An anomaly reporter
+eg/shmkill A program to remove unused shared memory
+eg/sysvipc/README Intro to Sys V IPC examples
+eg/sysvipc/ipcmsg Example of SYS V IPC message queues
+eg/sysvipc/ipcsem Example of Sys V IPC semaphores
+eg/sysvipc/ipcshm Example of Sys V IPC shared memory
+eg/travesty A program to print travesties of its input text
+eg/unuc.pats
+eg/van/empty A program to empty the trashcan
+eg/van/unvanish A program to undo what vanish does
+eg/van/vanexp A program to expire vanished files
+eg/van/vanish A program to put files in a trashcan
+eg/who A sample who program
+emacs/perl-mode.el Emacs major mode for perl
+emacs/perldb.el Emacs debugging
+emacs/perldb.pl Emacs debugging
+emacs/tedstuff Some optional patches
+embed_h.SH
+ext/dbm/GDBM_File.c
+ext/dbm/NDBM_File.c
+ext/dbm/ODBM_File.c
+ext/dbm/SDBM_File.c
+ext/dbm/sdbm/.pure
+ext/dbm/sdbm/README.too
+ext/dbm/sdbm/dba.c
+ext/dbm/sdbm/dbd.c
+ext/dbm/sdbm/dbe.c
+ext/dbm/sdbm/dbm.c
+ext/dbm/sdbm/dbm.h
+ext/dbm/sdbm/dbu.c
+ext/dbm/sdbm/hash.c
+ext/dbm/sdbm/linux.patches
+ext/dbm/sdbm/pair.c
+ext/dbm/sdbm/pair.h
+ext/dbm/sdbm/readme.ps
+ext/dbm/sdbm/sdbm.c
+ext/dbm/sdbm/sdbm.h
+ext/dbm/sdbm/tune.h
+ext/dbm/sdbm/util.c
+ext/dl/dl.c
+ext/dl/eg/main.c
+ext/dl/eg/test.c
+ext/dl/eg/test1.c
+form.h Public declarations for the above
+gettest A little script to test the get* routines
+gv.c
+gv.h
+h2ph.SH A thing to turn C .h file into perl .ph files
+h2pl/README How to turn .ph files into .pl files
+h2pl/cbreak.pl cbreak routines using .ph
+h2pl/cbreak2.pl cbreak routines using .pl
+h2pl/eg/sizeof.ph Sample sizeof array initialization
+h2pl/eg/sys/errno.pl Sample translated errno.pl
+h2pl/eg/sys/ioctl.pl Sample translated ioctl.pl
+h2pl/eg/sysexits.pl Sample translated sysexits.pl
+h2pl/getioctlsizes Program to extract types from ioctl.h
+h2pl/mksizes Program to make %sizeof array.
+h2pl/mkvars Program to make .pl from .ph files
+h2pl/tcbreak cbreak test routine using .ph
+h2pl/tcbreak2 cbreak test routine using .pl
+handy.h Handy definitions
+hints/3b1.sh
+hints/3b1cc
+hints/3b2.sh
+hints/aix_rs.sh
+hints/aix_rt.sh
+hints/altos486.sh
+hints/apollo_C6_7.sh
+hints/apollo_C6_8.sh
+hints/aux.sh
+hints/cray.sh
+hints/dgux.sh
+hints/dnix.sh
+hints/dynix.sh
+hints/fps.sh
+hints/genix.sh
+hints/greenhills.sh
+hints/hp9000_300.sh
+hints/hp9000_400.sh
+hints/hp9000_700.sh
+hints/hp9000_800.sh
+hints/hpux.sh
+hints/i386.sh
+hints/isc_3_2_2.sh
+hints/isc_3_2_3.sh
+hints/mc6000.sh
+hints/mips.sh
+hints/mpc.sh
+hints/ncr_tower.sh
+hints/next.sh
+hints/opus.sh
+hints/osf1.sh
+hints/sco_2_3_0.sh
+hints/sco_2_3_1.sh
+hints/sco_2_3_2.sh
+hints/sco_2_3_3.sh
+hints/sco_2_3_4.sh
+hints/sco_3.sh
+hints/sgi.sh
+hints/solaris_2_0.sh
+hints/stellar.sh
+hints/sunos_3_4.sh
+hints/sunos_3_5.sh
+hints/sunos_4_0_1.sh
+hints/sunos_4_0_2.sh
+hints/svr4.sh
+hints/ti1500.sh
+hints/titan.sh
+hints/ultrix_1.sh
+hints/ultrix_3.sh
+hints/ultrix_4.sh
+hints/unisysdynix.sh
+hints/utekv.sh
+hints/uts.sh
+hints/vax.sh
+hv.c
+hv.h
+hvdbm.h
+installperl Perl script to do "make install" dirty work
+ioctl.pl Sample ioctl.pl
+keywords.h
+lib/AutoLoader.pm
+lib/Config.pm
+lib/English.pm
+lib/Exporter.pm
+lib/FOOBAR.pm
+lib/FileHandle.pm
+lib/Hostname.pm
+lib/POSIX.pm
+lib/SDBM_File.pm
+lib/abbrev.pl An abbreviation table builder
+lib/assert.pl assertion and panic with stack trace
+lib/bigfloat.pl An arbitrary precision floating point package
+lib/bigint.pl An arbitrary precision integer arithmetic package
+lib/bigrat.pl An arbitrary precision rational arithmetic package
+lib/cacheout.pl Manages output filehandles when you need too many
+lib/chat2.pl Randal's famous expect-ish routines
+lib/complete.pl A command completion subroutine
+lib/ctime.pl A ctime workalike
+lib/dotsh.pl.art
+lib/dumpvar.pl A variable dumper
+lib/exceptions.pl catch and throw routines
+lib/fastcwd.pl a faster but more dangerous getcwd
+lib/find.pl A find emulator--used by find2perl
+lib/finddepth.pl A depth-first find emulator--used by find2perl
+lib/flush.pl Routines to do single flush
+lib/ftp.pl
+lib/getcwd.pl a getcwd() emulator
+lib/getopt.pl Perl library supporting option parsing
+lib/getopts.pl Perl library supporting option parsing
+lib/hostname.pl
+lib/importenv.pl Perl routine to get environment into variables
+lib/look.pl A "look" equivalent
+lib/newgetopt.pl A perl library supporting long option parsing
+lib/open2.pl
+lib/open3.pl
+lib/perldb.pl Perl debugging routines
+lib/pwd.pl Routines to keep track of PWD environment variable
+lib/quotewords.pl.art
+lib/shellwords.pl Perl library to split into words with shell quoting
+lib/soundex.pl.art
+lib/stat.pl Perl library supporting stat function
+lib/syslog.pl Perl library supporting syslogging
+lib/tainted.pl
+lib/termcap.pl Perl library supporting termcap usage
+lib/timelocal.pl Perl library supporting inverse of localtime, gmtime
+lib/validate.pl Perl library supporting wholesale file mode validation
+main.c
+makedepend.SH Precursor to makedepend
+makedir.SH Precursor to makedir
+makefile.lib make libperl.a
+malloc.c A version of malloc you might not want
+mg.c
+mg.h
+msdos/Changes.dds Expanation of MS-DOS patches by Diomidis Spinellis
+msdos/Makefile MS-DOS makefile
+msdos/README.msdos Compiling and usage information
+msdos/Wishlist.dds My wishlist
+msdos/chdir.c A chdir that can change drives
+msdos/config.h Definitions for msdos
+msdos/dir.h MS-DOS header for directory access functions
+msdos/directory.c MS-DOS directory access functions.
+msdos/eg/crlf.bat Convert files from unix to MS-DOS line termination
+msdos/eg/drives.bat List the system drives and their characteristics
+msdos/eg/lf.bat Convert files from MS-DOS to Unix line termination
+msdos/glob.c A command equivalent to csh glob
+msdos/msdos.c MS-DOS ioctl, sleep, gete?[gu]if, spawn, aspawn
+msdos/popen.c My_popen and my_pclose for MS-DOS
+msdos/usage.c How to invoke perl under MS-DOS
+opcode.h
+opcode.pl
+os2/Makefile Makefile for OS/2
+os2/README.OS2 Notes for OS/2
+os2/a2p.cs Compiler script for a2p
+os2/a2p.def Linker defs for a2p
+os2/alarm.c An implementation of alarm()
+os2/alarm.h Header file for same
+os2/config.h Configuration file for OS/2
+os2/crypt.c
+os2/dir.h Directory header
+os2/director.c Directory routines
+os2/eg/alarm.pl Example of alarm code
+os2/eg/os2.pl Sample script for OS/2
+os2/eg/syscalls.pl Example of syscall on OS/2
+os2/glob.c Globbing routines
+os2/makefile Make file
+os2/mktemp.c Mktemp() using TMP
+os2/os2.c Unix compatibility functions
+os2/perl.bad names of protect-only API calls for BIND
+os2/perl.cs Compiler script for perl
+os2/perl.def Linker defs for perl
+os2/perldb.dif Changes to make the debugger work
+os2/perlglob.bad names of protect-only API calls for BIND
+os2/perlglob.cs Compiler script for perlglob
+os2/perlglob.def Linker defs for perlglob
+os2/perlsh.cmd Poor man's shell for os2
+os2/popen.c Code for opening pipes
+os2/s2p.cmd s2p as command file
+os2/selfrun.bat A self running perl script for DOS
+os2/selfrun.cmd Example of extproc feature
+os2/suffix.c Code for creating backup filenames
+os2/tests.dif
+patchlevel.h The current patch level of perl
+perl.c main()
+perl.h Global declarations
+perl.man The manual page(s)
+perlsh A poor man's perl shell
+perly.c
+perly.c.byacc
+perly.c.diff
+perly.c.yacc
+perly.fixer A program to remove yacc stack limitations
+perly.h
+perly.h.yacc
+perly.y Yacc grammar for perl
+perly.y.save
+pp.c Push/Pop code
+pp.h Push/Pop code defs
+proto.h
+regcomp.c Regular expression compiler
+regcomp.h Private declarations for above
+regexec.c Regular expression evaluator
+regexp.h Public declarations for the above
+scope.c
+scope.h
+server A server to test sockets
+sv.c
+sv.h
+t/README Instructions for regression tests
+t/TEST The regression tester
+t/base/cond.t See if conditionals work
+t/base/if.t See if if works
+t/base/lex.t See if lexical items work
+t/base/pat.t See if pattern matching works
+t/base/term.t See if various terms work
+t/cmd/elsif.t See if else-if works
+t/cmd/for.t See if for loops work
+t/cmd/mod.t See if statement modifiers work
+t/cmd/subval.t See if subroutine values work
+t/cmd/switch.t See if switch optimizations work
+t/cmd/while.t See if while loops work
+t/comp/cmdopt.t See if command optimization works
+t/comp/cpp.t See if C preprocessor works
+t/comp/decl.t See if declarations work
+t/comp/multiline.t See if multiline strings work
+t/comp/package.t See if packages work
+t/comp/script.t See if script invokation works
+t/comp/term.t See if more terms work
+t/io/argv.t See if ARGV stuff works
+t/io/dup.t See if >& works right
+t/io/fs.t See if directory manipulations work
+t/io/inplace.t See if inplace editing works
+t/io/pipe.t See if secure pipes work
+t/io/print.t See if print commands work
+t/io/tell.t See if file seeking works
+t/lib/bigint.t
+t/lib/english.t
+t/lib/sdbm.t
+t/op/append.t See if . works
+t/op/array.t See if array operations work
+t/op/auto.t See if autoincrement et all work
+t/op/chop.t See if chop works
+t/op/cond.t See if conditional expressions work
+t/op/delete.t See if delete works
+t/op/do.t See if subroutines work
+t/op/each.t See if associative iterators work
+t/op/eval.t See if eval operator works
+t/op/exec.t See if exec and system work
+t/op/exp.t See if math functions work
+t/op/flip.t See if range operator works
+t/op/fork.t See if fork works
+t/op/glob.t See if <*> works
+t/op/goto.t See if goto works
+t/op/groups.t See if $( works
+t/op/index.t See if index works
+t/op/int.t See if int works
+t/op/join.t See if join works
+t/op/list.t See if array lists work
+t/op/local.t See if local works
+t/op/magic.t See if magic variables work
+t/op/mkdir.t See if mkdir works
+t/op/my.t
+t/op/oct.t See if oct and hex work
+t/op/ord.t See if ord works
+t/op/pack.t See if pack and unpack work
+t/op/pat.t See if esoteric patterns work
+t/op/push.t See if push and pop work
+t/op/range.t See if .. works
+t/op/re_tests Input file for op.regexp
+t/op/read.t See if read() works
+t/op/readdir.t See if readdir() works
+t/op/ref.t
+t/op/regexp.t See if regular expressions work
+t/op/repeat.t See if x operator works
+t/op/sleep.t See if sleep works
+t/op/sort.t See if sort works
+t/op/split.t See if split works
+t/op/sprintf.t See if sprintf works
+t/op/stat.t See if stat works
+t/op/study.t See if study works
+t/op/subst.t
+t/op/substr.t See if substr works
+t/op/time.t See if time functions work
+t/op/undef.t See if undef works
+t/op/unshift.t See if unshift works
+t/op/vec.t See if vectors work
+t/op/write.t See if write works
+taint.c
+test.pl
+toke.c The tokener
+unixish.h
+usersub.c User supplied (possibly proprietary) subroutines
+util.c Utility routines
+util.h Public declarations for the above
+x2p/EXTERN.h Same as above
+x2p/INTERN.h Same as above
+x2p/Makefile.SH Precursor to Makefile
+x2p/a2p.h Global declarations
+x2p/a2p.man Manual page for awk to perl translator
+x2p/a2p.y A yacc grammer for awk
+x2p/a2py.c Awk compiler, sort of
+x2p/cflags.SH A script that emits C compilation flags per file
+x2p/find2perl.SH A find to perl translator
+x2p/handy.h Handy definitions
+x2p/hash.c Associative arrays again
+x2p/hash.h Public declarations for the above
+x2p/malloc.c
+x2p/s2p.SH Sed to perl translator
+x2p/s2p.man Manual page for sed to perl translator
+x2p/str.c String handling package
+x2p/str.h Public declarations for the above
+x2p/util.c Utility routines
+x2p/util.h Public declarations for the above
+x2p/walk.c Parse tree walker
+Configure Portability tool
+config_h.SH Produces config.h
View
311 Makefile
@@ -26,32 +26,34 @@
#
#
+# I now supply perly.c with the kits, so don't remake perly.c without byacc
+BYACC = byacc
CC = cc
-YACC = /bin/yacc
bin = /usr/local/bin
scriptdir = /usr/local/bin
privlib = /usr/local/lib/perl
-mansrc = /usr/man/manl
-manext = l
+mansrc = /usr/local/man/man1
+manext = 1
LDFLAGS =
CLDFLAGS =
SMALL =
LARGE =
mallocsrc = malloc.c
mallocobj = malloc.o
+dlsrc = dl.c
+dlobj = dl.o
SLN = ln -s
RMS = rm -f
-libs = -ldbm -lm -lposix
+libs = -ldbm -ldl -lm -lposix
-public = perl
+public = perl
shellflags =
# To use an alternate make, set in config.sh.
MAKE = make
-
CCCMD = `sh $(shellflags) cflags $@`
private =
@@ -67,31 +69,29 @@ sh = Makefile.SH makedepend.SH h2ph.SH
h1 = EXTERN.h INTERN.h av.h cop.h config.h embed.h form.h handy.h
h2 = hv.h op.h opcode.h perl.h regcomp.h regexp.h gv.h sv.h util.h
-h = $(h1) $(h2)
+h1 = EXTERN.h INTERN.h XSUB.h av.h config.h cop.h cv.h dosish.h
+h2 = embed.h form.h gv.h handy.h hv.h hvdbm.h keywords.h mg.h op.h
+h3 = opcode.h patchlevel.h perl.h perly.h pp.h proto.h regcomp.h
+h4 = regexp.h scope.h sv.h unixish.h util.h
+h = $(h1) $(h2) $(h3) $(h4)
-c1 = av.c cop.c cons.c consop.c doop.c doio.c dolist.c
-c2 = eval.c hv.c main.c $(mallocsrc) perl.c pp.c regcomp.c regexec.c
-c3 = gv.c sv.c toke.c util.c usersub.c
+c1 = av.c scope.c op.c doop.c doio.c dump.c hv.c
+c2 = $(mallocsrc) mg.c perly.c pp.c regcomp.c regexec.c
+c3 = gv.c sv.c taint.c toke.c util.c deb.c run.c
c = $(c1) $(c2) $(c3)
-s1 = av.c cop.c cons.c consop.c doop.c doio.c dolist.c
-s2 = eval.c hv.c main.c perl.c pp.c regcomp.c regexec.c
-s3 = gv.c sv.c toke.c util.c usersub.c perly.c
+s1 = av.c scope.c op.c doop.c doio.c dump.c hv.c
+s2 = $(mallocobj) mg.c perly.c pp.c regcomp.c regexec.c
+s3 = gv.c sv.c taint.c toke.c util.c deb.c run.c perly.c
saber = $(s1) $(s2) $(s3)
-obj1 = av.o scope.o op.o doop.o doio.o dolist.o dump.o
-obj2 = $(mallocobj) mg.o pp.o regcomp.o regexec.o
-obj3 = gv.o sv.o toke.o util.o deb.o run.o
-
-obj = $(obj1) $(obj2) $(obj3)
-
-tobj1 = tav.o tcop.o tcons.o tconsop.o tdoop.o tdoio.o tdolist.o tdump.o
-tobj2 = teval.o thv.o $(mallocobj) tpp.o tregcomp.o tregexec.o
-tobj3 = tgv.o tsv.o ttoke.o tutil.o
+obj1 = av.o scope.o op.o doop.o doio.o dump.o hv.o
+obj2 = $(mallocobj) mg.o perly.o pp.o regcomp.o regexec.o
+obj3 = gv.o sv.o taint.o toke.o util.o deb.o run.o
-tobj = $(tobj1) $(tobj2) $(tobj3)
+obj = $(obj1) $(obj2) $(obj3) $(dlobj)
lintflags = -hbvxac
@@ -100,215 +100,129 @@ addedbyconf = Makefile.old bsd eunice filexp loc pdp11 usg v7
# grrr
SHELL = /bin/sh
+.SUFFIXES: .x
+
.c.o:
$(CCCMD) $*.c
+.x.c:
+ sh writemain $*.x >$*.c
-all: perl
+all: miniperl perl lib/Config.pm
-#all: $(public) $(private) $(util) uperl.o $(scripts)
+#all: $(public) $(private) $(util) $(scripts)
# cd x2p; $(MAKE) all
# touch all
-# This is the standard version that contains no "taint" checks and is
-# used for all scripts that aren't set-id or running under something set-id.
-# The $& notation is tells Sequent machines that it can do a parallel make,
+# NDBM_File extension
+NDBM_File.c: ext/dbm/NDBM_File.xs ext/xsubpp ext/typemap
+ test -f miniperl || make miniperl
+ ext/xsubpp ext/dbm/NDBM_File.xs >tmp
+ mv tmp NDBM_File.c
+
+NDBM_File.o: NDBM_File.c
+
+# ODBM_File extension
+ODBM_File.c: ext/dbm/ODBM_File.xs ext/xsubpp ext/typemap
+ test -f miniperl || make miniperl
+ ext/xsubpp ext/dbm/ODBM_File.xs >tmp
+ mv tmp ODBM_File.c
+
+ODBM_File.o: ODBM_File.c
+
+# GDBM_File extension
+GDBM_File.c: ext/dbm/GDBM_File.xs ext/xsubpp ext/typemap
+ test -f miniperl || make miniperl
+ ext/xsubpp ext/dbm/GDBM_File.xs >tmp
+ mv tmp GDBM_File.c
+
+GDBM_File.o: GDBM_File.c
+
+# SDBM_File extension
+SDBM_File.c: ext/dbm/SDBM_File.xs ext/xsubpp ext/typemap
+ test -f miniperl || make miniperl
+ ext/xsubpp ext/dbm/SDBM_File.xs >tmp
+ mv tmp SDBM_File.c
+
+SDBM_File.o: SDBM_File.c
+
+lib/auto/SDBM_File/SDBM_File.so: SDBM_File.o ext/dbm/sdbm/libsdbm.a
+ @- mkdir lib/auto/SDBM_File 2>/dev/null
+ ld -o lib/auto/SDBM_File/SDBM_File.so SDBM_File.o ext/dbm/sdbm/libsdbm.a
+
+ext/dbm/sdbm/libsdbm.a: ext/dbm/sdbm/sdbm.c ext/dbm/sdbm/sdbm.h
+ cd ext/dbm/sdbm; $(MAKE) sdbm
+
+# POSIX extension
+POSIX.c: ext/posix/POSIX.xs ext/xsubpp ext/typemap
+ test -f miniperl || make miniperl
+ ext/xsubpp ext/posix/POSIX.xs >tmp
+ mv tmp POSIX.c
+
+POSIX.o: POSIX.c
+lib/auto/POSIX/POSIX.so: POSIX.o ext/dbm/sdbm/libsdbm.a
+ @- mkdir lib/auto/POSIX 2>/dev/null
+ ld -o lib/auto/POSIX/POSIX.so POSIX.o ext/dbm/sdbm/libsdbm.a
+extobjs= ext/dbm/NDBM_File.xs.o ext/dbm/ODBM_File.xs.o ext/dbm/GDBM_File.xs.o ext/dbm/SDBM_File.xs.o ext/posix/POSIX.xs.o
+# The $& notation tells Sequent machines that it can do a parallel make,
# and is harmless otherwise.
-perl: $& main.o perly.o perl.o $(obj) hv.o usersub.o
- $(CC) -Bstatic $(LARGE) $(CLDFLAGS) main.o perly.o perl.o $(obj) hv.o usersub.o $(libs) -o perl
- echo ""
+miniperlmain.c: miniperlmain.x
+miniperlmain.o: miniperlmain.c
+miniperl: $& miniperlmain.o perl.o $(obj)
+ $(CC) $(LARGE) $(CLDFLAGS) -o miniperl miniperlmain.o perl.o $(obj) $(libs)
+
+perlmain.c: perlmain.x
+perlmain.o: perlmain.c
+perl: $& perlmain.o perl.o $(obj) NDBM_File.o ODBM_File.o POSIX.o
+ $(CC) $(LARGE) $(CLDFLAGS) -o perl perlmain.o perl.o $(obj) NDBM_File.o ODBM_File.o POSIX.o $(libs)
libperl.rlb: libperl.a
ranlib libperl.a
touch libperl.rlb
-libperl.a: $& perly.o perl.o $(obj) hv.o usersub.o
- ar rcuv libperl.a $(obj) hv.o perly.o usersub.o
+libperl.a: $& perl.o $(obj)
+ ar rcuv libperl.a $(obj)
# This version, if specified in Configure, does ONLY those scripts which need
# set-id emulation. Suidperl must be setuid root. It contains the "taint"
# checks as well as the special code to validate that the script in question
# has been invoked correctly.
-suidperl: $& sperl.o tmain.o libtperl.rlb
- $(CC) $(LARGE) $(CLDFLAGS) sperl.o tmain.o libtperl.a $(libs) -o suidperl
-
-# This version interprets scripts that are already set-id either via a wrapper
-# or through the kernel allowing set-id scripts (bad idea). Taintperl must
-# NOT be setuid to root or anything else. The only difference between it
-# and normal perl is the presence of the "taint" checks.
-
-taintperl: $& tmain.o libtperl.rlb
- $(CC) $(LARGE) $(CLDFLAGS) tmain.o libtperl.a $(libs) -o taintperl
-
-libtperl.rlb: libtperl.a
- ranlib libtperl.a
- touch libtperl.rlb
-
-libtperl.a: $& tperly.o tperl.o $(tobj) thv.o usersub.o
- ar rcuv libtperl.a $(tobj) thv.o tperly.o usersub.o tperl.o
+suidperl: $& sperl.o main.o libperl.rlb
+ $(CC) $(LARGE) $(CLDFLAGS) sperl.o main.o libperl.a $(libs) -o suidperl
-# This command assumes that /usr/include/dbz.h and /usr/lib/dbz.o exist.
-
-dbzperl: $& main.o zhv.o libperl.rlb
- $(CC) $(LARGE) $(CLDFLAGS) main.o zhv.o /usr/lib/dbz.o libperl.a $(libs) -o dbzperl
-
-zhv.o: hv.c $(h)
- $(RMS) zhv.c
- $(SLN) hv.c zhv.c
- $(CCCMD) -DWANT_DBZ zhv.c
- $(RMS) zhv.c
-
-uperl.o: $& $(obj) main.o hv.o perly.o
- -ld $(LARGE) $(LDFLAGS) -r $(obj) main.o hv.o perly.o -o uperl.o
+lib/Config.pm: config.sh
+ ./configpm
saber: $(saber)
# load $(saber)
# load /lib/libm.a
-# Replicating all this junk is yucky, but I don't see a portable way to fix it.
-
-tperly.o: perly.c perly.h $(h)
- $(RMS) tperly.c
- $(SLN) perly.c tperly.c
- $(CCCMD) -DTAINT tperly.c
- $(RMS) tperly.c
-
-tperl.o: perl.c perly.h patchlevel.h perl.h $(h)
- $(RMS) tperl.c
- $(SLN) perl.c tperl.c
- $(CCCMD) -DTAINT tperl.c
- $(RMS) tperl.c
-
sperl.o: perl.c perly.h patchlevel.h $(h)
$(RMS) sperl.c
$(SLN) perl.c sperl.c
- $(CCCMD) -DTAINT -DIAMSUID sperl.c
+ $(CCCMD) -DIAMSUID sperl.c
$(RMS) sperl.c
-tav.o: av.c $(h)
- $(RMS) tav.c
- $(SLN) av.c tav.c
- $(CCCMD) -DTAINT tav.c
- $(RMS) tav.c
-
-tcop.o: cop.c $(h)
- $(RMS) tcop.c
- $(SLN) cop.c tcop.c
- $(CCCMD) -DTAINT tcop.c
- $(RMS) tcop.c
-
-tcons.o: cons.c $(h) perly.h
- $(RMS) tcons.c
- $(SLN) cons.c tcons.c
- $(CCCMD) -DTAINT tcons.c
- $(RMS) tcons.c
-
-tconsop.o: consop.c $(h)
- $(RMS) tconsop.c
- $(SLN) consop.c tconsop.c
- $(CCCMD) -DTAINT tconsop.c
- $(RMS) tconsop.c
-
-tdoop.o: doop.c $(h)
- $(RMS) tdoop.c
- $(SLN) doop.c tdoop.c
- $(CCCMD) -DTAINT tdoop.c
- $(RMS) tdoop.c
-
-tdoio.o: doio.c $(h)
- $(RMS) tdoio.c
- $(SLN) doio.c tdoio.c
- $(CCCMD) -DTAINT tdoio.c
- $(RMS) tdoio.c
-
-tdolist.o: dolist.c $(h)
- $(RMS) tdolist.c
- $(SLN) dolist.c tdolist.c
- $(CCCMD) -DTAINT tdolist.c
- $(RMS) tdolist.c
-
-tdump.o: dump.c $(h)
- $(RMS) tdump.c
- $(SLN) dump.c tdump.c
- $(CCCMD) -DTAINT tdump.c
- $(RMS) tdump.c
-
-teval.o: eval.c $(h)
- $(RMS) teval.c
- $(SLN) eval.c teval.c
- $(CCCMD) -DTAINT teval.c
- $(RMS) teval.c
-
-thv.o: hv.c $(h)
- $(RMS) thv.c
- $(SLN) hv.c thv.c
- $(CCCMD) -DTAINT thv.c
- $(RMS) thv.c
-
-tmain.o: main.c $(h)
- $(RMS) tmain.c
- $(SLN) main.c tmain.c
- $(CCCMD) -DTAINT tmain.c
- $(RMS) tmain.c
-
-tpp.o: pp.c $(h)
- $(RMS) tpp.c
- $(SLN) pp.c tpp.c
- $(CCCMD) -DTAINT tpp.c
- $(RMS) tpp.c
-
-tregcomp.o: regcomp.c $(h)
- $(RMS) tregcomp.c
- $(SLN) regcomp.c tregcomp.c
- $(CCCMD) -DTAINT tregcomp.c
- $(RMS) tregcomp.c
-
-tregexec.o: regexec.c $(h)
- $(RMS) tregexec.c
- $(SLN) regexec.c tregexec.c
- $(CCCMD) -DTAINT tregexec.c
- $(RMS) tregexec.c
-
-tgv.o: gv.c $(h)
- $(RMS) tgv.c
- $(SLN) gv.c tgv.c
- $(CCCMD) -DTAINT tgv.c
- $(RMS) tgv.c
-
-tsv.o: sv.c $(h) perly.h
- $(RMS) tsv.c
- $(SLN) sv.c tsv.c
- $(CCCMD) -DTAINT tsv.c
- $(RMS) tsv.c
-
-ttoke.o: toke.c $(h) perly.h
- $(RMS) ttoke.c
- $(SLN) toke.c ttoke.c
- $(CCCMD) -DTAINT ttoke.c
- $(RMS) ttoke.c
-
-tutil.o: util.c $(h)
- $(RMS) tutil.c
- $(SLN) util.c tutil.c
- $(CCCMD) -DTAINT tutil.c
- $(RMS) tutil.c
+dl.o: ext/dl/dl.c
+ cp ext/dl/dl.c dl.c
+ $(CC) -c dl.c
+
perly.h: perly.c
@ echo Dummy dependency for dumb parallel make
touch perly.h
-embed.h: embed_h.SH global.var interp.var
+opcode.h: opcode.pl
+ - opcode.pl
+
+embed.h: embed_h.SH global.sym interp.sym
sh embed_h.SH
-perly.c: perly.y perly.fixer
- @ \
-case "$(YACC)" in \
- *bison*) echo 'Expect' 25 shift/reduce and 53 reduce/reduce conflicts;; \
- *) echo 'Expect' 27 shift/reduce and 51 reduce/reduce conflicts;; \
-esac
- $(YACC) -d perly.y
+perly.c:
+ @ echo 'Expect' 80 shift/reduce and 62 reduce/reduce conflicts
+ $(BYACC) -d perly.y
sh $(shellflags) ./perly.fixer y.tab.c perly.c
mv y.tab.h perly.h
echo 'extern YYSTYPE yylval;' >>perly.h
@@ -320,13 +234,13 @@ install: all
./perl installperl
clean:
- rm -f *.o all perl taintperl suidperl perly.c
+ rm -f *.o all perl taintperl suidperl miniperl
cd x2p; $(MAKE) clean
realclean: clean
cd x2p; $(MAKE) realclean
rm -f *.orig */*.orig *~ */*~ core $(addedbyconf) h2ph h2ph.man
- rm -f perly.c perly.h t/perl Makefile config.h makedepend makedir
+ rm -f perly.h t/perl Makefile config.h makedepend makedir
rm -f makefile x2p/Makefile x2p/makefile cflags x2p/cflags
rm -f c2ph pstruct
@@ -358,9 +272,4 @@ shlist:
echo $(sh) | tr ' ' '\012' >.shlist
# AUTOMATICALLY GENERATED MAKE DEPENDENCIES--PUT NOTHING BELOW THIS LINE
-$(obj) hv.o:
- @ echo "You haven't done a "'"make depend" yet!'; exit 1
-
-makedepend: makedepend.SH
- /bin/sh $(shellflags) makedepend.SH
-
+# If this runs make out of memory, delete /usr/include lines.
View
325 Makefile.SH
@@ -0,0 +1,325 @@
+case $CONFIG in
+'')
+ if test -f config.sh; then TOP=.;
+ elif test -f ../config.sh; then TOP=..;
+ elif test -f ../../config.sh; then TOP=../..;
+ elif test -f ../../../config.sh; then TOP=../../..;
+ elif test -f ../../../../config.sh; then TOP=../../../..;
+ else
+ echo "Can't find config.sh."; exit 1
+ fi
+ . $TOP/config.sh
+ ;;
+esac
+: This forces SH files to create target in same directory as SH file.
+: This is so that make depend always knows where to find SH derivatives.
+case "$0" in
+*/*) cd `expr X$0 : 'X\(.*\)/'` ;;
+esac
+
+case "$d_symlink" in
+*define*) sln='ln -s' ;;
+*) sln='ln';;
+esac
+
+case "$d_dosuid" in
+*define*) suidperl='suidperl' ;;
+*) suidperl='';;
+esac
+
+echo "Extracting Makefile (with variable substitutions)"
+: This section of the file will have variable substitutions done on it.
+: Move anything that needs config subs from !NO!SUBS! section to !GROK!THIS!.
+: Protect any dollar signs and backticks that you do not want interpreted
+: by putting a backslash in front. You may delete these comments.
+$spitshell >Makefile <<!GROK!THIS!
+# : Makefile.SH,v 15738Revision: 4.1 15738Date: 92/08/07 17:18:08 $
+#
+# $Log: Makefile.SH,v $
+# Revision 4.1 92/08/07 17:18:08 lwall
+# Stage 6 Snapshot
+#
+# Revision 4.0.1.4 92/06/08 11:40:43 lwall
+# patch20: cray didn't give enough memory to /bin/sh
+# patch20: various and sundry fixes
+#
+# Revision 4.0.1.3 91/11/05 15:48:11 lwall
+# patch11: saberized perl
+# patch11: added support for dbz
+#
+# Revision 4.0.1.2 91/06/07 10:14:43 lwall
+# patch4: cflags now emits entire cc command except for the filename
+# patch4: alternate make programs are now semi-supported
+# patch4: uperl.o no longer tries to link in libraries prematurely
+# patch4: installperl now installs x2p stuff too
+#
+# Revision 4.0.1.1 91/04/11 17:30:39 lwall
+# patch1: C flags are now settable on a per-file basis
+#
+# Revision 4.0 91/03/20 00:58:54 lwall
+# 4.0 baseline.
+#
+#
+
+# I now supply perly.c with the kits, so don't remake perly.c without byacc
+BYACC = $byacc
+CC = $cc
+bin = $installbin
+scriptdir = $scriptdir
+privlib = $installprivlib
+mansrc = $mansrc
+manext = $manext
+LDFLAGS = $ldflags
+CLDFLAGS = $ldflags
+SMALL = $small
+LARGE = $large $split
+mallocsrc = $mallocsrc
+mallocobj = $mallocobj
+dlsrc = $dlsrc
+dlobj = $dlobj
+SLN = $sln
+RMS = rm -f
+
+libs = $libs $cryptlib
+
+public = perl $suidperl
+
+shellflags = $shellflags
+
+# To use an alternate make, set $altmake in config.sh.
+MAKE = ${altmake-make}
+!GROK!THIS!
+
+: In the following dollars and backticks do not need the extra backslash.
+$spitshell >>Makefile <<'!NO!SUBS!'
+
+CCCMD = `sh $(shellflags) cflags $@`
+
+private =
+
+scripts = h2ph
+
+manpages = perl.man h2ph.man
+
+util =
+
+sh = Makefile.SH makedepend.SH h2ph.SH
+
+h1 = EXTERN.h INTERN.h av.h cop.h config.h embed.h form.h handy.h
+h2 = hv.h op.h opcode.h perl.h regcomp.h regexp.h gv.h sv.h util.h
+
+h1 = EXTERN.h INTERN.h XSUB.h av.h config.h cop.h cv.h dosish.h
+h2 = embed.h form.h gv.h handy.h hv.h hvdbm.h keywords.h mg.h op.h
+h3 = opcode.h patchlevel.h perl.h perly.h pp.h proto.h regcomp.h
+h4 = regexp.h scope.h sv.h unixish.h util.h
+h = $(h1) $(h2) $(h3) $(h4)
+
+c1 = av.c scope.c op.c doop.c doio.c dump.c hv.c
+c2 = $(mallocsrc) mg.c perly.c pp.c regcomp.c regexec.c
+c3 = gv.c sv.c taint.c toke.c util.c deb.c run.c
+
+c = $(c1) $(c2) $(c3)
+
+s1 = av.c scope.c op.c doop.c doio.c dump.c hv.c
+s2 = $(mallocobj) mg.c perly.c pp.c regcomp.c regexec.c
+s3 = gv.c sv.c taint.c toke.c util.c deb.c run.c perly.c
+
+saber = $(s1) $(s2) $(s3)
+
+obj1 = av.o scope.o op.o doop.o doio.o dump.o hv.o
+obj2 = $(mallocobj) mg.o perly.o pp.o regcomp.o regexec.o
+obj3 = gv.o sv.o taint.o toke.o util.o deb.o run.o
+
+obj = $(obj1) $(obj2) $(obj3) $(dlobj)
+
+lintflags = -hbvxac
+
+addedbyconf = Makefile.old bsd eunice filexp loc pdp11 usg v7
+
+# grrr
+SHELL = /bin/sh
+
+.SUFFIXES: .x
+
+.c.o:
+ $(CCCMD) $*.c
+
+.x.c:
+ sh writemain $*.x >$*.c
+
+all: miniperl perl lib/Config.pm
+
+#all: $(public) $(private) $(util) $(scripts)
+# cd x2p; $(MAKE) all
+# touch all
+!NO!SUBS!
+###
+### Boilerplate for all the .xs files in the ext directory.
+### XXX FIXME: At some point we also need to copy .pm files out of
+### XXX the ext directory into lib.
+# Configure sets extensions to a string like
+# "ext/dbm/NDBM_File.xs ext/dbm/ODBM_File.xs ext/dbm/GDBM_File.xs \
+# ext/dbm/SDBM_File.xs ext/posix/POSIX.xs"
+extobjs=" "
+for f in $extensions
+do
+ base=`basename $f .xs`
+ dir=`dirname $f`
+ extobjs="$extobjs $f.o"
+ $spitshell >>Makefile <<!GROK!THIS!
+
+# $base extension
+$base.c: $f ext/xsubpp ext/typemap
+ test -f miniperl || make miniperl
+ ext/xsubpp $f >tmp
+ mv tmp $base.c
+
+$base.o: $base.c
+!GROK!THIS!
+
+ case $base in
+ SDBM_File) $spitshell >>Makefile <<'!NO!SUBS!'
+
+lib/auto/SDBM_File/SDBM_File.so: SDBM_File.o ext/dbm/sdbm/libsdbm.a
+ @- mkdir lib/auto/SDBM_File 2>/dev/null
+ ld -o lib/auto/SDBM_File/SDBM_File.so SDBM_File.o ext/dbm/sdbm/libsdbm.a
+
+ext/dbm/sdbm/libsdbm.a: ext/dbm/sdbm/sdbm.c ext/dbm/sdbm/sdbm.h
+ cd ext/dbm/sdbm; $(MAKE) sdbm
+!NO!SUBS!
+ ;;
+ POSIX) $spitshell >>Makefile <<'!NO!SUBS!'
+lib/auto/POSIX/POSIX.so: POSIX.o ext/dbm/sdbm/libsdbm.a
+ @- mkdir lib/auto/POSIX 2>/dev/null
+ ld -o lib/auto/POSIX/POSIX.so POSIX.o ext/dbm/sdbm/libsdbm.a
+!NO!SUBS!
+ ;;
+ esac
+done
+
+echo "extobjs=$extobjs" >> Makefile
+
+$spitshell >>Makefile <<'!NO!SUBS!'
+# The $& notation tells Sequent machines that it can do a parallel make,
+# and is harmless otherwise.
+
+miniperlmain.c: miniperlmain.x
+miniperlmain.o: miniperlmain.c
+miniperl: $& miniperlmain.o perl.o $(obj)
+ $(CC) $(LARGE) $(CLDFLAGS) -o miniperl miniperlmain.o perl.o $(obj) $(libs)
+
+perlmain.c: perlmain.x
+perlmain.o: perlmain.c
+perl: $& perlmain.o perl.o $(obj) NDBM_File.o ODBM_File.o POSIX.o
+ $(CC) $(LARGE) $(CLDFLAGS) -o perl perlmain.o perl.o $(obj) NDBM_File.o ODBM_File.o POSIX.o $(libs)
+
+libperl.rlb: libperl.a
+ ranlib libperl.a
+ touch libperl.rlb
+
+libperl.a: $& perl.o $(obj)
+ ar rcuv libperl.a $(obj)
+
+# This version, if specified in Configure, does ONLY those scripts which need
+# set-id emulation. Suidperl must be setuid root. It contains the "taint"
+# checks as well as the special code to validate that the script in question
+# has been invoked correctly.
+
+suidperl: $& sperl.o main.o libperl.rlb
+ $(CC) $(LARGE) $(CLDFLAGS) sperl.o main.o libperl.a $(libs) -o suidperl
+
+lib/Config.pm: config.sh
+ ./configpm
+
+saber: $(saber)
+ # load $(saber)
+ # load /lib/libm.a
+
+sperl.o: perl.c perly.h patchlevel.h $(h)
+ $(RMS) sperl.c
+ $(SLN) perl.c sperl.c
+ $(CCCMD) -DIAMSUID sperl.c
+ $(RMS) sperl.c
+
+dl.o: ext/dl/dl.c
+ cp ext/dl/dl.c dl.c
+ $(CC) -c dl.c
+
+!NO!SUBS!
+
+### Now on to the rest of the Makefile.
+$spitshell >>Makefile <<'!NO!SUBS!'
+
+perly.h: perly.c
+ @ echo Dummy dependency for dumb parallel make
+ touch perly.h
+
+opcode.h: opcode.pl
+ - opcode.pl
+
+embed.h: embed_h.SH global.sym interp.sym
+ sh embed_h.SH
+
+perly.c:
+ @ echo 'Expect' 80 shift/reduce and 62 reduce/reduce conflicts
+ $(BYACC) -d perly.y
+ sh $(shellflags) ./perly.fixer y.tab.c perly.c
+ mv y.tab.h perly.h
+ echo 'extern YYSTYPE yylval;' >>perly.h
+
+perly.o: perly.c perly.h $(h)
+ $(CCCMD) perly.c
+
+install: all
+ ./perl installperl
+
+clean:
+ rm -f *.o all perl taintperl suidperl miniperl
+ cd x2p; $(MAKE) clean
+
+realclean: clean
+ cd x2p; $(MAKE) realclean
+ rm -f *.orig */*.orig *~ */*~ core $(addedbyconf) h2ph h2ph.man
+ rm -f perly.h t/perl Makefile config.h makedepend makedir
+ rm -f makefile x2p/Makefile x2p/makefile cflags x2p/cflags
+ rm -f c2ph pstruct
+
+# The following lint has practically everything turned on. Unfortunately,
+# you have to wade through a lot of mumbo jumbo that can't be suppressed.
+# If the source file has a /*NOSTRICT*/ somewhere, ignore the lint message
+# for that spot.
+
+lint: perly.c $(c)
+ lint $(lintflags) $(defs) perly.c $(c) > perl.fuzz
+
+depend: makedepend
+ - test -f perly.h || cp /dev/null perly.h
+ ./makedepend
+ - test -s perly.h || /bin/rm -f perly.h
+ cd x2p; $(MAKE) depend
+
+test: perl
+ - cd t && chmod +x TEST */*.t
+ - cd t && (rm -f perl; $(SLN) ../perl perl) && ./perl TEST </dev/tty
+
+clist:
+ echo $(c) | tr ' ' '\012' >.clist
+
+hlist:
+ echo $(h) | tr ' ' '\012' >.hlist
+
+shlist:
+ echo $(sh) | tr ' ' '\012' >.shlist
+
+# AUTOMATICALLY GENERATED MAKE DEPENDENCIES--PUT NOTHING BELOW THIS LINE
+# If this runs make out of memory, delete /usr/include lines.
+!NO!SUBS!
+
+$eunicefix Makefile4
+case `pwd` in
+*SH)
+ $rm -f ../Makefile4
+ ln Makefile4 ../Makefile4
+ ;;
+esac
+rm -f makefile
View
15 NDBM_File.c
@@ -70,7 +70,8 @@ register int items;
else
croak("db is not of type NDBM_File");
- key.dptr = SvPV(ST(2), key.dsize);;
+ key.dptr = SvPV(ST(2), na);
+ key.dsize = (int)na;;
RETVAL = dbm_fetch(db, key);
ST(0) = sv_newmortal();
@@ -100,9 +101,11 @@ register int items;
else
croak("db is not of type NDBM_File");
- key.dptr = SvPV(ST(2), key.dsize);;
+ key.dptr = SvPV(ST(2), na);
+ key.dsize = (int)na;;
- value.dptr = SvPV(ST(3), value.dsize);;
+ value.dptr = SvPV(ST(3), na);
+ value.dsize = (int)na;;
if (items < 4)
flags = DBM_REPLACE;
@@ -136,7 +139,8 @@ register int items;
else
croak("db is not of type NDBM_File");
- key.dptr = SvPV(ST(2), key.dsize);;
+ key.dptr = SvPV(ST(2), na);
+ key.dsize = (int)na;;
RETVAL = dbm_delete(db, key);
ST(0) = sv_newmortal();
@@ -189,7 +193,8 @@ register int items;
else
croak("db is not of type NDBM_File");
- key.dptr = SvPV(ST(2), key.dsize);;
+ key.dptr = SvPV(ST(2), na);
+ key.dsize = (int)na;;
RETVAL = nextkey(db, key);
ST(0) = sv_newmortal();
View
15 ODBM_File.c
@@ -101,7 +101,8 @@ register int items;
else
croak("db is not of type ODBM_File");
- key.dptr = SvPV(ST(2), key.dsize);;
+ key.dptr = SvPV(ST(2), na);
+ key.dsize = (int)na;;
RETVAL = odbm_fetch(db, key);
ST(0) = sv_newmortal();
@@ -131,9 +132,11 @@ register int items;
else
croak("db is not of type ODBM_File");
- key.dptr = SvPV(ST(2), key.dsize);;
+ key.dptr = SvPV(ST(2), na);
+ key.dsize = (int)na;;
- value.dptr = SvPV(ST(3), value.dsize);;
+ value.dptr = SvPV(ST(3), na);
+ value.dsize = (int)na;;
if (items < 4)
flags = DBM_REPLACE;
@@ -167,7 +170,8 @@ register int items;
else
croak("db is not of type ODBM_File");
- key.dptr = SvPV(ST(2), key.dsize);;
+ key.dptr = SvPV(ST(2), na);
+ key.dsize = (int)na;;
RETVAL = odbm_delete(db, key);
ST(0) = sv_newmortal();
@@ -220,7 +224,8 @@ register int items;
else
croak("db is not of type ODBM_File");
- key.dptr = SvPV(ST(2), key.dsize);;
+ key.dptr = SvPV(ST(2), na);
+ key.dsize = (int)na;;
RETVAL = odbm_nextkey(db, key);
ST(0) = sv_newmortal();
View
25 Obsolete
@@ -0,0 +1,25 @@
+
+ File | Old symbol | New symbol
+-----------------------------------+----------------------+---------------------
+atarist/config.h | GIDTYPE | Gid_t
+atarist/config.h | HAS_GDBM | I_GDBM
+atarist/config.h | UIDTYPE | Uid_t
+doio.c | STDSTDIO | USE_STD_STDIO
+hvdbm.h | HAS_GDBM | I_GDBM
+mg.c | GIDTYPE | Gid_t
+mg.c | UIDTYPE | Uid_t
+msdos/config.h | GIDTYPE | Gid_t
+msdos/config.h | UIDTYPE | Uid_t
+os2/config.h | GIDTYPE | Gid_t
+os2/config.h | HAS_GDBM | I_GDBM
+os2/config.h | UIDTYPE | Uid_t
+perl.c | GIDTYPE | Gid_t
+perl.c | UIDTYPE | Uid_t
+perl.h | GIDTYPE | Gid_t
+perl.h | UIDTYPE | Uid_t
+pp.c | STATBLOCKS | USE_STAT_BLOCKS
+pp.c | STDSTDIO | USE_STD_STDIO
+sv.c | STDSTDIO | USE_STD_STDIO
+usersub.c | STDSTDIO | USE_STD_STDIO
+util.c | CHARVSPRINTF | USE_CHAR_VSPRINTF
+util.c | SAFE_BCOPY | HAS_SAFE_BCOPY
View
3,255 POSIX.c
@@ -1,109 +1,3136 @@
#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
+
+#include <ctype.h>
+#include <dirent.h>
+#include <errno.h>
+#include <fcntl.h>
+#ifdef I_FLOAT
+#include <float.h>
+#endif
+#include <grp.h>
+#include <limits.h>
+#include <locale.h>
+#include <math.h>
+#include <pwd.h>
+#include <setjmp.h>
+#include <signal.h>
+#ifdef I_STDARG
+#include <stdarg.h>
+#endif
+#ifdef I_STDDEF
+#include <stddef.h>
+#endif
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <sys/times.h>
+#include <sys/types.h>
#include <sys/utsname.h>
+#include <sys/wait.h>
+#ifndef CR3
+#include <termios.h>
+#endif
+#include <time.h>
+#include <unistd.h>
+#include <utime.h>
+
+typedef int SysRet;
+typedef sigset_t* POSIX__SigSet;
+typedef HV* POSIX__SigAction;
+
+#define HAS_UNAME
+
+#ifndef HAS_GETPGRP
+#define getpgrp(a,b) not_here("getpgrp")
+#endif
+#ifndef HAS_NICE
+#define nice(a) not_here("nice")
+#endif
+#ifndef HAS_READLINK
+#define readlink(a,b,c) not_here("readlink")
+#endif
+#ifndef HAS_SETPGID
+#define setpgid(a,b) not_here("setpgid")
+#endif
+#ifndef HAS_SETPGRP
+#define setpgrp(a,b) not_here("setpgrp")
+#endif
+#ifndef HAS_SETSID
+#define setsid() not_here("setsid")
+#endif
+#ifndef HAS_SYMLINK
+#define symlink(a,b) not_here("symlink")
+#endif
+#ifndef HAS_TCGETPGRP
+#define tcgetpgrp(a) not_here("tcgetpgrp")
+#endif
+#ifndef HAS_TCSETPGRP
+#define tcsetpgrp(a,b) not_here("tcsetpgrp")
+#endif
+#ifndef HAS_TIMES
+#define times(a) not_here("times")
+#endif
+#ifndef HAS_UNAME
+#define uname(a) not_here("uname")
+#endif
+#ifndef HAS_WAITPID
+#define waitpid(a,b,c) not_here("waitpid")
+#endif
+
+static int
+not_here(s)
+char *s;
+{
+ croak("POSIX::%s not implemented on this architecture", s);
+ return -1;
+}
+
+int constant(name, arg)
+char *name;
+int arg;
+{
+ errno = 0;
+ switch (*name) {
+ case 'A':
+ if (strEQ(name, "ARG_MAX"))
+#ifdef ARG_MAX
+ return ARG_MAX;
+#else
+ goto not_there;
+#endif
+ break;
+ case 'B':
+ if (strEQ(name, "BUFSIZ"))
+#ifdef BUFSIZ
+ return BUFSIZ;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "BRKINT"))
+#ifdef BRKINT
+ return BRKINT;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "B9600"))
+#ifdef B9600
+ return B9600;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "B19200"))
+#ifdef B19200
+ return B19200;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "B38400"))
+#ifdef B38400
+ return B38400;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "B0"))
+#ifdef B0
+ return B0;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "B110"))
+#ifdef B110
+ return B110;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "B1200"))
+#ifdef B1200
+ return B1200;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "B134"))
+#ifdef B134
+ return B134;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "B150"))
+#ifdef B150
+ return B150;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "B1800"))
+#ifdef B1800
+ return B1800;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "B200"))
+#ifdef B200
+ return B200;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "B2400"))
+#ifdef B2400
+ return B2400;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "B300"))
+#ifdef B300
+ return B300;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "B4800"))
+#ifdef B4800
+ return B4800;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "B50"))
+#ifdef B50
+ return B50;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "B600"))
+#ifdef B600
+ return B600;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "B75"))
+#ifdef B75
+ return B75;
+#else
+ goto not_there;
+#endif
+ break;
+ case 'C':
+ if (strEQ(name, "CHAR_BIT"))
+#ifdef CHAR_BIT
+ return CHAR_BIT;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "CHAR_MAX"))
+#ifdef CHAR_MAX
+ return CHAR_MAX;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "CHAR_MIN"))
+#ifdef CHAR_MIN
+ return CHAR_MIN;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "CHILD_MAX"))
+#ifdef CHILD_MAX
+ return CHILD_MAX;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "CLK_TCK"))
+#ifdef CLK_TCK
+ return CLK_TCK;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "CLOCAL"))
+#ifdef CLOCAL
+ return CLOCAL;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "CLOCKS_PER_SEC"))
+#ifdef CLOCKS_PER_SEC
+ return CLOCKS_PER_SEC;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "CREAD"))
+#ifdef CREAD
+ return CREAD;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "CS5"))
+#ifdef CS5
+ return CS5;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "CS6"))
+#ifdef CS6
+ return CS6;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "CS7"))
+#ifdef CS7
+ return CS7;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "CS8"))
+#ifdef CS8
+ return CS8;
+#else
+ goto not_there;
+#endif
+ if (strEQ(name, "CSIZE"))
+#ifdef CSIZE
+ return CSIZE;
+#else
+ goto not_there;
+#endif
+