CodeWarrior Release Notes
19 Mars 1997 : CW IDE C/C++ 1.7.1
Metrowerks 68K Linker Release Notes
Bugs Fixed in This Version
- Fixed a bug where <Project Name>.seg files would not
work correctly.
- Fixed a bug where when the linker would write the default
<project name>.exp file, if the project's name was longer
than 27 characters, the link would fail with a cryptic message.
- Fixed a bug in the CFM68K linker where flat pef data fork
based applications would crash under System 7.5.5 or greater when
the CFM68K enabler is not installed.
Metrowerks PPC Linker Release Notes
Bugs Fixed in This Version
- Fixed a bug where the linker would complain about multiply
defined TOC entries when linking against Apple MrC xcoff
libraries.
- Fixed a bug where when the linker would write the default
<project name>.exp file, if the project's name was longer
than 27 characters, the link would fail with a cryptic message.
Metrowerks PPC Release Notes
New Features in This Version
- Added new intrinsic functions:
float __fabsf(float);
float __fnabsf(float);
These will generate more efficient code than __fabs() and
__fnabs() when using 'float' variables.
Bugs Fixed in This Version
- Fixed a bug with long long shifting left/right not setting the
correct bits.
- 'long long' struct members misaligned under PowerPC alignment
CW11 had a bug wherein 'long long' struct members were aligned to
2-byte boundaries. It now properly aligns them to 4-byte
boundaries.
*** ANY EXISTING CODE THAT USES 'long long' MUST BE RECOMPILED ***
- 'long long' arguments do not work with varargs routines.
The calling convention used for 'long long' in CW11 was
incompatible with the varargs implementation. It has been changed
so that varargs work properly, and is now compatible woth Apple's
proposed ABI.
*** ANY EXISTING CODE THAT USES 'long long' MUST BE RECOMPILED ***
Metrowerks 68K Release Notes
New Features in This Version
- Support for a new (non-SANE/non-881) flaoting point runtime
model
#pragma fp_library on|off|reset (default
off)
This model emulates IEEE floating points in software:
- 32-bit (single): float
- 64-bit (double): short double, double, long double
You have to include the runtime library "fp68k.lib" to use this
model.
#pragma fp_pilot_traps on|off|reset
(default off)
This #pragma will use the pilot system traps instead of the
"fp68k.lib" library. This option can only be used on the Pilot.
Metrowerks C/C++ Compiler Release Notes
New Features in This Version
- Support for the Objective C #import preprocessor directive
This also works for ANSI C and C++ unless ANSI strict is enabled.
- The inlining is now more selective at the 3rd and 4th levels
to avoid excessive code bloat and compile times. Most noticeable
with MSL C++.
- Added support for long long constants defined using 'll' or
'LL'. These constants may also be defined as being unsigned, by
using a 'u' or 'U' prefix.
Bugs Fixed in This Version
- The compiler gives an error message when you try to use
dynamic_cast for a SOM class pointer or reference.
- "<bool> op= <expr>" expressions are now supported.
- huge 64-bit integral constants (bit 63 set) are now treated as
unsigned.
- fixes a bug with statement level '&&' and '||'
expressions.
- fixes a bug in the vtable (virtual function dispatch table)
slot allocation in classes with overloaded virtual functions.
vtable slots were not allocated in lexical order when newly
introduced overloaded functions were not declared as a block. This
bug was introduced in CW9.
class foo {
virtual void f();
virtual void g();
virtual void f(int);
};
CW9-CW11 would allocate the vtable slots in non-lexical order:
foo::f()
foo::f(int)
foo::g()
now the compiler will use the correct order:
foo::f()
foo::g()
foo::f(int)
you can still get the old ordering by using "#pragma old_vtable
on"
#pragma old_vtable on|off|reset (default
off)
if you have to link with a C++ library that was generated by
CW9-11.
- Fixed a bug with comparisons against 0.0 and inlining.
27 Mars 1997 : MSL 2.1.1
Metrowerks Standard C Library Release Notes
New Features in This Version
Note that, in order to use long long support,
__MSL_LONGLONG_SUPPORT__ must be defined when the MSL C library is
built as well as when the application is built.
Bugs Fixed in This Version
- limits.h has been modified so that limits.be.h is not
#included unless __dest_os == __be_os.
- \r in output to the console now causes a non-destructive
carriage return.
- \b in output to the console now causes a non-destructive
backspace.
- #pragma options align=native
#if defined(__CFM68K__) &&
!defined(__USING_STATIC_LIBS__)
#pragma import on
#endif
/*...*/
#if defined(__CFM68K__) &&
!defined(__USING_STATIC_LIBS__)
#pragma import reset
#endif
has been added to all source files.
- math.h and fp.h (in Universal headers) have been modified so
that they can both be #included without syntax errors.
- sscanf() now works correctly with a null source string.
- printf() modified so that a sign appears in the correct
position when left zero-fill is specified.
- printf() now prints -Inf for negative infinite values.
Metrowerks' Standard C++ Library Release Notes
Getting the New C++ Draft
Copies of the Committee draft are now available for downloading
at:
<http://www.setech.com/x3.html>
,
<http://www.maths.warwick.ac.uk/c++/pub/>
New Features in This Version
- long long support for the basic_istream operator>> and
the basic_ostream operator<<. Note that, in order to use
this support, __MSL_LONGLONG_SUPPORT__ must be defined when the
MSL C++ library is built ans well as when the application is
built.
- PPC shared library support
- MSL Build App, an application that builds the proper MSL
libraries for a given configuration
Bug Fixes since MSL C++ 2.1
- tree::buffer_size() now calls allocator.init_page_size(). A
new member function, init_page_size_small() has been added in the
allocator class. This will allocate a buffer 1/4 the size of the
default ammount.
- Static destructors with iostream objects were not being
flushed.
#include <iostream.h>
class foo{
public:
foo() { cout << "foo::foo()\n"; }
~foo() { cout << "destructor\n"; }
};
static foo f;
int main() { return 0;
};
~foo was not being called. This is now fixed.
- The statement cin >>
int_var; was failing when the value 0 was entered. The
failbit in cin was being set, preventing any further input from
cin. This is now fixed.
- #pragma options align=native
#if defined(__CFM68K__) &&
!defined(__USING_STATIC_LIBS__)
#pragma import on
#endif
/*...*/
#if defined(__CFM68K__) &&
!defined(__USING_STATIC_LIBS__)
#pragma import reset
#endif
has been added to all source files.
- Initial whitespace is now skipped in operator>>
basic_string and basic_string.getline().
- Corrections to putback() for bufferless files.
- Corrections to list::~list() for proper destruction
- Additional iterator_trait specializations for all basic types
- Remove const_pointer allocator<T>::address
(const_reference x) to resolve ambiguous access errors for
list<int*>, vector<int*>
- Fixed reverse_iterator::operator+,-,+=,-= defined out of line
so that reverse_iterator can be instantiated for non random-access
iterators
- stable_sort codegen less inlinded due to new compilers
Outstanding Bugs
- rb_tree::key () function in rb_tree::insert () does not work
correctly.
- locale::id::id_ not initialized properly
28 Janvier 1997 : System.In 1.0
System.in is a collection of Java classes that will allow you to
use System.in.read() calls in your Java applications run by
Metrowerks Java.
13 Février 1997 : Stationery
This project stationery update will correct some of the problems
introduced with the new Metrowerks Standard Library (MSL) and
inconsistent stationery/compiled library settings. Please read the
release notes for a more indepth description of the changes in this
update.
20 Février 1997 : MWDebug 1.6.5
Fixes a bug that caused the debugger to erroneously complain that
a source file had been modified since the program had been linked,
when in fact it hadn't been modified.
1er Mars 1997 : Constructor 2.4.1
Constructor 2.4.1 incorporates fixes for numerous cosmetic
glitches, some PPob parsing errors, crashes in several different
views, and other problems. For a complete list of fixes please see
the release notes.
2002