--- configure_com_faq.html_orig	Mon Aug 07 13:33:08 2000
+++ configure_com_faq.html	Mon Aug 07 15:03:18 2000
@@ -6,7 +6,7 @@
 <BODY>
 <H1>configure_com_faq </H1>
 <P>Last updated: Sunday 6-AUG-2000 </P>
-<P>Owing to the fear and loathing that procedures like perl's configure.com are 
+<P>Owing to the fear and loathing that procedures like Perl's configure.com are 
 subject to I decided to put together a document that describes what 
 configure.com is and why it is written in such a peculiar way. </P>
 <P><A href="http://www.best.com/~pvhp/vms/configure_com_faq.html#q1">1. What is 
@@ -34,34 +34,34 @@
 <HR>
 
 <H3><A name=q1>1. What is configure.com? </A></H3>
-<P>Configure.com is a DCL procuredure that sets up the build of the perl 
+<P>Configure.com is a DCL procuredure that sets up the build of the Perl 
 programming language on VMS. Among the many things that it needs to do is set up 
-a <KBD>config.h</KBD> header file that used used by the build. (Perl is written 
-in C and <KBD>config.h</KBD> is <KBD>#include</KBD>d by the perl source code 
+a <KBD>config.h</KBD> header file that is used by the build. (Perl is written 
+in C and <KBD>config.h</KBD> is <KBD>#include</KBD>d by the Perl source code 
 modules in <KBD>*.c</KBD> files). </P>
 <H3><A name=q2>2. Why is configure.com written in such a peculiar way? </A></H3>
 <P>In part because configure.com attempts to be a DCL adaptation of some wily 
 shell scripting (see also the answer to <A 
 href="http://www.best.com/~pvhp/vms/configure_com_faq.html#q7">question 7</A>), 
 there are also some variations between VMS systems that configure.com needs to 
-accomodate to set up a proper perl build. For example, a lot of people are 
+accommodate to set up a proper Perl build. For example, a lot of people are 
 uncomfortable with having to edit Makefiles and many VMS users don't even know 
 what MMS or MMK are (note that I didn't mean to imply that <I>you</I> dear, 
 intelligent reader did not know what these utilities do; only that there are 
-such folks out there). Configure.com attempts to accomodate everybody and figure 
+such folks out there). Configure.com attempts to accommodate everybody and figure 
 out what it needs to with little human intervention if possible. On top of that 
-it also will allow for considerable human intervention of that is dsired (power 
+it also will allow for considerable human intervention if that is desired (power 
 users building with experimental language features, broken kits that can be 
 fixed with editing descrip.mms files, <I>etc</I>). </P>
-<P>At one or another time the build of VMS perl needed to accomodate: </P>
+<P>At one or another time the build of VMS Perl needed to accommodate: </P>
 <UL>
   <LI>variations in C compiler (VAXC, DECC, GNU gcc) 
   <LI>variations in C RTL (run time library) 
   <LI>variations in architecture (64bit support on Alpha) 
   <LI>variations in make utilty (MMS, MMK, GNU make) 
   <LI>variations in tcp/ip networking (none, netlib, DEC C sockets,...) 
-  <LI>variations in perl versions (new config_h.SH variables) </LI></UL>
-<P>It should be born in mind that some of these products have changed 
+  <LI>variations in Perl versions (new config_h.SH variables) </LI></UL>
+<P>It should be borne in mind that some of these products have changed 
 considerably with the introduction of newer versions. A good example would be 
 the DEC (now Compaq) C compiler: it may eventualy include <KBD>flock()</KBD> and 
 <KBD>ioctl()</KBD> functions. </P>
@@ -69,7 +69,7 @@
 <P>Because it needs to be able to run on <EM>any</EM> VMS system with minimal 
 effort (no user required compile <I>e.g.</I> is a good one since configure.com 
 is supposed to figure out how to invoke the compiler). Basically configure.com 
-is written in DCL for the same reason that Configure is written in pidgen Bourne 
+is written in DCL for the same reason that Configure is written in pidgin Bourne 
 shell for unix and unix-like OSes: it provides the power that is needed along 
 with "portability" (DCL runs on most any recent version of VMS and a shell is 
 available on most any unix variant.) </P>
@@ -77,59 +77,59 @@
 know the intricate details of their C compiler's capabilities. They often do not 
 even know how to invoke their compiler. <KBD>Configure.com</KBD> and its analog 
 on unix <KBD>Configure</KBD> try to guess the proper way to invoke a C compiler 
-and then run tests to see what else the C compiler can do before outputing some 
-files for building perl. </P>
+and then run tests to see what else the C compiler can do before outputting some 
+files for building Perl. </P>
 <H3><A name=q4>4. Why not use shell? </A></H3>
-<P>Bourne like shells are not very common on VMS. The only ones that I know of 
+<P>Bourne-like shells are not very common on VMS. The only ones that I know of 
 include: DEC's POSIX shell which was discontinued a few years ago having 
 suffered from unpopularity since it was considered so slow (no doubt also 
 because government procurement contracts no longer stipulated POSIX 
 conformance), and a few things that were ported to POSIX including bash and 
-tcsh. Could you imagine the trouble of installing perl from source if the 
-READM.vms file started out with the following? 
+tcsh. Could you imagine the trouble of installing Perl from source if the 
+README.vms file started out with the following? 
 <BLOCKQUOTE>First install the <B>POSIX</B> environment from an old DEC CD ROM. 
   Next install and configure a GNU tools chain including <B>m4</B>, <B>gcc</B>, 
   ... Then install the VMS port of <B>bash</B>. Then install <B>netlib</B> on 
-  top of your tcp/ip stack. Now run perl's Configure with:<BR>sh Configure 
+  top of your tcp/ip stack. Now run Perl's Configure with:<BR>sh Configure 
 </BLOCKQUOTE>That would be a great deal of work. However, since DCL is VMS 
-native setting up the build of perl works via this simple invocation: 
-<BLOCKQUOTE>@ Configure </BLOCKQUOTE>It is true that perl's Configure script 
+native, setting up the build of Perl works via this simple invocation: 
+<BLOCKQUOTE>@ Configure </BLOCKQUOTE>It is true that Perl's Configure script 
 runs under a shell on several non Unix operating systems including: <PRE>DOS: djgpp port of bash
 OS/390: IBM supplied POSIX shell (folks this <EM>is</EM> a unix)
 OS/2: EMX port of GNU public domain k shell (pdksh)
 Win_NT: Cygwin port of bash or mingwin32 port of bash
 </PRE>
 <P>but each of those environments requires a considerable extra shell/compiler 
-set up effort. Note too that on NT most folks who build perl from source do so 
+set up effort. Note too that on NT most folks who build Perl from source do so 
 with <B>MS Visual C</B> and <B>nmake</B> (or <B>dmake</B>), not with a run of 
 Configure under a non-native shell. Note too that such folks need to edit their 
-perl Makefiles by hand before starting the build (crude eh? Do note that there 
+Perl Makefiles by hand before starting the build (crude eh? Do note that there 
 has been some work on a <A 
 href="http://www.best.com/~pvhp/win32/Configure.bat/">Configure.bat</A> for 
 Windoes NT/2000, as well as a <A 
 href="http://www.best.com/~pvhp/mac/macperl5.6.0/">Configure.MPW</A> for Mac OS 
 MPW users). </P>
-<P>In principle there is little stopping anyone from adding to perl's Bourne 
+<P>In principle there is little stopping anyone from adding to Perl's Bourne 
 shell Configure script (or perhaps a <KBD>hints/vms.sh</KBD> file) in ways that 
-would accomodate either DEC POSIX or bash (running under POSIX) on VMS. But 
-retaining a configure.com in DCL will likely still be necessary to accomodate 
+would accommodate either DEC POSIX or bash (running under POSIX) on VMS. But 
+retaining a configure.com in DCL will likely still be necessary to accommodate 
 the large number of VMS users or administrators that have only the classic VMS 
 CLI DCL at hand. 
 <P>A binary <KBD>configure.exe</KBD> would be possible but it would not be 
-readily modifiable by folks deploying perl. It would also be necessary to have a 
+readily modifiable by folks deploying Perl. It would also be necessary to have a 
 separate binary for VAX and for Alpha. </P>
 <H3><A name=q5>5. What else does configure.com do? </A></H3>
-<P>In the case of perl, <KBD>configure.com</KBD> produces a <KBD>config.sh</KBD> 
+<P>In the case of Perl, <KBD>configure.com</KBD> produces a <KBD>config.sh</KBD> 
 file that is used to produce the <KBD>config.h</KBD> C header file with the help 
-of <B>munchconfig</B> and later on, after most of perl gets built 
-<KBD>config.sh</KBD> is used to help create the <B>Config.pm</B> perl module. 
+of <B>munchconfig</B> and later on, after most of Perl gets built 
+<KBD>config.sh</KBD> is used to help create the <B>Config.pm</B> Perl module. 
 </P>
 <P>Configure.com also uses the information stored in <KBD>config.sh</KBD> to 
 extract the <KBD>descrip.mms</KBD> file from the 
 <KBD>[.vms]descrip_mms.template</KBD> file. </P>
 <P>Perhaps it is now clear that the <KBD>config.sh</KBD> file, although it 
 employs Bourne shell syntax, is an important storehouse of information about 
-your system that perl needs both during its build and also later on for 
+your system that Perl needs both during its build and also later on for 
 reference for any script or module that contains: <PRE>    use Config;
 </PRE>and the use of the <KBD>%Config</KBD> hash (like most 
 <KBD>Makefile.PL</KBD>s do). 
@@ -138,9 +138,9 @@
 <B>perl_setup.com</B> DCL file that you can use to set up the PERL_ROOT logical 
 name and either the PERL foreign symbol or the PERL DCL command verb (the latter 
 done with the PERL.CLD file that configure.com will write out if you are not 
-using a command verb to invoke perl). If you opted to install PERL into your DCL 
-tables configure.com will also write out a PERL_INSTALL.COM that will replce 
-your DCLTABLE.EXE with one that has a system wide PERL verb in it. </P>
+using a command verb to invoke Perl). If you opted to install PERL into your DCL 
+tables configure.com will also write out a PERL_INSTALL.COM that will replace 
+your DCLTABLES.EXE with one that has a system wide PERL verb in it. </P>
 <H3><A name=q6>6. WHY THE CAPS? </A></H3>
 <P>A post on <A href="news:comp.os.vms">comp.os.vms</A> a long time ago 
 mentioned the optimization that can come from writing DCL IN CAPS (like <KBD>$ 
@@ -148,12 +148,12 @@
 write in CAPS there is less work for the CLI to do since it wouldn't have to 
 convert strings to UPCASE. This nano-optimization is probably negligible in 
 performance, but any such optimizer can't hurt and the CAPS also have the effect 
-of helping non VMS savvy maintainers of Configure.com that they are treading on 
+of helping non VMS savvy maintainers of Configure.com know that they are treading on 
 non Bourne shell ground. That said, there has been considerable effort to use 
 variables with names exactly as they appear in the Unix Configure and config.sh 
 scripts (<I>e.g.</I> <KBD>prefix</KBD> rather than <KBD>PREFIX</KBD> or 
-<KBD>Prefix</KBD>) so as to help the Unix hackers that maintains the shell 
-script also maintain the DCL script (they may not be familiar with DCLs case 
+<KBD>Prefix</KBD>) so as to help the Unix hackers that maintain the shell 
+script also maintain the DCL script (they may not be familiar with DCL's case 
 insensitivity). </P>
 <H3><A name=q7>7. What is the difference between <KBD>echo</KBD> and 
 <KBD>echo4</KBD>? </A></H3>
@@ -162,9 +162,9 @@
 SYS$OUTPUT even if the "-s" switch was thrown. </P>
 <P>DCL procedures of any non-trivial size tend to use some symbol for replacing 
 the tedium of writing <KBD>$ WRITE SYS$OUTPUT ...</KBD> all over the place. Some 
-(perl or ksh like) procedures use the symbol <KBD>print</KBD>, while some that 
+(Perl or ksh like) procedures use the symbol <KBD>print</KBD>, while some that 
 are more Rexx inspired use <KBD>say</KBD>. Since configure.com is a DCL port of 
-a Bourns shell script it is completely natural to use <KBD>echo</KBD>. In places 
+a Bourne shell script, it is completely natural to use <KBD>echo</KBD>. In places 
 where Configure may say something important such as: <XMP>$echo "Choosing the C types to be used for Perl's internal types..." >&4
 </XMP>
 <P>The analogous message in Configure.com is:</P><XMP>$echo4 "Choosing the C types to be used for Perl's internal types..."
@@ -185,35 +185,35 @@
 <H3><A name=q8>8. What are dist and metaconfig? </A></H3>
 <P><B>dist</B> is the collection of Bourne shell components that get assembled 
 via the <B>metaconfig</B> program to produce <KBD>Configure</KBD> scripts (for 
-perl) for Unix/POSIX systems. It was written by Larry Wall, Raphael Manfredi, 
+Perl) for Unix/POSIX systems. It was written by Larry Wall, Raphael Manfredi, 
 and Harlan Stenn. Perl's Configure script (and dist?) is currently maintained by 
 Jarkko Hietaniemi along with Andy Dougherty who used to maintain it. </P>
 <P>As far as I know dist and metaconfig are limited to Unix/POSIX systems. As 
-far as I know there are very few packages other than perl that use 
+far as I know there are very few packages other than Perl that use 
 dist/metaconfig. </P>
 <H3><A name=q9>9. Why not use m4 and autoconf? </A></H3>
 <P>David MacKenzie's GNU <B>autoconf</B> system is described by Ian Lance 
-Tasylor's document on the web at: </P><PRE>    <A href="http://www.airs.com/ian/configure/configure_toc.html">http://www.airs.com/ian/configure/configure_toc.html</A>
+Taylor's document on the web at: </P><PRE>    <A href="http://www.airs.com/ian/configure/configure_toc.html">http://www.airs.com/ian/configure/configure_toc.html</A>
 </PRE>
-<P>Why indeed not use autoconf for perl or other packages? The big difference 
-between perl's <KBD>Configure</KBD> and a FSF/GNU package's <KBD>configure</KBD> 
+<P>Why indeed not use autoconf for Perl or other packages? The big difference 
+between Perl's <KBD>Configure</KBD> and a FSF/GNU package's <KBD>configure</KBD> 
 script is that the former is interactive (by default) whereas the latter is 
-never interactive. If an <KBD>autoconf</KBD> generated configuration process 
+never interactive. If an <KBD>autoconf</KBD>-generated configuration process 
 makes a mistake you cannot build the package without editing header files and/or 
-a lot of shell script hacking. <B>autoconf</B> generated <KBD>configure</KBD> 
+a lot of shell script hacking. <B>autoconf</B>-generated <KBD>configure</KBD> 
 scripts also have a preference for the gcc compiler, whereas the gcc compiler 
-may not be preferable on many platforms. Perl's metaconfig generated Configure 
-script allows for user specified input and will also pause to allow the user to 
+may not be preferable on many platforms. Perl's metaconfig-generated Configure 
+script allows for user-specified input and will also pause to allow the user to 
 alter things in either the <KBD>config.sh</KBD> or <KBD>config.h</KBD> files. 
 Such flexibility is typically of value to the power user who knows what they are 
-doing and why they want to override things. Note that in any given perl kit 
+doing and why they want to override things. Note that in any given Perl kit 
 there are almost always experimental build options that are not the default: 
-whether to have threading and which threading model to use, whether to allow 64 
+whether to have threading and which threading model to use, whether to allow 64-
 bit support and the extent of that support, <I>etc.</I> </P>
 <P>The attraction of <B>m4</B> and <B>autoconf</B> for VMS source code software 
 packagers is that they have been ported to VMS and can generate 
 <KBD>configure.com</KBD> DCL scripts. The disadvantage of m4 and autoconf for 
-packaging perl is that perl is not packaged that way (on unix the 
+packaging Perl is that Perl is not packaged that way (on unix the 
 <KBD>configure.gnu</KBD> script trys to wrapper <KBD>Configure</KBD> in such a 
 way that it behaves in non-interactive fashion similar to other autoconf 
 <KBD>configure</KBD> scripts (via <KBD>-des</KBD>)). Also, many of the VMS ports 
@@ -225,27 +225,27 @@
 this time: dist/metaconfig is exclusively UNIX/POSIX, m4/autoconf is primarily 
 UNIX/POSIX and its output is somewhat sub-optimal (non interactive). There has 
 always been talk of a microperl bootstrap configurator process but it hasn't 
-gotten far. Note too that in the build of perl the miniperl.exe executable does 
-a non-trivial amount of work including building perl (along with some help from 
+gotten far. Note too that in the build of Perl the miniperl.exe executable does 
+a non-trivial amount of work including building Perl (along with some help from 
 the C compiler). But a microperl based universal platform configurator hasn't 
-even been built for perl, much less other packages besides perl. </P>
+even been built for Perl, much less other packages besides Perl. </P>
 <H3><A name=q10>10. Why not use <KBD>VMSINSTAL</KBD> or PolyCenter(tm) 
 <KBD>PRODUCT INSTALL</KBD>? </A></H3>
 <P>These VMS native package installers are ill suited to configuring software 
 compilation from source code since they are primarily intended to serve the task 
 of installing precompiled binary software. That said, it should be pointed out 
-that Compaq has made PolyCenter <KBD>*.PCSI</KBD> kits for perl binaries 
+that Compaq has made PolyCenter <KBD>*.PCSI</KBD> kits for Perl binaries 
 available from: </P><PRE>    <A href="http://www.openvms.compaq.com/openvms/products/ips/apache/apache_perl.html">http://www.openvms.compaq.com/openvms/products/ips/apache/apache_perl.html</A>
 </PRE>
 <P>The disadvantage of that approach is that such kits are typically not 
-maintained as vigourously as the perl source and you may fall behind in your kit 
+maintained as vigorously as the Perl source and you may fall behind in your kit 
 and might have to wait for an important bug fix. </P>
 <H3><A name=q11>11. Why use any configuration process at all? </A></H3>
-<P>Before the introduction of configure.com the build of VMS perl was started 
-with a single invokation of a static descrip.mms file like so: </P><XMP>    mms/descrip=[.vms]/macro=("__AXP=__1")
+<P>Before the introduction of configure.com the build of VMS Perl was started 
+with a single invocation of a static descrip.mms file like so: </P><XMP>    mms/descrip=[.vms]/macro=("__AXP=__1")
 </XMP>
 <P>Ah for the days of such simplicity! Nevertheless, the configure.com process 
-allows vmsperl to track changes in the Unix version of perl more closely since 
+allows vmsperl to track changes in the Unix version of Perl more closely since 
 it can adapt the config.h and descrip.mms files to new features. Also the old 
 way of doing things was exploiting the conditional make facility that the VMS 
 port of GNU make did not have (IIRC). </P>
@@ -256,10 +256,10 @@
 <UL>
   <LI>variations in C compiler (VAXC, DECC, GNU gcc) 
   <LI>variations in C RTL (run time library) 
-  <LI>variations in architecture (64bit support on Alpha) 
+  <LI>variations in architecture (64-bit support on Alpha) 
   <LI>variations in make utilty (MMS, MMK, GNU make) 
   <LI>variations in tcp/ip networking (none, netlib, DEC C sockets,...) 
-  <LI>variations in perl versions (new config_h.SH variables) </LI></UL>
+  <LI>variations in Perl versions (new config_h.SH variables) </LI></UL>
 <P>along with: </P>
 <UL>
   <LI>threading (none, 5.005 threads, ITHREADS, <I>etc</I>.) 
@@ -267,7 +267,7 @@
   <LI>Which modules to build. 
   <LI>... </LI></UL>
 <H3><A name=q12>12. What happended to VAXC support? </A></H3>
-<P>The perl source was converted to ANSI prototype standard and no provision was 
+<P>The Perl source was converted to ANSI prototype standard and no provision was 
 made for classic K &amp; R style function declarations. VAX C only handled K 
 &amp; R style and was retired about 1993. In principle it is merely a matter of 
 going through the source and writing: </P><XMP>    #ifdef K_AND_R_STYLE
@@ -280,9 +280,9 @@
     {
 </XMP>
 <P>You'd be a big hero among HP-UX folks for doing that as well (there the ANSI 
-compiler costs extra and is now required to build perl if you have not installed 
+compiler costs extra and is now required to build Perl if you have not installed 
 gcc on your HP-UX box, hence some HP-UX folks would appreciate a K &amp; R 
-compilation alternative for perl). </P>
+compilation alternative for Perl). </P>
 <H3><A name=q13>13. What happened to gcc and GNU make support? </A></H3>
 <P>I don't know. We'd like to have them back if they are not currently 
 supported. </P>
@@ -300,8 +300,8 @@
 </PRE>
 <H3><A name=q15>15. What about a <KBD>make</KBD> replacement? </A></H3>
 <P>MMK is free for use on OpenVMS, but a universal make replacment is possible. 
-More than one has been written in perl (see ppt or cons on CPAN). You could not 
-use one written in perl to build perl unless it could make use of a mini or 
+More than one has been written in Perl (see ppt or cons on CPAN). You could not 
+use one written in Perl to build Perl unless it could make use of a mini or 
 micro perl. I thought <B>imake</B> had been ported to VMS at one time (?) At any 
 rate <EM>build</EM> tools are a separate software development category from 
 <EM>configuration</EM> tools and this was a FAQ about configure.com after all. 
