Related articles |
---|
GCC verson 2.6.0 now available gnu@ai.mit.edu (1994-07-16) |
Newsgroups: | comp.compilers |
From: | gnu@ai.mit.edu (GNU Mailing List Maintenance) |
Keywords: | GCC, C, C++, available, FTP |
Organization: | Project GNU, Free Software Foundation, 675 Mass. Ave., Cambridge, MA 02139, USA +1-617-876-3296 |
Date: | Sat, 16 Jul 1994 00:31:12 GMT |
The file gcc-2.6.0-tar.gz (6324585 bytes) is now available via anonymous
ftp from prep.ai.mit.edu and the mirror sites listed below.
The major changes from GCC 2.5.8 are in the C++ front end, but there have
been a large number of bugs fixed in the entire compiler and there are a
few new features, optimizations, and configurations that are supported in
this version. See the summary of new features below for details.
Starting with 2.6.0, language-specific files are now located in
subdirectories of gcc-2.6.0. For example, the files for the C++ front-end
are located in the subdirectory `cp'. If you install other languages on
top of GCC (for example, GNAT 1.82 or later), the `configure' script will
locate them and build a unified Makefile.
Because of the large number of files that have been renamed, deleted, and
added, upgrading from 2.5.8 to 2.6.0 via a set of diffs is error-prone, so
we are not supplying those diffs now. (If there is sufficient demand, we
may condider making them and a script to do the renames and deletions
required; we would appreciate any volunteers to do this.)
Bugs encountered when compiling or running C++ programs should be reported
to bug-g++@prep.ai.mit.edu; bugs from C or Objective-C should be reported
to bug-gcc@prep.ai.mit.edu. Please read the section "Reporting Bugs" in
the GCC manual to see what is needed in your bug reports. Bugs found in
other front-ends should be reported to the bug reporting address specified
by that front-end.
Although we have done extensive testing, it is unfortunately likely that
there are bugs in this release, especially in the less-used
configurations. Therefore, it is likely that there will be a GCC 2.6.1
release in 7-10 days to fix bugs reported in the next few days. So there
are both advantages and disadvantages of picking up this version instead
of waiting for 2.6.1.
---------------------------------------------------------------------
Noteworthy changes in GCC version 2.6.0:
Numerous bugs have been fixed, in the C and C++ front-ends, as well as in
the common compiler code.
This release includes the C, Objective-C, and C++ compilers. However, we
have moved the files for the C++ compiler (G++) files to a subdirectory,
cp. Subsequent releases of GCC will split these files to a separate TAR
file.
The G++ team has been tracking the development of the ANSI standard for
C++. Here are some new features added from the latest working paper:
* built-in boolean type 'bool', with constants 'true' and 'false'.
* array new and delete (operator new [] and delete []).
* WP-conforming lifetime of temporaries.
* explicit instantiation of templates (template class A<int>;),
along with an option (-fno-implicit-templates) to disable emission
of implicitly instantiated templates, obsoletes -fexternal-templates.
* static member constants (static const int foo = 4; within the
class declaration).
Many error messages have been improved to tell the user more about the
problem. Conformance checking with -pedantic-errors has been improved.
G++ now compiles Fresco.
There is now an experimental implementation of virtual functions using
thunks instead of Cfront-style vtables, enabled with -fvtable-thunks.
This option also enables a heuristic which causes the compiler to only
emit the vtable in the translation unit where its first non-inline virtual
function is defined; using this option and -fno-implicit-templates, users
should be able to avoid #pragma interface/implementation altogether.
Signatures have been added as a GNU C++ extension. Using the option
-fhandle-signatures, users are able to turn on recognition of signatures.
A short introduction on signatures is in the section `Extension to the C++
Language' in the manual.
The `g++' program is now a C program, rather than a shell script.
Lots and lots and lots of bugs fixes, in nested types, access control,
pointers to member functions, the parser, templates, overload resolution,
etc, etc.
There have been two major enhancements to the Objective-C compiler:
1) Added portability. It now runs on Alpha, and some problems with
message forwarding have been addressed on other platforms.
2) Selectors have been redefined to be pointers to structs like:
{ void *sel_id, char *sel_types }, where the sel_id is the unique
identifier, the selector itself is no longer unique.
Programmers should use the new function sel_eq to test selector
equivalence.
The following major changes have been made to the base compiler and
machine-specific files.
- The MIL-STD-1750A is a new port, but still preliminary.
- The h8/300h is now supported; both the h8/300 and h8/300h ports come
with 32 bit IEEE 754 software floating point support.
- The 64-bit Sparc (v9) and 64-bit MIPS chips are supported.
- NetBSD is supported on m68k, Intel x86, and pc523 systems and FreeBSD
on x86.
- COFF is supported on x86, m68k, and Sparc systems running LynxOS.
- 68K systems from Bull and Concurrent are supported and System V
Release 4 is supported on the Atari.
- GCC supports GAS on the Motorola 3300 (sysV68) and debugging
(assuming GAS) on the Plexus 68K system. (However, GAS does not yet
work on those systems).
- System V Release 4 is supported on MIPS (Tandem).
- For DG/UX, an ELF configuration is now supported, and both the ELF
and BCS configurations support ELF and COFF object file formats.
- OSF/1 V2.0 is supported on Alpha.
- Function profiling is also supported on Alpha.
- GAS and GDB is supported for Irix 5 (MIPS).
- "common mode" (code that will run on both POWER and PowerPC
architectures) is now supported for the RS/6000 family; the
compiler knows about more PPC chips.
- Both NeXTStep 2.1 and 3 are supported on 68k-based architectures.
- On the AMD 29k, the -msoft-float is now supported, as well as
-mno-sum-in-toc for RS/6000, -mapp-regs and -mflat for Sparc, and
-membedded-pic for MIPS.
- GCC can now convert division by integer constants into the equivalent
multiplication and shift operations when that is faster than the
division.
- Two new warning options, -Wbad-function-cast and
-Wmissing-declarations have been added.
- Configurations may now add machine-specific __attribute__ options on
type; many machines support the `section' attribute.
- The -ffast-math flag permits some optimization that violate strict
IEEE rules, such as converting X * 0.0 to 0.0.
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.