Skip to content

Commit c07a80f

Browse files
Perl 5 PortersLarry Wall
Perl 5 Porters
authored and
Larry Wall
committed
perl5.002beta3
[editor's note: no patch file was found for this release, so no fine-grained changes] I can't find the password for our ftp server, so I had to drop it into ftp://ftp.sems.com/pub/incoming/perl5.002b3.tar.gz, which is a drop directory you can't ls. The current plan is that Andy is gonna whack on this a little more, and then release a gamma in a few days when he's happy with it. So don't get carried away. This is now *late* beta. In other words, have less than the appropriate amount of fun. :-) Larry
1 parent 91b7def commit c07a80f

File tree

165 files changed

+12167
-10586
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

165 files changed

+12167
-10586
lines changed

Changes.Conf

+1,809-124
Large diffs are not rendered by default.

Configure

+8-6
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,8 @@ static_ext=''
122122
useposix=''
123123
usesafe=''
124124
d_bsd=''
125-
d_eunice=''
125+
d_unlnkallvers=''
126+
d_vms=''
126127
d_xenix=''
127128
eunicefix=''
128129
Mcc=''
@@ -1010,7 +1011,7 @@ THIS PACKAGE SEEMS TO BE INCOMPLETE.
10101011
You have the option of continuing the configuration process, despite the
10111012
distinct possibility that your kit is damaged, by typing 'y'es. If you
10121013
do, don't blame me if something goes wrong. I advise you to type 'n'o
1013-
and contact the author (lwall@netlabs.com).
1014+
and contact the author (lwall@sems.com).
10141015
10151016
EOM
10161017
echo $n "Continue? [n] $c" >&4
@@ -1207,7 +1208,7 @@ Much effort has been expended to ensure that this shell script will run on any
12071208
Unix system. If despite that it blows up on yours, your best bet is to edit
12081209
Configure and run it again. If you can't run Configure for some reason,
12091210
you'll have to generate a config.sh file by hand. Whatever problems you
1210-
have, let me (lwall@netlabs.com) know how I blew it.
1211+
have, let me (lwall@sems.com) know how I blew it.
12111212
12121213
This installation script affects things in two ways:
12131214
@@ -1550,7 +1551,7 @@ EOM
15501551
cd hints; ls -C *.sh | $sed 's/\.sh/ /g' >&4
15511552
dflt=''
15521553
: Half the following guesses are probably wrong... If you have better
1553-
: tests or hints, please send them to lwall@netlabs.com
1554+
: tests or hints, please send them to lwall@sems.com
15541555
: The metaconfig authors would also appreciate a copy...
15551556
$test -f /irix && osname=irix
15561557
$test -f /xenix && osname=sco_xenix
@@ -4309,7 +4310,7 @@ echo " "
43094310
$echo $n "This may take a while...$c" >&4
43104311

43114312
: Linux may need the special Dynamic option to nm for shared libraries.
4312-
if test -f /vmlinuz && $nm -D $nm_opt $libc > /dev/null 2>&1; then
4313+
if test -f /vmlinuz && nm -D $nm_opt $libc > /dev/null 2>&1; then
43134314
cat /dev/null >libc.tmp
43144315
for nm_libs_ext in $*; do
43154316
case $nm_libs_ext in *.so*) nm_opt_here=-D ;; *) nm_opt_here='' ;; esac
@@ -8935,8 +8936,9 @@ d_dlopen='$d_dlopen'
89358936
d_dlsymun='$d_dlsymun'
89368937
d_dosuid='$d_dosuid'
89378938
d_dup2='$d_dup2'
8939+
d_unlnkallvers='$d_unlnkallvers'
8940+
d_vms='$d_vms'
89388941
d_eofnblk='$d_eofnblk'
8939-
d_eunice='$d_eunice'
89408942
d_fchmod='$d_fchmod'
89418943
d_fchown='$d_fchown'
89428944
d_fcntl='$d_fcntl'

INSTALL

+15
Original file line numberDiff line numberDiff line change
@@ -522,6 +522,21 @@ If individual tests bomb, you can run them by hand, e.g.,
522522

523523
./perl op/groups.t
524524

525+
B<NOTE>: one possible reason for errors is that some external programs
526+
may be broken due to the combination of your environment and the way
527+
C<make test> exercises them. This may happen for example if you have
528+
one or more of these environment variables set:
529+
C<LC_ALL LC_CTYPE LANG>. In certain UNIXes especially the non-English
530+
locales are known to cause programs to exhibit mysterious errors.
531+
If you have any of the above environment variables set, please try
532+
C<setenv LC_ALL C> or <LC_ALL=C;export LC_ALL>, for C<csh>-style and
533+
C<Bourne>-style shells, respectively, from the command line and then
534+
retry C<make test>. If the tests then succeed, you may have a broken
535+
program that is confusing the testing. Please run the troublesome test
536+
by hand as shown above and see whether you can locate the program.
537+
Look for things like:
538+
C<exec, `backquoted command`, system, open("|...")> or C<open("...|")>.
539+
All these mean that Perl is trying to run some external program.
525540
=head1 INSTALLING PERL5
526541

527542
=head1 make install

MANIFEST

+17-4
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,9 @@ ext/DynaLoader/dlutils.c Dynamic loader utilities for dl_*.xs files
9393
ext/Fcntl/Fcntl.pm Fcntl extension Perl module
9494
ext/Fcntl/Fcntl.xs Fcntl extension external subroutines
9595
ext/Fcntl/Makefile.PL Fcntl extension makefile writer
96+
ext/FileHandle/FileHandle.pm FileHandle extension Perl module
97+
ext/FileHandle/FileHandle.xs FileHandle extension external subroutines
98+
ext/FileHandle/Makefile.PL FileHandle extension makefile writer
9699
ext/GDBM_File/GDBM_File.pm GDBM extension Perl module
97100
ext/GDBM_File/GDBM_File.xs GDBM extension external subroutines
98101
ext/GDBM_File/Makefile.PL GDBM extension makefile writer
@@ -211,7 +214,7 @@ hints/next_3.sh Hints for named architecture
211214
hints/next_3_0.sh Hints for named architecture
212215
hints/opus.sh Hints for named architecture
213216
hints/os2.sh Hints for named architecture
214-
hints/powerunix.sh Hints for named architecture
217+
hints/powerux.sh Hints for named architecture
215218
hints/sco.sh Hints for named architecture
216219
hints/sco_2_3_0.sh Hints for named architecture
217220
hints/sco_2_3_1.sh Hints for named architecture
@@ -244,6 +247,7 @@ lib/Benchmark.pm A module to time pieces of code and such
244247
lib/Carp.pm Error message base class
245248
lib/Cwd.pm Various cwd routines (getcwd, fastcwd, chdir)
246249
lib/Devel/SelfStubber.pm Generate stubs for SelfLoader.pm
250+
lib/DirHandle.pm like FileHandle only for directories
247251
lib/English.pm Readable aliases for short variables
248252
lib/Env.pm Map environment into ordinary variables
249253
lib/Exporter.pm Exporter base class
@@ -252,12 +256,14 @@ lib/ExtUtils/MM_VMS.pm MakeMaker methods for VMS.
252256
lib/ExtUtils/MakeMaker.pm Write Makefiles for extensions
253257
lib/ExtUtils/Manifest.pm Utilities to write MANIFEST files
254258
lib/ExtUtils/Mkbootstrap.pm Writes a bootstrap file (see MakeMaker)
259+
lib/ExtUtils/Mksymlists.pm Writes a linker options file for extensions
255260
lib/ExtUtils/typemap Extension interface types
256261
lib/ExtUtils/xsubpp External subroutine preprocessor
257262
lib/File/Basename.pm A module to emulate the basename program
258263
lib/File/CheckTree.pm Perl module supporting wholesale file mode validation
259264
lib/File/Find.pm Routines to do a find
260265
lib/File/Path.pm A module to do things like `mkdir -p' and `rm -r'
266+
lib/FileCache.pm Keep more files open than the system permits
261267
lib/FileHandle.pm FileHandle methods
262268
lib/Getopt/Long.pm A module to fetch command options (GetOptions)
263269
lib/Getopt/Std.pm A module to fetch command options (getopt, getopts)
@@ -270,9 +276,11 @@ lib/Math/Complex.pm A Complex package
270276
lib/Net/Ping.pm Ping methods
271277
lib/Pod/Text.pm Convert POD data to formatted ASCII text
272278
lib/Search/Dict.pm A module to do binary search on dictionaries
279+
lib/SelectSaver.pm A module to enforce proper select scoping
273280
lib/SelfLoader.pm A module to load functions only on demand.
274281
lib/Shell.pm A module to make AUTOLOADEed system() calls
275282
lib/SubstrHash.pm Compact hash for known key, value and table size
283+
lib/Symbol.pm Symbol table manipulation routines
276284
lib/Sys/Hostname.pm Hostname methods
277285
lib/Sys/Syslog.pm Perl module supporting syslogging
278286
lib/Term/Cap.pm Perl module supporting termcap usage
@@ -331,6 +339,7 @@ lib/tainted.pl Old code for tainting
331339
lib/termcap.pl Perl library supporting termcap usage
332340
lib/timelocal.pl Perl library supporting inverse of localtime, gmtime
333341
lib/validate.pl Perl library supporting wholesale file mode validation
342+
lib/vars.pm Declare pseudo-imported global variables
334343
makeaperl.SH perl script that produces a new perl binary
335344
makedepend.SH Precursor to makedepend
336345
makedir.SH Precursor to makedir
@@ -464,7 +473,9 @@ t/lib/bigintpm.t See if BigInt.pm works
464473
t/lib/db-btree.t See if DB_File works
465474
t/lib/db-hash.t See if DB_File works
466475
t/lib/db-recno.t See if DB_File works
476+
t/lib/dirhand.t See if DirHandle works
467477
t/lib/english.t See if English works
478+
t/lib/filehand.t See if FileHandle works
468479
t/lib/gdbm.t See if GDBM_File works
469480
t/lib/ndbm.t See if NDBM_File works
470481
t/lib/odbm.t See if ODBM_File works
@@ -544,13 +555,15 @@ vms/config.vms default config.h for VMS
544555
vms/descrip.mms MM[SK] description file for build
545556
vms/ext/Filespec.pm VMS-Unix file syntax interconversion
546557
vms/ext/MM_VMS.pm VMS-specific methods for MakeMaker
547-
vms/ext/VMS/stdio/Makefile.PL MakeMaker driver for VMS::stdio
548-
vms/ext/VMS/stdio/stdio.pm VMS options to stdio routines
549-
vms/ext/VMS/stdio/stdio.xs VMS options to stdio routines
558+
vms/ext/stdio/Makefile.PL MakeMaker driver for VMS::stdio
559+
vms/ext/stdio/stdio.pm VMS options to stdio routines
560+
vms/ext/stdio/stdio.xs VMS options to stdio routines
550561
vms/gen_shrfls.pl generate options files and glue for shareable image
551562
vms/genconfig.pl retcon config.sh from config.h
552563
vms/genopt.com hack to write options files in case of broken makes
553564
vms/mms2make.pl convert descrip.mms to make syntax
565+
vms/make_command.com record MM[SK] command used to build Perl
566+
vms/myconfig.com record local configuration info for bug report
554567
vms/perlvms.pod VMS-specific additions to Perl documentation
555568
vms/perly_c.vms perly.c with fixed declarations for global syms
556569
vms/perly_h.vms perly.h with fixed declarations for global syms

Makefile.SH

+7-1
Original file line numberDiff line numberDiff line change
@@ -224,9 +224,15 @@ FORCE:
224224
225225
# The $& notation tells Sequent machines that it can do a parallel make,
226226
# and is harmless otherwise.
227+
# The miniperl -w -MExporter line is a basic cheap test to catch errors
228+
# before make goes on to run preplibrary and then MakeMaker on extensions.
229+
# This is very handy because later errors are often caused by miniperl
230+
# build problems but that's not obvious to the novice.
231+
# The Module used here must not depend on Config or any extensions.
227232
228233
miniperl: $& miniperlmain.o $(perllib)
229234
$(CC) $(LARGE) $(CLDFLAGS) -o miniperl miniperlmain.o $(perllib) $(libs)
235+
@miniperl -w -MExporter -e 0 || $(MAKE) minitest
230236
231237
miniperlmain.o: miniperlmain.c
232238
$(CCCMD) $(PLDLFLAGS) $*.c
@@ -327,7 +333,7 @@ install.man: all
327333
# normally shouldn't remake perly.[ch].
328334
329335
run_byacc: FORCE
330-
@ echo 'Expect' 129 shift/reduce and 1 reduce/reduce conflict
336+
@ echo 'Expect' 130 shift/reduce and 1 reduce/reduce conflict
331337
$(BYACC) -d perly.y
332338
sh $(shellflags) ./perly.fixer y.tab.c perly.c
333339
mv y.tab.h perly.h

README

+5-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
Perl Kit, Version 5.0
33

4-
Copyright (c) 1989,1990,1991,1992,1993,1994 Larry Wall
4+
Copyright 1989-1996, Larry Wall
55
All rights reserved.
66

77
This program is free software; you can redistribute it and/or modify
@@ -75,12 +75,15 @@ defaults.
7575
2) Read the manual entries before running perl.
7676

7777
3) IMPORTANT! Help save the world! Communicate any problems and suggested
78-
patches to me, lwall@netlabs.com (Larry Wall), so we can
78+
patches to me, lwall@sems.com (Larry Wall), so we can
7979
keep the world in sync. If you have a problem, there's someone else
8080
out there who either has had or will have the same problem.
8181
It's usually helpful if you send the output of the "myconfig" script
8282
in the main perl directory.
8383

84+
If you've succeeded in compiling perl, the perlbug script in the utils/
85+
subdirectory can be used to help mail in a bug report.
86+
8487
If possible, send in patches such that the patch program will apply them.
8588
Context diffs are the best, then normal diffs. Don't send ed scripts--
8689
I've probably changed my copy since the version you have.

README.vms

+62-12
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Last revised: 14-Dec-1995 by Charles Bailey [email protected]
1+
Last revised: 19-Jan-1996 by Charles Bailey [email protected]
22

33
The VMS port of Perl is still under development. At this time, the Perl
44
binaries built under VMS handle internal operations properly, for the most
@@ -12,8 +12,8 @@ you'd like to add something yourself, or join the porting team, we'd love to
1212
have you!
1313

1414
The current sources and build procedures have been tested on a VAX using VAXC
15-
and on an AXP using DECC. If you run into problems with other compilers,
16-
please let us know.
15+
and DECC, and on an AXP using DECC. If you run into problems with other
16+
compilers, please let us know.
1717

1818
Note to DECC users: Some early versions of the DECCRTL contained a few bugs
1919
which affect Perl performance:
@@ -49,7 +49,7 @@ stacks available, so it's difficult to automate the process of building Perl
4949
with socket support in a way which will work on all systems.
5050

5151
By default, Perl is built without IP socket support. If you define the macro
52-
SOCKET when invoking MMS, however, socket support will be included. As
52+
SOCKET when invoking MMK, however, socket support will be included. As
5353
distributed, Perl for VMS includes support for the SOCKETSHR socket library,
5454
which is layered on MadGoat software's vendor-independent NETLIB interface.
5555
This provides support for all socket calls used by Perl except the
@@ -114,7 +114,10 @@ subdirectory contains several files, among which are the following:
114114
WriteMain.Pl - Perl script to generate Perlmain.C
115115
The [.Ext...] directories contain VMS-specific extensions distributed with
116116
Perl. There may also be other files in [.VMS...] pertaining to features under
117-
development; for the most part, you can ignore them.
117+
development; for the most part, you can ignore them. Note that packages in
118+
[.ext.*] are not built with Perl by default; you build the ones you want
119+
once the basic Perl build is complete (see the perlvms docs for instructions
120+
on building extensions.)
118121

119122
Config.VMS and Decrip.MMS/Makefile are set up to build a version of Perl which
120123
includes all features known to work when this release was assembled. If you
@@ -141,7 +144,7 @@ it specifically from Config.
141144
Examine the information at the beginning of Descrip.MMS for information about
142145
specifying alternate C compilers or building a version of Perl with debugging
143146
support. For instance, if you want to use DECC, you'll need to include the
144-
/macro="decc=1" qualifier to MMS (If you're using make, these options are not
147+
/macro="decc=1" qualifier to MMK (If you're using make, these options are not
145148
supported.) If you're on an AXP system, define the macro __AXP__ (MMK does
146149
this for you), and DECC will automatically be selected.
147150

@@ -160,7 +163,14 @@ set up to use VAXC on a VAX, and does not include socket support. You can
160163
either edit the Makefile by hand, using Descrip.MMS as a guide, or use the
161164
Makefile to build Miniperl.Exe, and then run the Perl script MMS2Make.pl,
162165
found in the [.VMS] subdirectory, to generate a new Makefile with the options
163-
appropriate to your site.
166+
appropriate to your site. If you are using MM[SK], and you decide to rebuild
167+
Perl with a different set of parameters (e.g. changing the C compiler, or
168+
adding socket support), be sure to say
169+
$ MMK/Descrip=[.VMS] realclean
170+
first, in order to remove files generated during the previous build. If
171+
you omit this step, you risk ending up with a copy of Perl which
172+
composed partially of old files and partially of new ones, which may lead
173+
to strange effects when you try to run Perl.
164174

165175
Note for sites using DECC: A bug in some early versions of the DECC RTL on the
166176
AXP causes newlines to be lost when writing to a pipe. This causes
@@ -191,6 +201,17 @@ This will build the following files:
191201
used to build PerlShr.Exe. It should be used when
192202
rebuilding PerlShr.Exe via MakeMaker-produced
193203
Descrip.MMS files for static extensions.
204+
c2ph - Perl program which generates template code to access
205+
C struct members from Perl.
206+
h2ph - Perl program which generates template code to access
207+
#defined constants in a C header file from Perl,
208+
using the "old-style" interface. (Largely supplanted
209+
by h2xs.)
210+
h2xs - Perl program which generates template files for creating
211+
XSUB extensions, optionally beginning with the #defined
212+
constants in a C header file.
213+
[.pod]perldoc - A Perl program which locates and displays documentation
214+
for Perl and its extensions.
194215
[.Lib]Config.pm - the Perl extension which saves configuration information
195216
about Perl and your system.
196217
[.Lib]DynaLoader.pm - The Perl extension which performs dynamic linking of
@@ -201,6 +222,30 @@ There are, of course, a number of other files created for use during the build.
201222
Once you've got the binaries built, you may wish to `build' the `tidy' or
202223
`clean' targets to remove extra files.
203224

225+
If you run into problems during the build, you can get help from the VMSPerl
226+
or perl5-porters mailing lists (see below). When you report the problem,
227+
please include the following information:
228+
- The version of Perl you're trying to build. Please include any
229+
"letter" patchlevel, in addition to the version number. If the
230+
build successfully created Miniperl.Exe, you can check this by
231+
saying '$ MCR Sys$Disk:[]Miniperl -v'. Also, please mention
232+
where you obtained the distribution kit; in particular, note
233+
whether you were using a basic Perl kit or the VMS test kit
234+
(see below).
235+
- The exact command you issued to build Perl.
236+
- A copy of all error messages which were generated during the build.
237+
Please include enough of the build log to establish the context of
238+
the error messages.
239+
- A summary of your configuration. If the build progressed far enough
240+
to generate Miniperl.Exe and [.Lib]Config.pm, you can obtain this
241+
by saying '$ MCR Sys$Disk:[]Miniperl "-V"' (note the "" around -V).
242+
If not, then you can say '$ MMK/Descrip=[.VMS] printconfig' to
243+
produce the summary.
244+
This may sound like a lot of information to send, but it'll often make
245+
it easier for someone to spot the problem, instead of having to give
246+
a spectrum of possibilities.
247+
248+
204249

205250
* Installing Perl once it's built
206251

@@ -227,12 +272,17 @@ Once the build is complete, you'll need to do the following:
227272
is written in a simple markup format which can be easily read. In this
228273
directory as well are pod2man and pod2html translators to reformat the
229274
docs for common display engines; a pod2hlp translator is under development.
230-
Information on Perl can also be gleaned from the files in the [.doc]
231-
subdirectory (internals documents and summaries of changes), and from
232-
the test scripts in the [.t...] subdirectories. For this reason,
233-
you may wish to copy these subtrees into directories under Perl_Root.
275+
These files are copied to [.lib.pod] during the installation.
276+
- Define a foreign command to execute perldoc, such as
277+
$ Perldoc == "''Perl' Perl_Root:[lib.pod]Perldoc -t"
278+
This will allow users to retrieve documentation using Perldoc. For
279+
more details, say "perldoc perldoc".
234280
That's it.
235281

282+
If you run into a bug in Perl, please submit a bug report. The PerlBug
283+
program, found in the [.lib] directory, will walk you through the process
284+
of assembling the necessary information into a bug report, and sending
285+
of to the Perl bug reporting address, [email protected].
236286

237287
* For more information
238288

@@ -294,7 +344,7 @@ and to the entire VMSperl group for useful advice and suggestions. In addition
294344
the perl5-porters, especially Andy Dougherty <[email protected]>
295345
and Tim Bunce <[email protected]>, deserve credit for their creativity and
296346
willingness to work with the VMS newcomers. Finally, the greatest debt of
297-
gratitude is due to Larry Wall <lwall@netlabs.com>, for having the ideas which
347+
gratitude is due to Larry Wall <lwall@sems.com>, for having the ideas which
298348
have made our sleepless nights possible.
299349

300350
Thanks,

av.c

+6-3
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,9 @@ I32 key;
6464
}
6565
else {
6666
if (AvALLOC(av)) {
67+
#ifndef STRANGE_MALLOC
6768
U32 bytes;
69+
#endif
6870

6971
newmax = key + AvMAX(av) / 5;
7072
resize:
@@ -82,8 +84,10 @@ I32 key;
8284
newmax = tmp - 1;
8385
New(2,ary, newmax+1, SV*);
8486
Copy(AvALLOC(av), ary, AvMAX(av)+1, SV*);
85-
if (AvMAX(av) > 64 && !AvREUSED(av))
86-
sv_add_arena((char*)AvALLOC(av), AvMAX(av) * sizeof(SV*),0);
87+
if (AvMAX(av) > 64 && !nice_chunk) {
88+
nice_chunk = (char*)AvALLOC(av);
89+
nice_chunk_size = (AvMAX(av) + 1) * sizeof(SV*);
90+
}
8791
else
8892
Safefree(AvALLOC(av));
8993
AvALLOC(av) = ary;
@@ -326,7 +330,6 @@ register AV *av;
326330
AvALLOC(av) = 0;
327331
SvPVX(av) = 0;
328332
AvMAX(av) = AvFILL(av) = -1;
329-
AvREUSED_on(av); /* Avoid leak of making SVs out of old memory again. */
330333
if (AvARYLEN(av)) {
331334
SvREFCNT_dec(AvARYLEN(av));
332335
AvARYLEN(av) = 0;

0 commit comments

Comments
 (0)