From: pinard@icule.UUCP (Francois Pinard)
Subject: GNU C++ 1.41.0 installation report
Reply-To: pinard@iro.umontreal.ca
Organization: GNUs Not Usenet
Distribution: gnu
Date: Thu, 10 Sep 1992 23:24:18 GMT

Let me comment on the installation of GNU C++ 1.41.0, together with
GNU C 1.41.0, on this 386/ix 2.0.2 system (waiting for Hurd :-).  I
will make these comments in a few bunches.  Here is the first.

* Unpacking g++-1.41.0.tar.Z, the file name cplus-cadillac.c gets
truncated because it has more than 14 characters.

* The README file does not tell where/how to report bugs/problems.  At
least an electronic address should be given.

* On g++.texinfo, makeinfo version 1.47 says:

---------------------------------------------------------------------->
./g++.texinfo:2865: Validation error.  `Next' field points to node `Inline', which doesn't exist.
./g++.texinfo:2896: Validation error.  `Prev' field points to node `Inline', which doesn't exist.
./g++.texinfo:2984: Validation error.  `Followed-Reference' field points to node `Modifiers', which doesn't exist.
./g++.texinfo:2369: Validation error.  `Menu' field points to node `Inline', which doesn't exist.
./g++.texinfo:1983: Validation error.  `Followed-Reference' field points to node `Cross-compilation', which doesn't exist.
./g++.texinfo:1036: Validation error.  `Followed-Reference' field points to node `Registers', which doesn't exist.
Making info file `g++.info' from `g++.texinfo'.
----------------------------------------------------------------------<

To get rid of these, I made some minor hand editing and also asked
Texinfo 2.15 for its automatic help, producing the following diffs.
This message ends right after the quote.

---------------------------------------------------------------------->
--- 1.1	1992/09/10 22:23:18
+++ g++-1.41.0/g++.texinfo	1992/09/10 23:04:59
@@ -89,7 +89,7 @@
 @page
 
 @ifinfo
-@node Top, Copying, , (DIR)
+@node Top, Copying, (dir), (dir)
 
 Introduction
 ************
@@ -107,35 +107,71 @@
 
 @end ifinfo
 @menu
-* Copying::         GNU CC General Public License says
+* Copying::             GNU CC General Public License says
                      how you can copy and share GNU C++.
-* Contributors::    People who have contributed to GNU C++.
-* Options::         Command options supported by @samp{g++}.
-* Installation::    How to configure, compile and install GNU C++.
-* Trouble::         If you have trouble installing GNU C++.
-* Library::         Header files to interface GNU C++ with C and UNIX routines.
-* Incompatibilities::  Incompatibilities between GNU C++ and traditional
+* Contributors::        People who have contributed to GNU C++.
+* Options::             Command options supported by @samp{g++}.
+* Installation::        How to configure, compile and install GNU C++.
+* Trouble::             If you have trouble installing GNU C++.
+* Library::             Header files to interface GNU C++ with C and UNIX routines.
+* Incompatibilities::   Incompatibilities between GNU C++ and traditional
                         versions of C and C++.
-* Extensions::      GNU extensions to the C++ language.
-* Features::        Special features of GNU C++
-* Bugs::            How to report bugs (if you want to get them fixed).
-* Portability::     Goals of GNU C++'s portability features.
-* Interface::       Function-call interface of GNU C++ output.
-* Passes::          Order of passes, what they do, and what each file is for.
-* Configuration::   Special configuration information
-* Projects::	    Things Still Left to do
-* BugList::         List of currently known GNU C++ bugs
+* Extensions::          GNU extensions to the C++ language.
+* Features::            Special features of GNU C++
+* Bugs::                How to report bugs (if you want to get them fixed).
+* Portability::         Goals of GNU C++'s portability features.
+* Interface::           Function-call interface of GNU C++ output.
+* Passes::              Order of passes, what they do, and what each file is for.
+* Configuration::       Special configuration information
+* Projects::            Things Still Left to do
+* BugList::             List of currently known GNU C++ bugs
                      (and how to avoid them)
-* Bibliography::    Related documentation and bibliography.
+* Bibliography::        Related documentation and bibliography.
 
-* GCC related menu:
+ --- The Detailed Node Listing ---
 
-* RTL: (internals)RTL
-		    The intermediate representation that most passes work on.
-* Machine Desc: (internals)Machine Desc
-		    How to write machine description instruction patterns.
-* Machine Macros: (internals)Machine Macros
-		    How to write the machine description C macros.
+GNU Extensions to the C++ Language
+
+* Statement Exprs::     Putting statements and declarations inside expressions.
+* Naming Types::        Giving a name to the type of some expression.
+* Typeof::              @code{typeof}: referring to the type of an expression.
+* Lvalues::             Using @samp{?:}, @samp{,} and casts in lvalues.
+* Conditionals::        Omitting the middle operand of a @samp{?:} expression.
+* Zero-Length::         Zero-length arrays.
+* Variable-Length::     Arrays whose length is computed at run time.
+* Subscripting::        Any array can be subscripted, even if not an lvalue.
+* Pointer Arith::       Arithmetic on @code{void}-pointers and function pointers.
+* Initializers::        Non-constant initializers.
+* Constructors::        Constructor expressions give structures, unions
+               		or arrays as values.
+* Function Attributes::  Declaring that functions have no side effects,
+            		or that they can never return.
+* Dollar Signs::        Dollar sign is allowed in identifiers.
+* Alignment::           Inquiring about the alignment of a type or variable.
+* Extended Asm::        Assembler instructions with C expressions as operands.
+			(With them you can define ``built-in'' functions.)
+* Asm Labels::          Specifying the assembler name to use for a C symbol.
+* Global Reg Vars::     Defining global variables which reside in registers.
+* Operators::           Non-C operators: @code{operator <?} and @code{operator >?}
+* New::                 Controlling @code{operator new}.
+* Wrappers::            Function calls as first-class objects.
+* Switch Ranges::       Specifying a range of values for a switch case.
+* Static Member Functions::  Hiding Functions in Classes.
+* Exception Handling::  Handling exceptional circumstances.
+
+Features of GNU C++
+
+* Structures::          GNU C++ passes structures as arguments.
+* Goto::                You can leave a binding level with a goto.
+* Instantiation::       Type instantiation facilities of GNU C++
+* Linking::             Considerations for writing code with incremental linking in mind.
+* Named Return Values::  Avoid an extra constructor call when 
+                        returning classes from functions.
+
+Reporting Bugs
+
+* Bug Criteria::        Have You Found a Bug?
+* Bug Reporting::       How to Report Bugs
 @end menu
 
 @node Copying, Contributors, Top, Top
@@ -1033,7 +1069,7 @@
 frame pointer and nothing is saved by pretending it doesn't
 exist.  The machine-description macro
 @code{FRAME_POINTER_REQUIRED} controls whether a target machine
-supports this flag.  @xref{Registers}.@refill
+supports this flag.  @c @xref{Registers}.@refill
 
 @item -finline-functions
 Integrate all simple functions into their callers.  The compiler
@@ -1980,7 +2016,7 @@
 
 It is now possible to overcome these problems by defining macros such
 as @code{REAL_VALUE_TYPE}.  But doing so is a substantial amount of
-work for each target machine.  @xref{Cross-compilation}.
+work for each target machine.  @c @xref{Cross-compilation}.
 
 @item
 DBX rejects some files produced by GNU CC, though it accepts similar
@@ -2352,30 +2388,30 @@
 @menu
 * Statement Exprs::     Putting statements and declarations inside expressions.
 * Naming Types::        Giving a name to the type of some expression.
-* Typeof::		@code{typeof}: referring to the type of an expression.
-* Lvalues::		Using @samp{?:}, @samp{,} and casts in lvalues.
-* Conditionals::	Omitting the middle operand of a @samp{?:} expression.
-* Zero-Length::		Zero-length arrays.
-* Variable-Length::	Arrays whose length is computed at run time.
-* Subscripting::	Any array can be subscripted, even if not an lvalue.
-* Pointer Arith::	Arithmetic on @code{void}-pointers and function pointers.
-* Initializers::	Non-constant initializers.
-* Constructors::	Constructor expressions give structures, unions
+* Typeof::              @code{typeof}: referring to the type of an expression.
+* Lvalues::             Using @samp{?:}, @samp{,} and casts in lvalues.
+* Conditionals::        Omitting the middle operand of a @samp{?:} expression.
+* Zero-Length::         Zero-length arrays.
+* Variable-Length::     Arrays whose length is computed at run time.
+* Subscripting::        Any array can be subscripted, even if not an lvalue.
+* Pointer Arith::       Arithmetic on @code{void}-pointers and function pointers.
+* Initializers::        Non-constant initializers.
+* Constructors::        Constructor expressions give structures, unions
                		or arrays as values.
-* Function Attributes:: Declaring that functions have no side effects,
+* Function Attributes::  Declaring that functions have no side effects,
             		or that they can never return.
 * Dollar Signs::        Dollar sign is allowed in identifiers.
 * Alignment::           Inquiring about the alignment of a type or variable.
-* Inline::              Defining inline functions (as fast as macros).
-* Extended Asm::	Assembler instructions with C expressions as operands.
+* Extended Asm::        Assembler instructions with C expressions as operands.
 			(With them you can define ``built-in'' functions.)
-* Asm Labels::		Specifying the assembler name to use for a C symbol.
+* Asm Labels::          Specifying the assembler name to use for a C symbol.
 * Global Reg Vars::     Defining global variables which reside in registers.
-* Operators::		Additional operators provided by GNU C++.
+* Operators::           Non-C operators: @code{operator <?} and @code{operator >?}
+* New::                 Controlling @code{operator new}.
 * Wrappers::            Function calls as first-class objects.
 * Switch Ranges::       Specifying a range of values for a switch case.
-* Static Member Functions::	Hiding Functions in Classes.
-* Exception Handling::	Handling exceptional circumstances.
+* Static Member Functions::  Hiding Functions in Classes.
+* Exception Handling::  Handling exceptional circumstances.
 @end menu
 
 @node Statement Exprs, Naming Types, Extensions, Extensions
@@ -2862,7 +2898,7 @@
 In GNU C++, you may use dollar signs in identifier names.  This is because
 many traditional C implementations allow such identifiers.
 
-@node Alignment, Inline, Dollar Signs, Extensions
+@node Alignment, Extended Asm, Dollar Signs, Extensions
 @section Inquiring about the Alignment of a Type or Variable
 
 The keyword @code{__alignof} allows you to inquire about how an object
@@ -2893,7 +2929,7 @@
 @code{__alignof (int)}, even though the data type of @code{foo1.y} does not
 itself demand any alignment.@refill
 
-@node Extended Asm, Asm Labels, Inline, Extensions
+@node Extended Asm, Asm Labels, Alignment, Extensions
 @section Assembler Instructions with C Expression Operands
 
 In an assembler instruction using @code{asm}, you can now specify the
@@ -2981,7 +3017,7 @@
 assumption that the inputs are consumed before the outputs are produced.
 This assumption may be false if the assembler code actually consists of
 more than one instruction.  In such a case, use @samp{&} for each output
-operand that may not overlap an input.  @xref{Modifiers}.
+operand that may not overlap an input.  @c @xref{Modifiers}.
 
 Some instructions clobber specific hard registers.  To describe this, write
 a third colon after the input operands, followed by the names of the
@@ -3187,12 +3223,12 @@
 Global register variables may not have initial values, because an
 executable file has no means to supply initial contents for a register.
 
-@node Operators, Wrappers, Global Reg Vars, Extensions
+@node Operators, New, Global Reg Vars, Extensions
+@section Non-C operators: @code{operator <?} and @code{operator >?}
+
 The GNU C++ language makes some extensions to the C++ @code{new} operator,
 and adds a few non-C operators as well.
 
-@section Non-C operators: @code{operator <?} and @code{operator >?}
-
 It is very convenient to have operators which return the "minimum" or the
 "maximum" of two arguments.  It is possible to specify a macro to
 return the minimum of two things in C++, as the following example shows.
@@ -3228,6 +3264,7 @@
 
 works correctly.
 
+@node New, Wrappers, Operators, Extensions
 @section Controlling @code{operator new}.
 
 The user now has much more control over the operator new.  Normally,
@@ -3268,7 +3305,7 @@
 to the constructors to know what actions to take if the memory returned
 from @code{__user_new} is not in their address space.
 
-@node Wrappers, Switch Ranges, Operators, Extensions
+@node Wrappers, Switch Ranges, New, Extensions
 @section Function calls as first-class objects
 
 In some cases it is desirable not to execute a function call
@@ -3498,7 +3535,7 @@
 Note that it is possible to mix static and non-static member functions
 in the same class.
 
-@node Exception Handling,, Static Member Functions, Extensions
+@node Exception Handling,  , Static Member Functions, Extensions
 @section Exception Handing
 
 The GNU C++ compiler implements a simple form of exception handling.
@@ -3606,11 +3643,11 @@
 implemented by the GNU C++ system, are also listed here.
 
 @menu
-* Structures::  GNU C++ passes structures as arguments.
-* Goto:: You can leave a binding level with a goto.
-* Instantiation:: Type instantiation facilities of GNU C++
-* Linking:: Considerations for writing code with incremental linking in mind.
-* Named Return Values:: Avoid an extra constructor call when 
+* Structures::          GNU C++ passes structures as arguments.
+* Goto::                You can leave a binding level with a goto.
+* Instantiation::       Type instantiation facilities of GNU C++
+* Linking::             Considerations for writing code with incremental linking in mind.
+* Named Return Values::  Avoid an extra constructor call when 
                         returning classes from functions.
 @end menu
 
@@ -3757,7 +3794,7 @@
 @code{DECLARE_INIT_FUNCTION} to tell GNU C++ what function should be called
 to initialize the module.
 
-@node Named Return Values, , Linking, Features
+@node Named Return Values,  , Linking, Features
 @section Avoid extra constructor call when returning classes from functions.
 
 Consider a function @code{m ()} with a return value of class @code{X}.
@@ -3861,8 +3898,8 @@
 information that makes for fixing the bug.
 
 @menu
-* Criteria:  Bug Criteria.   Have you really found a bug?
-* Reporting: Bug Reporting.  How to report a bug effectively.
+* Bug Criteria::        Have You Found a Bug?
+* Bug Reporting::       How to Report Bugs
 @end menu
 
 @node Bug Criteria, Bug Reporting, Bugs, Bugs
@@ -3924,7 +3961,7 @@
 for improvement of GNU C++ are welcome in any case.
 @end itemize
 
-@node Bug Reporting,, Bug Criteria, Bugs
+@node Bug Reporting,  , Bug Criteria, Bugs
 @section How to Report Bugs
 
 Send bug reports for GNU C++ to one of these addresses:
@@ -4622,7 +4659,7 @@
 rough spots still exist, but now any problems with multiple inheritance
 should be considered ``bugs,'' and not ``unimplemented features''.
 
-@node Bibliography, , BugList, Top
+@node Bibliography,  , BugList, Top
 @chapter Related documentation and bibliography
 
 [1] Stroustrup, Bjarne: @i{The C++ Programming Language.} Addison-Wesley, 1986.
@@ -4648,4 +4685,11 @@
 [8] Stroustrup, Bjarne: @i{The Evolution of C++: 1985 to 1989} 
 AT&T Bell Labs Tech Report.
 @contents
+
+@c Local Variables:
+@c texinfo-column-for-description: 24
+@c End:
+
 @bye
+
+@c
----------------------------------------------------------------------<

-- 
Franc,ois Pinard        ``Vivement GNU!''        pinard@iro.umontreal.ca
(514) 588-4656                                    ...!uunet!iros1!pinard
Consider joining the League for Programming Freedom.  Email for details!

Newsgroups: gnu.g++.bug