@SysInclude { tbl }
@SysInclude { doc }
def @HeaderA right x { @CD +8p @Font { x } }
def @HeaderB right x { @CD +6p @Font { x } }
def @HeaderC right x { @CD +4p @Font { x } }
def @HeaderD right x { @CD +2p @Font { x } }
def @HeaderE right x { @CD -1p @Font { x } }
def @HeaderF right x { @CD -2p @Font { x } }
# Created by HTML::LoutParser.pm on 2001/06/28 from GNUgcc.htm.
@Doc @Text @Begin
#DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"

# saved from url=(0044)http://www.gnu.org/press/2001-06-18-GCC.html 

#start html
#start head

@CentredDisplay { +10p } @Font {#start title
GNU Compiler Collection Version 3.0 Is Released; Includes Support for Java
and IA-64 - GNU Project - Free Software Foundation (FSF)}
#end title

#unhandled start meta attributes= (content=>text/html; charset=windows-1252), (http-equiv=>Content-Type)

#unhandled start meta attributes= (content=>GNU, FSF, Free Software Foundation, Linux, press, GPL, general, public, license, freedom, software, free, gcc, complier, collection, release, toolset, java, c, c++, intel, amd, stallman, open, source, commercial, sustainable, business, models), (http-equiv=>Keywords)

#unhandled start meta attributes= (content=>The Free Software Foundation announced on Monday 18 June 2001 the 3.0 release of the GNU Compiler Collection (GCC).  GCC is a Free (as in freedom) Software compiler toolset, licensed under the GNU General Public License (GPL). Native Java compilation support is now available.), (http-equiv=>Description)
#unhandled start link attributes= (href=>mailto:pr@gnu.org), (rev=>made)

#unhandled start meta attributes= (name=>GENERATOR), (content=>MSHTML 5.50.4616.200)
#end head

#start body attributes= (bgcolor=>#ffffff), (vlink=>#9900dd), (text=>#000000), (link=>#1f00ff), (alink=>#ff0000)
{}@Underline {#start a attributes= (href=>http://www.gnu.org/press/2001-06-18-GCC.txt)
A plain text version of this 
press release is available}
#end a
. 

@PP
#start p
{}@B {#start strong
FOR IMMEDIATE RELEASE}
#end strong
 
@LLP
#start br
Media Contact: Free Software 
Foundation
@LLP
#start br
Bradley M. Kuhn {}@Underline {#start a attributes= (href=>mailto:pr@gnu.org)
mailto:pr"@"gnu.org}
#end a

@LLP
#start br
Phone: +1-617-542-5942
@LLP
#start br

@LLP
#start br


@HeaderA {#start h1
GNU Compiler Collection Version 3.0 Is Released}
#end h1

@LLP
#start br


@HeaderB {#start h2
Includes Support for Java and IA-64}
#end h2


@PP
#start p
{}@B {#start strong
Boston, Massachusetts, USA}
#end strong
 - {}@I {#start i
Monday, June 18, 2001}
#end i
 - 
The Free Software Foundation announced today the 3.0 release of the GNU
Compiler 
Collection (GCC). GCC is a Free (as in freedom) Software compiler toolset, 
licensed under the GNU General Public License (GPL). 

@PP
#start p
This version of GCC fully incorporates a native-code compiler for the Java 
programming language. This allows Java programs that run faster, while
using a 
completely Free Software system without depending on a proprietary Java 
compiler. 

@PP
#start p
GCC 3.0 includes rewritten support the Intel and AMD 32-bit family of 
processors, which includes all Pentium systems. GCC 3.0 now generates much 
better output for these processors. This allows programs to run faster on
such 
systems. 

@PP
#start p
GCC 3.0 supports the Intel IA-64 processor. This support will allow 
completely Free Software systems to run on the IA-64 architecture
immediately 
upon the public release of IA-64. GCC 3.0 also supports other new chipsets
from 
Motorola, Atmel, Mitsubishi, Fujitsu and Sun. 

@PP
#start p
GCC 3.0 vastly improves C++ support. Many bug fixes and changes to the C++ 
support library allow GCC 3.0 to conform better to ISO C++ standards than
ever 
before. Also included is a new Application Binary Interface (ABI) for C++. 

@PP
#start p
But, technological considerations are not the most important reasons for 
using GCC. Richard M. Stallman, president of the Free Software Foundation, 
pointed out: ``Many users choose GCC for technical advantages, such as
having one 
compiler that works on many systems, or its powerful C extensions. But the
most 
important benefit of GCC is freedom--your freedom. A free operating system 
requires a free compiler. GCC was an essential step on the road to
freedom.'' 

@PP
#start p
GCC 3.0 has benefitted from the efforts of several successful businesses 
built around support and development of Free Software. GCC, which is Free 
Software licensed under the GPL, has facilitated sustainable business
models. 
Some of these companies are listed in the Free Software Foundation's
service 
directory, which can be found at:
@LLP
#start br
{}@Underline {#start a attributes= (href=>http://www.gnu.org/prep/service.html)
http:"/""/"www.gnu.org"/"prep"/"service.html}
#end a
 

@PP
#start p
More information about the new features of GCC 3.0 can be found at:
@LLP
#start br
{}@Underline {#start a attributes= (href=>http://www.gnu.org/software/gcc/gcc-3.0/features.html)
http:"/""/"www.gnu.org"/"software"/"gcc"/"gcc-3.0"/"features.html}
#end a
 

@PP
#start p
The software can be downloaded from:
@LLP
#start br
{}@Underline {#start a attributes= (href=>http://www.gnu.org/software/gcc/releases.html)
http:"/""/"www.gnu.org"/"software"/"gcc"/"releases.html}
#end a
 

@PP
#start p
Users are encouraged to use mirror sites for downloads, to decrease the
load 
on GNU and FSF servers. 

@PP
#start p


@LLP @FullWidthRule @LLP
#start hr


@HeaderC {#start h3
About the GNU Compiler Collection (GCC):}
#end h3

@LLP
#start br
The GNU Compiler Collection 
(GCC), originally called the GNU C Compiler, includes compilers for the C,
C++, 
Objective C, Fortran, and Java languages. Originally developed by Richard
M. 
Stallman, GCC is now developed and improved by a worldwide network of 
volunteers, lead by the GCC Steering Committee, the official maintainers of
GCC. 
The GCC website can be found at:
@LLP
#start br
{}@Underline {#start a attributes= (href=>http://www.gnu.org/software/gcc/gcc.html)
http:"/""/"www.gnu.org"/"software"/"gcc"/"gcc.html}
#end a
 

@PP
#start p


@HeaderC {#start h3
About GNU:}
#end h3

@LLP
#start br
GNU is a Free Software Unix-like operating system. 
Development of GNU began in 1984. GCC is the compiler for the GNU system. 

@LLP @FullWidthRule @LLP
#start hr


@PP
#start p
Copyright (C) 2001 Free Software Foundation, Inc., 59 Temple Place - Suite 
330, Boston, MA 02111, USA 

@PP
#start p
Verbatim copying and distribution of this entire article is permitted in
any 
medium, provided this notice is preserved. 

@PP
#start p
Updated: # timestamp start 
$Date$ $Author: bkuhn 
$ # timestamp end 


@LLP @FullWidthRule @LLP
#start hr

#end body
#end html

@End @Text
