hand apply whitespace mutiliated patch
[p5sagit/p5-mst-13.2.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index f99be4d..053798a 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -163,10 +163,11 @@ your perl source directory.  If you do, installperl will attempt
 infinite recursion.
 
 It may seem obvious to say, but Perl is useful only when users can
-easily find it. When possible, it's good for both /usr/bin/perl and
-/usr/local/bin/perl to be symlinks to the actual binary. If that can't
-be done, system administrators are strongly encouraged to put
-(symlinks to) perl and its accompanying utilities, such as perldoc,
+easily find it.  It's often a good idea to have both /usr/bin/perl and
+/usr/local/bin/perl be symlinks to the actual binary.  Be especially
+careful, however, of overwriting a version of perl supplied by your
+vendor.  In any case, system administrators are strongly encouraged to
+put (symlinks to) perl and its accompanying utilities, such as perldoc,
 into a directory typically found along a user's PATH, or in another
 obvious and convenient place.
 
@@ -690,6 +691,9 @@ the malloc function on your system.
 The perl source is shipped with a version of malloc that is very fast
 but somewhat wasteful of space.  On the other hand, your system's
 malloc() function may be a bit slower but also a bit more frugal.
+However, note that space efficiency also contributes to speed efficiency,
+so there's a chance that perl's malloc may be more efficient both
+space and speed wise.
 
 For many uses, speed is probably the most important consideration, so
 the default behavior (for most systems) is to use the malloc supplied
@@ -697,8 +701,8 @@ with perl.  However, if you will be running very large applications
 (e.g. Tk or PDL) or if your system already has an excellent malloc, or
 if you are experiencing difficulties with extensions that use
 third-party libraries that call malloc, then you might wish to use
-your system's malloc.  (Or, you might wish to explore the experimental
-malloc flags discussed below.)
+your system's malloc.  (Or, you might wish to explore the malloc flags
+discussed below.)
 
 To build without perl's malloc, you can use the Configure command
 
@@ -708,43 +712,30 @@ or you can answer 'n' at the appropriate interactive Configure prompt.
 
 =head2 Malloc Performance Flags
 
-If you are using Perl's malloc, you may add one or
-more of the following items to your cflags config.sh variable
-to change its behavior in potentially useful ways.  You can find out
-more about these flags by reading the malloc.c source.
-In a future version of perl, these might be enabled by default.
+If you are using Perl's malloc, you may add one or more of the following
+items to your ccflags config.sh variable to change its behavior.  You can
+find out more about these and other flags by reading the commentary near
+the top of the malloc.c source.
 
 =over 4
 
-=item -DPERL_EMERGENCY_SBRK
+=item -DNO_FANCY_MALLOC
 
-If PERL_EMERGENCY_SBRK is defined, running out of memory need not be a
-fatal error: a memory pool can allocated by assigning to the special
-variable $^M.  See perlvar(1) for more details.
+Undefined by default.  Defining it returns malloc to the state it was at
+in Perl version 5.004.
 
-=item -DPACK_MALLOC
+If left undefined, it enables -DBUCKETS_ROOT2, -DIGNORE_SMALL_BAD_FREE,
+and -DSMALL_BUCKET_VIA_VTABLE.  See the commentary in malloc.c for more
+details.
 
-If PACK_MALLOC is defined, malloc.c uses a slightly different
-algorithm for small allocations (up to 64 bytes long).  Such small
-allocations are quite common in typical Perl scripts.
+=item -DPLAIN_MALLOC
 
-The expected memory savings (with 8-byte alignment in $alignbytes) is
-about 20% for typical Perl usage.  The expected slowdown due to the
-additional malloc overhead is in fractions of a percent.  (It is hard
-to measure because of the effect of the saved memory on speed).
+Undefined by default.  Defining it in addition to NO_FANCY_MALLOC returns
+malloc to the state it was at in Perl version 5.000.
 
-=item -DTWO_POT_OPTIMIZE
-
-If TWO_POT_OPTIMIZE is defined, malloc.c uses a slightly different
-algorithm for large allocations that are close to a power of two
-(starting with 16K).  Such allocations are typical for big hashes and
-special-purpose scripts, especially image processing.  If you will be
-manipulating very large blocks with sizes close to powers of two, it
-might be wise to define this macro.
-
-The expected saving of memory is 0-100% (100% in applications which
-require most memory in such 2**n chunks).  The expected slowdown is
-negligible.
+If left undefined, it enables -DPERL_EMERGENCY_SBRK, -DPACK_MALLOC,
+-DTWO_POT_OPTIMIZE, and -DDEBUGGING_MSTATS.  See the commentary in
+malloc.c for more details.
 
 =back
 
@@ -1225,6 +1216,8 @@ Note that you can't run the tests in background if this disables
 opening of /dev/tty. You can use 'make test-notty' in that case but
 a few tty tests will be skipped.
 
+=head2 What if make test doesn't work?
+
 If make test bombs out, just cd to the t directory and run ./TEST
 by hand to see if it makes any difference.  If individual tests
 bomb, you can run them by hand, e.g.,
@@ -1242,6 +1235,10 @@ complicated constructs).
 You should also read the individual tests to see if there are any helpful
 comments that apply to your system.
 
+=over 4
+
+=item locale
+
 Note:  One possible reason for errors is that some external programs
 may be broken due to the combination of your environment and the way
 B<make test> exercises them.  For example, this may happen if you have
@@ -1265,6 +1262,29 @@ things like:  exec, `backquoted command`, system, open("|...") or
 open("...|").  All these mean that Perl is trying to run some
 external program.
 
+=item Out of memory
+
+On some systems, particularly those with smaller amounts of RAM, some
+of the tests in t/op/pat.t may fail with an "Out of memory" message.
+Specifically, in perl5.004_64, tests 74 and 78 have been reported to
+fail on some systems.  On my SparcStation IPC with 8 MB of RAM, test 78
+will fail if the system is running any other significant tasks at the
+same time.
+
+Try stopping other jobs on the system and then running the test by itself:
+
+       cd t; ./perl op/pat.t
+
+to see if you have any better luck.  If your perl still fails this
+test, it does not necessarily mean you have a broken perl.  This test
+tries to exercise the regular expression subsystem quite thoroughly,
+and may well be far more demanding than your normal usage.
+
+You may also be able to reduce perl's memory usage by using some of
+the ideas described above in L<"Malloc Performance Flags">.
+
+=back
+
 =head1 make install
 
 This will put perl into the public directory you specified to
@@ -1274,6 +1294,16 @@ pages, however.  You may need to be root to run B<make install>.  If you
 are not root, you must own the directories in question and you should
 ignore any messages about chown not working.
 
+=head2 Installing perl under different names
+
+If you want to install perl under a name other than "perl" (for example,
+when installing perl with special features enabled, such as debugging),
+indicate the alternate name on the "make install" line, such as:
+
+    make install PERLNAME=myperl
+
+=head2 Installed files
+
 If you want to see exactly what will happen without installing
 anything, you can run
 
@@ -1543,4 +1573,4 @@ above.
 
 =head1 LAST MODIFIED
 
-$Id: INSTALL,v 1.32 1998/03/20 19:20:08 doughera Released $
+$Id: INSTALL,v 1.35 1998/05/18 19:06:26 doughera Released $