Bug 2024 - msvc 6/7 support will be dropped after the release of x.5.1
Summary: msvc 6/7 support will be dropped after the release of x.5.1
Status: RESOLVED FIXED
Alias: None
Product: ACE
Classification: Unclassified
Component: ACE Core (show other bugs)
Version: 5.4.3
Hardware: All All
: P3 enhancement
Assignee: DOC Center Support List (internal)
URL:
Depends on:
Blocks: 2023
  Show dependency tree
 
Reported: 2005-01-09 11:04 CST by Johnny Willemsen
Modified: 2006-11-24 08:58 CST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Johnny Willemsen 2005-01-09 11:04:25 CST
 
Comment 1 Johnny Willemsen 2005-01-09 11:04:37 CST
added block
Comment 2 Johnny Willemsen 2005-02-02 10:44:34 CST
also drop msvc7 support at that time, that compiler is broken, 7.1 is then the 
version supported.
Comment 3 Nanbor Wang 2005-02-02 17:53:58 CST
Just for my information, when was VC7 supported in the first place :-)! 
Comment 4 Johnny Willemsen 2005-02-02 17:57:28 CST
It hasn't been supported but it can be used. By checking _MSC_VER in the config-
win32-msvc.h we can then force people to not use 7.0. Now I think of it, 
shouldn't we do that already now for vc7?
Comment 5 Johnny Willemsen 2005-02-03 08:16:28 CST
Propose to add this to config-win32-msvc.h, but Steve Huston is running an ia64 
vc7 build. Checking this with Steve first.

#if (_MSC_VER >= 1400)
# include "ace/config-win32-msvc-8.h"
#elif (_MSC_VER >= 1310)
# include "ace/config-win32-msvc-7.h"
#elif (_MSC_VER >= 1300)
# error This version of Microsoft Visual C++ not supported, upgrade to 7.1
#elif (_MSC_VER >= 1200)
# include "ace/config-win32-msvc-6.h"
#else
# error This version of Microsoft Visual C++ not supported.
#endif
Comment 6 Johnny Willemsen 2005-02-03 15:24:02 CST
For ia64 there is only a vc7 compiler so the change below will break that 
environment. hopefully microsoft releases a new 64bit compiler soon so that we 
can force people to not use vc7
Comment 7 Johnny Willemsen 2005-03-11 02:11:42 CST
When vc6 is dropped we can revert the change below:

Thu Mar 10 11:20:01 2005  Jeff Parsons <j.parsons@vanderbilt.edu>

        * TAO_IDL/be/be_visitor_constant/constant_ch.cpp:
        * TAO_IDL/be/be_visitor_constant/constant_cs.cpp:

          Added preprocessor checks around IDL compiler code that
          generates inline constants. For VC6, which is broken in
          its handling of inline constants, inline constant
          generation is toggled off unless the constant is declared
          in a module or at global scope. Thanks to Johnny Willemsen
          <jwillemsen@remedy.nl> for pointing out the problem
          caused by recent changes to the IDL compiler's generation
          of constants.
Comment 8 Jeff Parsons 2005-03-18 17:14:51 CST
A couple more things we can clean up once we drop support for VC6, related to 
template typedef support:

- explicit specification of the return type template helper class in generated 
operations

- some of the template parameters in sequence, _var and _out template classes

- some of the template parameters in the argument helper classes

- some of the template parameters in the context, component and home servant 
base classes in CIAO
Comment 9 Ossama Othman 2005-03-21 13:03:19 CST
We can also reduce the number of template parameters in the
TAO::Portable_Server::get_*_arg<> function templates, as documented in the
source files.

The basic idea for the template parameter reductions mentioned here and in the
above entries is to take advantage of typedefs that depend on template
parameters, e.g.:

      template<typename T>
      ...
      typename Foo<T>::bar_type some_func();

and similarly for typedefs (traits) within class templates, such as those found
in the ACE Acceptor/Connector/Strategy/Svc_Handler templates.
Comment 10 Ossama Othman 2005-03-24 09:40:48 CST
Once MSVC++ 6 support is dropped, we can take advantage of partial template
specialization, meaning we can use specializations like ACE::If_Then_Else<>. 
This would also allow us to remove #if/else preprocessor block specific to
MSVC++ 6 in ace/CDR_Base.h.
Comment 11 Johnny Willemsen 2005-04-12 04:58:54 CDT
We can then also remove the usage of ACE_NESTED_CLASS
Comment 12 Johnny Willemsen 2005-04-12 08:46:04 CDT
Issue for CORBA::Exception:

   * @todo According to the OMG CORBA C++ Mapping version 1.1, all
   *       constructors, copy constructors and assignment operators
   *       should be moved to "protected" section in class
   *       declarations.  Since the current MS Visual C++ 6.0 compiler
   *       will cause some problems to TAO's exception mechanism, we
   *       defer doing this until we drop support for MSVC++ 6.
Comment 13 Johnny Willemsen 2005-04-19 02:32:49 CDT
After x.5.1 is out we can also force not to use vc7, Steve Huston informed me
that we can do this, ia64 is then not an issue
Comment 14 Johnny Willemsen 2005-06-10 06:20:59 CDT
After x.4.6 has been released we removed the last vc6 TAO build. This means that
we don't build this anymore. We are not going to remove support after x.5.1 is
out but things can break now.
Comment 15 Johnny Willemsen 2005-06-22 05:54:48 CDT
msvc6 is also the only compiler that defines:
ACE_HAS_BROKEN_UNEXPECTED_EXCEPTIONS

so when msvc6 is dropped, we can remove this define and the usage throughout
ACE/TAO. Especially in TAO I see this used several times.
Comment 16 Steve Huston 2005-08-29 16:34:45 CDT
Also, remove the hack I put in ace/Reactor_Token_T.h
Mon Aug 29 17:26:49 2005  Steve Huston  <shuston@riverace.com>

In ctor decl, change ACE_Token::FIFO back to ACE_TOKEN_TYPE::FIFO
Comment 17 Ossama Othman 2005-08-31 08:24:30 CDT
In TAO/tao/Pseudo_VarOut_T.h:

 * @todo Look into adding a template parameter to each of the
 *       templates in question that would be a trait containing the
 *       means for releasing references managed by the templates.
 *       Doing so should work around the non-dependent name issues in
 *       g++ 3.4, thus easing the requirement that this header be
 *       parsed last.

We can do this once we drop VC++ 6 support.
Comment 18 Johnny Willemsen 2005-11-23 08:33:25 CST
Also the new sequence implementation can go in when we drop vc6
Comment 19 Johnny Willemsen 2005-12-01 09:41:09 CST
also then remove tao/ciao/tools/config-handlers/vc6-4768.h
Comment 20 Johnny Willemsen 2005-12-22 06:23:20 CST
Also cleanup the following

Thu Dec 22 12:22:12 UTC 2005  Johnny Willemsen  <jwillemsen@remedy.nl>

        * ace/WIN32_Proactor.cpp:
          Added workarounds for vc6 which doesn't have ULONG_PTR
Comment 21 Johnny Willemsen 2006-04-19 07:46:30 CDT
the change below is reverted

When vc6 is dropped we can revert the change below:

Thu Mar 10 11:20:01 2005  Jeff Parsons <j.parsons@vanderbilt.edu>

        * TAO_IDL/be/be_visitor_constant/constant_ch.cpp:
        * TAO_IDL/be/be_visitor_constant/constant_cs.cpp:

          Added preprocessor checks around IDL compiler code that
          generates inline constants. For VC6, which is broken in
          its handling of inline constants, inline constant
          generation is toggled off unless the constant is declared
          in a module or at global scope. Thanks to Johnny Willemsen
          <jwillemsen@remedy.nl> for pointing out the problem
          caused by recent changes to the IDL compiler's generation
          of constants.

Comment 22 Johnny Willemsen 2006-04-19 07:47:00 CDT
also done;;

also then remove tao/ciao/tools/config-handlers/vc6-4768.h



------- Additional Comments From Johnny Willemsen 2005-12-22 06:23 -------

Also cleanup the following

Thu Dec 22 12:22:12 UTC 2005  Johnny Willemsen  <jwillemsen@remedy.nl>

        * ace/WIN32_Proactor.cpp:
          Added workarounds for vc6 which doesn't have ULONG_PTR

Comment 23 Johnny Willemsen 2006-11-24 08:58:05 CST
closing this one, most things are removed so far as I know