www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/01/15/10:01:52

From: Chris Croughton <crough45 AT amc DOT de>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: DJ port of GCC 2.8.0?
Date: Thu, 15 Jan 1998 16:01:17 +0100
Message-ID: <34BE24BD.237C@amc.de>
References: <69jo07$sqi$1 AT galileo DOT ticon DOT net>
NNTP-Posting-Host: bob.bob.bofh.org
MIME-Version: 1.0
Lines: 78
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

Sopwith Messerschmidt wrote:

> If he does, what new goodies can we look forward to in the new
> distribution?

The ones in the GCC 2.8.0 release, which include:

*** Changes since G++ version 2.7.2:

* A public review copy of the December 1996 Draft of the ANSI/ISO C++
  proto-standard is now available. See

        http://www.cygnus.com/misc/wp/

  for more information.

* g++ now uses a new implementation of templates. The basic idea is that
  now templates are minimally parsed when seen and then expanded later.
  This allows conformant early name binding and instantiation controls,
  since instantiations no longer have to go through the parser.

  What you get:

     + Inlining of template functions works without any extra effort or
       modifications.
     + Instantiations of class templates and methods defined in the
class
       body are deferred until they are actually needed (unless
       -fexternal-templates is specified).
     + Nested types in class templates work.
     + Static data member templates work.
     + Member function templates are now supported.
     + Partial specialization of class templates is now supported.
     + Explicit specification of template parameters to function
templates
       is now supported.

  Still not supported:

     + Member class templates.
     + Template template parameters.
     + Template friends.

* Exception handling support has been significantly improved and is on
by
  default.  This can result in significant runtime overhead.  You can
turn
  it off with -fno-exceptions.

* RTTI support has been rewritten to work properly and is now on by
default.
  This means code that uses virtual functions will have a modest space
  overhead.  You can use the -fno-rtti flag to disable RTTI support.

New features for Intel x86 family:

    Add scheduling parameters for Pentium and Pentium Pro.

However, C++ namespaces are still not supported.  The big difference is 
that if you try to use them you get an error message:

  1.cc:4: sorry, not implemented: namespace
  1.cc:19: sorry, not implemented: using directive

instead of the compiler crashing (this is an improvement of a kind - at 
least it lets you know instead of sending in bug reports).

Will it be worth it?  Well, the exception support probably will be worth
it for some people (me, definitely).  I don't know anyone using RTTI
(that's
a GCC extension to allow a parameter to be passed anonymously to a
function
which determines its type at runtime).  And the lack of namespaces is a
disappointment but not unexpected (it was never promised for this
release;
I suspect after the C++ standard is finalised they'll put it in).

Chris C

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019