mirror of
https://github.com/ENSL/NS.git
synced 2024-11-24 13:31:12 +00:00
176 lines
12 KiB
HTML
176 lines
12 KiB
HTML
|
<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>STLport: Release Notes</title><link href="doc.css" type="text/css" rel="stylesheet"></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" vlink="#314A30" link="#314A30" text="black" bgcolor="white"><table border="0" cellspacing="0" cellpadding="0"><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img border="0" height="14" width="1" src="images/trans.gif"><br><a href="../index.html"><img src="images/stl_logo_doc.gif" border="0" height="80" width="80"></a><a href="http://www.stlport.com"><img border="0" height="80" width="461" src="images/t_doc2.gif"></a><br><img src="images/trans.gif" border="0" height="24" width="1"><br><img src="images/black.gif" border="0" height="1" width="776"><br><img src="images/trans.gif" border="0" height="24" width="1"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="10" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776">
|
||
|
|
||
|
<span class="heading">STLport 4.5 Release Notes</span>
|
||
|
<p>
|
||
|
Please see etc/ChangeLog for the list of changes since 4.0.
|
||
|
A number of new platforms are supported; STLport iostreams ported to many new platforms.
|
||
|
4.5 should provide for much greater reliability and efficiency, especially in iostreams part.
|
||
|
Code bloat should be significantly reduced. Versioning is introduced for dynamic libraries.
|
||
|
</p>
|
||
|
<span class="heading">STLport 4.0 Release Notes</span>
|
||
|
<p>
|
||
|
STLport 4.0 is a major release. Finally, it offers complete C++ standard library!
|
||
|
Here is a list of major changes in 4.0 :
|
||
|
<ul>
|
||
|
|
||
|
<li>Complete ANSI C++ standard library, including <complex> and SGI iostreams.</li>
|
||
|
|
||
|
<li>Can be configured to use either SGI or native iostreams.</li>
|
||
|
|
||
|
<li>Debug mode completely redesigned. Debug mode containers are
|
||
|
implemented in terms of wrappers around non-debug ones.
|
||
|
That provides for more clean and efficient implementation.
|
||
|
In Debug Mode, different namespace <b>_STLD::</b> is being used,
|
||
|
so no link-time clashes between debug and non-debug versions are possible.</li>
|
||
|
|
||
|
<li>New platforms - gcc-2.95, Mingw32, Borland C++ Builder 5.5, SUN CC 6.0 Early Access, SUN CC in compatibility mode.</li>
|
||
|
|
||
|
</ul>
|
||
|
|
||
|
|
||
|
Minor changes:
|
||
|
<ul>
|
||
|
|
||
|
<li> std:: is not used for STLport namespace even with SGI iostreams,
|
||
|
to avoid possible clashes and facilitate 3rd-party library use.
|
||
|
Same macro redefinition technique for _STL:: used to keep clients
|
||
|
code which uses literal std::.</li>
|
||
|
|
||
|
<li>C library headers wrapping changed to account for multiple inclusion tricks
|
||
|
(needed by gcc-2.95 mostly)</li>
|
||
|
|
||
|
<li>auto_ptr updated, now it passes polymorphic tests with VC++</li>
|
||
|
|
||
|
<li>config changes - "configure" made obsolete and moved into "stlport/config/new_compiler"</li>
|
||
|
<li>Lot of minor bugfixes.</li>
|
||
|
</ul>
|
||
|
</p>
|
||
|
|
||
|
<h2><font color="#000080">STLport 3.2.1 Release Notes</font></h2>
|
||
|
|
||
|
<p>STLport 3.2.1 is a minor release in terms of functionality, but it is a huge
|
||
|
leap forward in terms of usability. </p>
|
||
|
|
||
|
<h2>std::renaming</h2>
|
||
|
3.2.1 finally solved the conflict between STLport string and std::string, which
|
||
|
used to be worked around by using namespace stlport::, to avoid link- and run-time
|
||
|
clashes. Refer to <a href="vendor_interface.html">"Cooperation with native standard library"</a>
|
||
|
section for details.
|
||
|
In 3.2.1, new, completely transparent scheme introduced to redefine <b>"std::"</b> in user
|
||
|
sources to <b>"stlport::"</b> via macros. Before 3.2.1, it was not possible, because not all headers were provided
|
||
|
with necessary wrappers.
|
||
|
Now, when user writes <b>"std::"</b> in application code, it yields the same results as if he wrote <b>"stlport::"</b>.<br>
|
||
|
The biggest advantage is that now absolutely no modifications in client code are needed to use.
|
||
|
STLport instead of native STL lib, which turns STLport into seamless drop-in component!
|
||
|
|
||
|
<h2>Windows improvements</h2>
|
||
|
STLport 3.2.1 provides the mechanism to export static members of default node allocator
|
||
|
from a designated user's DLL, which solves the problem observed with default allocator
|
||
|
and passing objects across DLL boundaries. Currently, one of user's DLL is supposed to
|
||
|
be designated to export STLport symbols. That will change as soon as STLport will provide
|
||
|
iostreams library.<p></p>
|
||
|
For MT compilation, <b><windows.h></b> is not included anymore to get synchronization
|
||
|
function prototypes. That significally reduces compilation time.
|
||
|
<p></p>
|
||
|
<h2>Quality improvements</h2>
|
||
|
<p>3.2.1 provides further code bloat reduction - hashtable uses vector <b><void*></b> internally.</p>
|
||
|
<h2>New platforms</h2>
|
||
|
Configuration files provided for DEC C++ 6.x/5.x , Borland C++ 5.02, KAI C++.
|
||
|
Windows CE configuration provided.
|
||
|
<hr>
|
||
|
|
||
|
<h2><font color="#000080">STLport 3.2 Release Notes</font></h2>
|
||
|
|
||
|
<p>STLport 3.2 is a major change from 3.12. It provides new components, new wrappers
|
||
|
and fixes many portability issues.</p>
|
||
|
<h2>New Components</h2>
|
||
|
New standard header files are provided : <limits;> and <valarray>.
|
||
|
Also, STLport now provide complete set of C library headers which are currently
|
||
|
wrappers for either old-style or new-style native C library headers.
|
||
|
<h2>Headers reorganization</h2>
|
||
|
Main STLport include directory renamed to <b>stlport</b>.
|
||
|
Old HP-style STL headers moved to <b>stlport/hp</b> directory.
|
||
|
<h2>Quality improvements</h2>
|
||
|
<p>3.2 provides new workarounds for standard allocators : EBO (empty-base optimization),
|
||
|
for automatic space optimization for instanceless allocators. Allocators with instances
|
||
|
now can be used with any compiler. Chunking problem is fixed - no memory overuse.
|
||
|
</p>
|
||
|
<p>Major restructuring - non-inline code moved to .c implementation files.
|
||
|
That makes huge code bloat reduction for compilers that support separate compilation model,
|
||
|
like IBM xlC. If this model is not supported, .c file is being included in corresponding .h file.
|
||
|
</p>
|
||
|
<p><a href="debug_mode.html">Debug</a> mode redesigned for less code bloat and memory footprint.
|
||
|
Now it use single-linked lists for iterators lists and tables for error reporting. Also it provides more flexible control on error reporting for user - now you can control whether debug aasertion throws an exception or not, or to supply your own termination routine in addition to reporting one.
|
||
|
</p>
|
||
|
<h2>New platforms</h2>
|
||
|
Configuration files provided for Apogee C++, Borland C++ Builder 4.
|
||
|
<h2>Smoother portability</h2>
|
||
|
<p>New workarounds are used for compilers with limited capabilities. Standard forms of distance()
|
||
|
and operator -> for iterators is supported for them in 3.2. Additional user-level switch
|
||
|
_STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS is added to use minimum set of default arguments on
|
||
|
template classes that have more than one - for example map<>, set<>. This is supposed to help compiling existing standard code which use shortest notation.
|
||
|
Many other portability issues reported for 3.12 are fixed, including workaround for famous Sun CC 4.2 bug. _STLP_USE_MFC switch added for MFC cooperation.
|
||
|
</p>
|
||
|
<h2>Configuration engine changes</h2>
|
||
|
<p><a href="configure.html">Configuration</a> switches changed - those describing compiler misfeatures changed so that
|
||
|
the compiler that implements complete ANSI C++ Standard and has no bugs would have empty
|
||
|
configuration file.
|
||
|
</p>
|
||
|
<br>
|
||
|
<hr>
|
||
|
<h2><font color="#000080">STLport 3.12 Release Notes</font></h2>
|
||
|
|
||
|
<h2>Configuration changes</h2>
|
||
|
<p>In 3.12, the confuguration headers stlcomp.h and configure script reside in
|
||
|
config/ directory. stlcomp.h has been splitted to compiler-specific-headers. As now stl_config.h
|
||
|
includes <config/stlcomp.h>, your compiler must be able to understand UNIX-style paths.
|
||
|
Most compilers do that automatically, but some (MetroWerks CodeWarrior) require setting the option to do that..</p>
|
||
|
<h2>Cooperation with compiler's C++ library</h2>
|
||
|
<p>STLport 3.12 is capable of using separate namespace <b>stlport::</b>
|
||
|
to avoid conflicts with standard C++ library that comes with the
|
||
|
compiler. If your compiler provides new-style <b><iostream></b>,
|
||
|
please be sure to read the <a href="vendor_interface.html">document
|
||
|
describing this technique</a>.</p>
|
||
|
<h2>New-style iostreams:</h2>
|
||
|
<p>In STLport 3.12, <b>_STLP_USE_NEW_IOSTREAMS </b>macro controls
|
||
|
whether you are using templatized iostreams or not. This setting is
|
||
|
important - STLport's <b><iostream></b> imports appropriate
|
||
|
version of native iostreams (<<b>iostream</b>> vs. <<b>iostream.h</b>>
|
||
|
depending on it. This also affects the choice of <a href="vendor_interface.html#option_2">own
|
||
|
namespace mode</a>.</p>
|
||
|
<p>Use of other new-style header names like <tt><<b>vector</b>></tt>
|
||
|
with STLport is highly recommended. </p>
|
||
|
<h2>allocator<></h2>
|
||
|
<p>In STLport 3.12, the default <b>_Alloc</b> parameter to standard
|
||
|
container is always <b>allocator<></b> (unlike in SGI STL, where
|
||
|
it is only so when the compiler supports partial specialization and
|
||
|
other new features).</p>
|
||
|
<h2>Underscored names</h2>
|
||
|
<p>All inernal names in STLport 3.12 starts with undercsore
|
||
|
("_"), as specified by C++ standard.</p>
|
||
|
<h2><a name="new%20headers"></a>New-style C library headers</h2>
|
||
|
In this release, <b>_STLP_USE_NEW_STYLE_HEADERS</b> only controls
|
||
|
STLport choice of using new-style C library headers : <cstdio> vs.
|
||
|
<stdio.h>, etc.
|
||
|
<h2>Bitset - additional parameter</h2>
|
||
|
<p>SGI STL introduced extra template parameter BufSize for bitset : <b>_WordT,
|
||
|
</b>which defaults to unsigned long. For 64-bits architectures, you may
|
||
|
wish to change it to be long long. Note that explicit use of extra
|
||
|
parameter will lead to non-portability with other STL implementations.</p>
|
||
|
<h2>Deque - additional parameter</h2>
|
||
|
<p>SGI STL introduced extra template parameter BufSize for deque : <tt>deque<class
|
||
|
T, class Alloc, size_t BufSize=0></tt>. <br>
|
||
|
That allows you to specify deque buffer size on per-instance basis. </p>
|
||
|
<p>Some compilers (<b>Borland, Visual, SunPro, ..</b>.) are unhappy
|
||
|
about non-type template parameters (particularly when deque is being
|
||
|
passed as parameter to functions). For these compilers, only default
|
||
|
buffer size option is available. You may still specify buffer size using
|
||
|
<tt>__deque__<T,Alloc,BufSize></tt>. </p>
|
||
|
<p> Note that explicit use of extra parameter will lead to
|
||
|
non-portability with other STL implementations. You may force full
|
||
|
version to be the default ( <tt>deque<class T, class Alloc=allocator<T>,
|
||
|
size_t BufSize=0></tt> ) by disabling <tt>_STLP_NON_TYPE_TMPL_PARAM_BUG</tt>
|
||
|
switch. Note that you may have problems instantiating template functions
|
||
|
taking deque as its argument then.</p>
|
||
|
|
||
|
</td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="20" width="50"><br><a href="index.html">Table of Contents</a><br></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="40" width="80"><br><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/black.gif" border="0" height="1" width="776"></td></tr><tr valign="top" align="left"><td width="24"><img src="images/trans.gif" border="0" height="1" width="24"></td><td width="776"><img src="images/trans.gif" border="0" height="5" width="50"><br><span class="copyright">Copyright 2001 by STLport</span><br><img src="images/trans.gif" border="0" height="50" width="80"></td></tr></table></body></html>
|