[40] in linux-announce channel archive
libg++ 2.6.2.1 is released
daemon@ATHENA.MIT.EDU (Lars Wirzenius)
Tue Dec 27 10:02:04 1994
Date: Tue, 27 Dec 1994 15:56:53 +0200
From: Lars Wirzenius <wirzeniu@cc.helsinki.fi>
To: linux-activists@niksula.hut.fi, linux-announce@vger.rutgers.edu
X-Mn-Key: announce
From: hjl@nynexst.com (H.J. Lu)
Subject: libg++ 2.6.2.1 is released
Newsgroups: comp.os.linux.announce
Keywords: libg++, C++, g++, library, binaries
Organization: ?
Approved: linux-announce@tc.cornell.edu (Lars Wirzenius)
Followup-to: comp.os.linux.misc
The libg++ 2.6.2 is still in beta. But since it is required
by libc 4.6.27 and I will be away for 6 weeks, I make the
binaries available to public. Please don't ask for the source
codes anywhere. You will get the source code from any GNU ftp
sites when it is released to public. But there is a catch. You
may not be able to compile it for Linux directly since the libg++
source code I have seen so far doesn't handle Linux right. That
is because some parts of libg++ is in the Linux C library. I have
sent some patches in. But I don't know what the public libg++
source code looks like.
This is the a.out binary release, 2.6.2.1, of the beta GNU C++
library 2.6.2 for Linux. You have to install gcc 2.6.3 or above and
libc 4.6.27 or above to use it. Please don't use it with older gcc
or libc.
There are a few major changes:
1. libcurse++.a is removed.
2. libstdc++.a and stl are in. But libg++-2.6.2/libstdc++/stl/README:
================
This directory contains Hewlett-Packard's implementation of
the C++ Standard Template Library.
It is the October 21, 1994.
It has been extensively modified so it can be compiled by g++.
(Version 2.6.1 or newer is recommended.)
Some of these hacks are pretty ugly, but are needed to work around
bugs in g++ (which we are working on).
Thanks to Carsten Bormann <cabo@informatik.uni-bremen.de> for
coming up with many of these work-arounds. However, I have
come up with alternate (possibly inferior!) work-arounds in some cases.
It is easy to crash g++ by using STL. (I found the function-object
templates in function.h to be especially fruitful in that respect!)
***SO DON'T BOTHER SENDING BUG REPORTS THAT STL CAUSES G++ TO CRASH***,
or otherwise fails to compile it. unless you also have a fix or
improved work-around!!! WE KNOW!
You should either compile without -O, or also use -felide-constuctors.
Also note that this is based on a pre-Draft Standard for C++.
Thinks are likely to change. For example, the header file names
are very likely to change. The Allocator interface will change. Etc, etc.
CYGNUS MAKES NO COMMITTMENT (yet) TO SUPPORT BACKWARD COMPATIBILITY FOR STL.
For examples if things that should work, look in the ../tests directory.
--Per Bothner
Cygnus Support bothner@cygnus.com
-----------
Here is Carsten Bormann's notes on his changes:
This is a set of seriously bletcherous hacks to HP's wonderful STL
library. The objective is to hammer STL through GCC 2.6.1 (2.6.0
seems to work, too, until you run into one of its bugs) so that us
academic types can play with STL, not to make STL better in any way.
You need to have the STL release from butler.hpl.hp.com:stl/sharfile.Z
that has as its first line in the read.me:
>> This release (dated October 21, 1994) is a minor bug fix release. <<
Many of these changes make the library much less efficient. All
changes (except vector<bool> -- see below) are due to bugs (or
non-features) in GCC, not due to any problems in STL. Do not judge
the performance of STL (code space, data space, compile time
complexity, run time complexity) from these hacks -- they will be much
better when GCC implements more of Standard C++. May the authors of
STL forgive me.
The class templates generally have been hacked in the following ways:
1) Static data members have been eliminated, generally by making them
non-static members or member functions (both of which generally
seriously impairs performance -- e.g., each rb_tree iterator now
carries a copy of NIL since there is no other place to put it). The
template list<> has suffered most.
Allocators are still static members, since I changed defalloc.h to
have static members only. (This makes allocators less useful, but
still useable.) (Note that a static member without data need not be
initialized.)
2) For member functions defined outside the class template, parameters
of type tmpl<T>::something have been changed. In some cases, a class
derived from the type has been used; in some cases the function simply
has been made inline (again causing code bloat).
3) A number of function templates in iterator.h have been declared
again for derived classes defined by templates, usually by making them
friend functions and using the name injection feature of GCC. I don't
understand the relevant sections of the WP, so I don't know if this
hack will cease to work in more conforming versions of GCC or become
unneccessary or simply STL won't work with standard C++. Some of
the necessary friends may still be missing...
defalloc.h has lost much of its functionality: see above.
bool.h has been made ineffective, since GCC supports bool.
Finally, bit_vector has been changed into a proper specialization of
vector<bool>.
[Not in this libstdc++ release. -PB]
demo.cc and Makefile build a small demo program for a number of
features of STL. This is not a test suite, so I certainly have not
found all my mistakes (could anyone in possession of such a test suite
please run it over these hacks?). Send bug reports (that follow GNU
bug reporting conventions) to
cabo@informatik.uni-bremen.de
Note that I generally do not have time to answer questions about STL.
Carsten Bormann
====================
Iostream is now back to libg++.a. But you have to use it with libc
4.6.27 or above.
It is on tsx-11.mit.edu under pub/linux/packages/GCC. It is compressed
with gzip 1.2.4.
The primary ftp sites for the compiler/C library are tsx-11.mit.edu
under pub/linux/packages/GCC and sunsite.unc.edu under pub/Linux/GCC.
The file list:
1. libg++-2.6.2.1.bin.tar.gz
REQUIRED. ./usr/include/g++, libg++.a, libiostream.a, libiberty.a
and genclass. It is libg++ 2.6.2.1. To install
su root
rm -rf /usr/g++-include /usr/include/g++
cd /
gzip -dc libg++-2.6.2.1.bin.tar.gz | tar xvvf -
ln -s /usr/include/g++ /usr/g++-include
H.J.
hjl@nynexst.com
12/25/94
--
Send submissions for comp.os.linux.announce to: linux-announce@news.ornl.gov
PLEASE remember Keywords: and a short description of the software.