Article View: gnu.g++.bug
Article #938GNU C++ 1.41.0 installation report
From: Francois Pinard
Date: Thu, 10 Sep 1992 23:24
Date: Thu, 10 Sep 1992 23:24
341 lines
16994 bytes
16994 bytes
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!
Technical Details
Message-ID:
<9209102324.AA11662@icule.UUCP>Path:
arc1-ca.pugleaf.net!sparky!uunet!cis.ohio-state.edu!icule.UUCP!pinardShow Full Headers
Complete Article Headers
Newsgroups: gnu.g++.bug Path: arc1-ca.pugleaf.net!sparky!uunet!cis.ohio-state.edu!icule.UUCP!pinard From: pinard@icule.UUCP (Francois Pinard) Subject: GNU C++ 1.41.0 installation report Message-ID: <9209102324.AA11662@icule.UUCP> Sender: gnulists@ai.mit.edu Reply-To: pinard@iro.umontreal.ca Organization: GNUs Not Usenet Distribution: gnu Date: Thu, 10 Sep 1992 23:24:18 GMT Approved: bug-g++@prep.ai.mit.edu Lines: 342