Digital Mars C/C++ Version Info
by Walter Bright
Copyright (c) 1997-2001 by Digital Mars. All Rights Reserved.
www.digitalmars.com
Contents:
WHAT'S NEW FOR C/C++ 8.22
For C:
- Increased max string length.
- Fixed cg87 263 error.
For C++:
- Fixed bug with -D_MT and STL.
- Fixed template expansion bug with array constructors.
STL:
- Fixed stl_config.h conflict with windows.h
Library:
- Fixed bug in _kbhit() for Win32.
WHAT'S NEW FOR C/C++ 8.20
For C++:
- Added SGI STL 3.3. Numerous fixes to support it.
- Templates are now instantiated only when semantically required,
rather than whenever referred to.
- Added header files cassert, cctype, cerrno, cfloat, ciso646,
climits, clocale, cmath, csetjmp, csignal, cstdarg, cstddef, cstdio,
cstdlib, cstring, ctime, cwchar, cwctype, new.
- Fixed C++ declarations for strchr(), etc., per C++98 21.4.
- Fixed warnings about 0 sized structs used before set.
- Fixed default constructor bug with new(p) char().
- Fixed unused operator->() expansion inside template spurious error.
- In-class static const integral initializers now supported.
- Fixed default template parameter bug.
WHAT'S NEW FOR C/C++ 8.1e
For C++:
- -Ab and -Aw are now always on
(meaning that bool and wchar_t
are real types, not typedefs).
Warning: This can break existing code.
- -Aa is now always on
(meaning that operator new[] and operator delete[]
are separately overloadable)
Warning: This can break existing code.
- parameter-declarations now allowed in function template
template-parameter-list.
- typename can now appear in template-parameter
instead of class.
- Explicit template function template-arguments implemented.
- Partial ordering of function templates implemented.
- elaborated-type-specifier (i.e. typename) implemented.
- mutable implemented.
- explicit implemented.
WHAT'S NEW FOR C/C++ 8.1d
- Fixed code gen bug with -Ab.
- Fixed name mangling with complex floating point types.
- Fixed code gen bug with complex floating point types.
- stdlib.h now compiles with -A.
- Added util.h.
WHAT'S NEW FOR C/C++ 8.1c
- Regular Expressions now added to runtime library.
- Fixed code gen bugs with __interrupt functions.
- rint functions are now inlined by the compiler.
- fabsl and sqrtl are now inlined by the compiler.
- Fixed bug with /= for long doubles.
- Fixed long long support in library.
- Improved long double support in library.
WHAT'S NEW FOR C/C++ 8.1A
- Name mangling for type bool is changed from _X to _N, in order
to be more compatible with VC.
- Literal float support has now been brought in line with ANSI
C99.
- Floating point constants for other than static initializations are
not folded if the folding would result in any exception flags being
raised. This is per C99. To always fold the constants anyway, use the
-ff (fast float) flag.
- Fixed problems with hex long doubles.
WHAT'S NEW FOR C/C++ 8.18
- Hex floats no longer turned off by -A.
- Long longs no longer turned off by -A.
- // comments in C no longer turned off by -A.
- The default CPU target is now the Pentium Pro (-6), not the Pentium.
WHAT'S NEW FOR C/C++ 8.17
- Fixed problem with dllexport on function pointers.
- Added gc.h
- Added Hans Boehm garbage collector to rtl
- Added long double, %a and %A support to printf for win32
WHAT'S NEW FOR C/C++ 8.16
- Fixed 16 bit code gen bugs.
- Added iso646.h
- Added stdint.h
- Added stdbool.h
- Added va_copy() to stdarg.h
- Added isxxxx() floating point comparison macros to math.h
WHAT'S NEW FOR C/C++ 8.15
- Fixed spurious syntax error compiling some MFC code.
WHAT'S NEW FOR C/C++ 8.13
- Now with 32 bit X32 DOS extender support!
- Fixed code generator support for X32.
WHAT'S NEW FOR C/C++ 8.12
- Changed __i keyword to __imaginary due to numerous conflicts
with existing code.
WHAT'S NEW FOR C/C++ 8.10
- Added support for __restrict pointer syntax.
- Added support for macros with variable & blank argument lists per C99.
- Added support for __func__ per C99 6.4.2.2.
- Added __FUNCTION__ predefined macro.
- Added __PRETTY_FUNCTION__ predefined macro.
- Fixed bug in wcscmp() for 0 length strings.
- -Aa switch to SC is now the default. There is no way to turn it off.
- Added _Complex and _Imaginary type support per C99.
- Renamed C++ complex class file complex.h to oldcomplex.h.
- Added new complex.h per C99.
- Added complex library functions per C99.
- Added isinf() per C99.
- Added long double support to isxxx() functions in fp.h.
WHAT'S NEW FOR C/C++ 8.0
- Added __DMC__ predefined macro.
- Added -d switch to generate make dependency information.
- Added debug statements.
- Added debug declarations.
- Added design by contract features.
- Added ability to embed C in HTML files.
- Added native support for 80 bit long doubles (Win32 only).
- Added support for CPU bit instructions via functions in bitops.h.
- Switch -mn is now the default instead of -ms.
- 16 bit preprocessor spp.exe no longer supported - use sppn.exe.
WHAT'S NEW FOR C/C++ 7.6
- Better Code Generation
- Merged C and C++ Compilers.
They are now in the same executable. This saves disk space and testing
time.
WHAT'S NEW FOR C/C++ 7.5
Added MMX Extensions
New Intel MMX instructions now supported by the inline assembler.
Added Support for Alternative Names
With -A and the C++ compiler, the alternative representations
in the standard 2.9 are now supported. In the future, they will
become the default, so don't use the following names otherwise:
and and_eq bitand bitor compl not
not_eq or or_eq xor xor_eq
Added -B[e|f|g|j] switches
See "Definitive list of SC switches" for how they work.
The SCMSGS environment variable and SC.INI setting is no
longer supported.
Added #elseif directive, with same semantics as #elif.
Changed overload resolution rules to reflect ANSI C++ standard changes
regarding integral promotions vs integral conversions.
Added namespaces
Added -g5 switch
See "Definitive list of SC switches".
Added #pragma setlocale("locale")
See "Pragmas supported by SC/SC++".
Added _CPPRTTI and _CPPUNWIND predefined macros
See "Predefined macros".
Added New Keywords
explicit, mutable, typename - but the semantics of them aren't
implemented.
Added __unaligned Keyword
For unaligned pointer support for PowerPC. Ignored for Intel
compiler.
Added Pentium Pro Instructions to Inline Assembler and OBJ2ASM.
Added new P6 instructions:
CMOVcc
FCMOVcc
FCOMI
FCOMIP
FUCOMI
FUCOMIP
RDMPC
Added -ND switch
See "DEFINITIVE LIST OF SC SWITCHES",
and _MT and _DLL in "PREDEFINED MACROS".
-NLlibfile
Added this switch. See "DEFINITIVE LIST OF SC SWITCHES".
__wacrtused
__wacrtused_con
Added these for use in Win32 UNICODE apps. See "ACRTUSED".
SUPPORT and USER GROUPS
Digital Mars C++ is supported via newsgroups at news.digitalmars.com
To join the newsgroups:
Netscape Messenger:
- Start Netscape Messenger.
- Goto menu: Edit->Preferences.
- Expand Mail & Newsgroups in the Category tree.
- Select Newsgroup Servers
- Click Add... (at the right)
- Type the name of the server: news.digitalmars.com
- Click OK
- Close Preferences, i.e. click OK. news.digitalmars.com should appear at the bottom in
the tree with the inbox.
- Click on news.digitalmars.com with the right mouse button
- Choose Subscribe to newsgroups...
- This will give you Communicator: Subscribe to Newsgroups.
- Click Subscribe
- Close Communicator: Subscibe to Newsgroups, i.e. click OK
- Now the newsgroups you subscribed to should appear underneath news.digitalmars.com
Microsoft Outlook Express:
- Start Outlook Express
- Goto menu: Tools->Accounts...
- This will give you Internet Accounts
- Click the News tab.
- Click the Add button
- Select News
- Choose a Display Name
- Click Next
- Choose an E-mail Address
- Click Next
- Type the name of the News (NNTP) server: news.digitalmars.com.
- Click Finish
- Close Internet Accounts, i.e. click Close
- Choose Yes to the question Would you like to download newsgroups from the news account you added?
- Click c++
- Click Subscribe
- Close Newsgroup Subscriptions, i.e. click OK
- Now under the Folders tree news.digitalmars.com should appear underneath c++
Good luck!