Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <2017 Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <2017
<== Date ==> <== Thread ==>

Subject: RE: EPICS 7 Release Candidate 1
From: Mark Rivers <rivers@cars.uchicago.edu>
To: 'Michael Davidsaver' <mdavidsaver@gmail.com>, "Peterson, Kevin M." <kmpeters@anl.gov>, "Johnson, Andrew N." <anj@aps.anl.gov>, EPICS tech-talk <tech-talk@aps.anl.gov>
Date: Wed, 6 Dec 2017 22:38:21 +0000
Hi Michael,

I just installed Visual Studio 2017 and tested with that, using the default settings.  It fails with the same error as 2015

h:\epics-devel\base-7.0.1\modules\pva2pva\pdbapp\pdbgroup.h(197): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVED. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning.
H:/epics-devel/base-7.0.1/include\pv/sharedPtr.h(93): note: see declaration of 'std::tr1'
../pdb.cpp(69): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVED. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning.
H:/epics-devel/base-7.0.1/include\pv/sharedPtr.h(93): note: see declaration of 'std::tr1'
../pdb.cpp(62): error C2664: 'std::shared_ptr<PVIFBuilder>::shared_ptr(std::shared_ptr<PVIFBuilder> &&) noexcept': cannot convert argument 1 from 'std::auto_ptr<PVIFBuilder>' to 's
td::auto_ptr<PVIFBuilder> &&'
../pdb.cpp(61): note: You cannot bind an lvalue to an rvalue reference
../pdb.cpp(508): warning C4267: '=': conversion from 'size_t' to 'unsigned int', possible loss of data
../pdb.cpp(560): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVED. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning.
H:/epics-devel/base-7.0.1/include\pv/sharedPtr.h(93): note: see declaration of 'std::tr1'
../pdb.cpp(624): warning C4996: 'std::tr1': warning STL4002: The non-Standard std::tr1 namespace and TR1-only machinery are deprecated and will be REMOVED. You can define _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING to acknowledge that you have received this warning.
H:/epics-devel/base-7.0.1/include\pv/sharedPtr.h(93): note: see declaration of 'std::tr1'
H:/epics-devel/base-7.0.1/configure/RULES_BUILD:237: recipe for target 'pdb.obj' failed
make[4]: *** [pdb.obj] Error 2


I then added the flags 
/std:c++14 
-D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING

But it still fails with the same error.

cl -EHsc -GR           -DUSE_TYPED_RSET -I../../common -I../../p2pApp -DFINAL_LOCATION="\"H:/epics-devel/base-7.0.1\""     -nologo -D__STDC__=0 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE   -Ox -Oy-   -W3 -w44355 -w44344 -w44251        -MT  -TP /std:c++14 -D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING  -I. -I../O.Common -I. -I. -I.. -IH:/epics-devel/base-7.0.1/include/compiler/msvc -IH:/epics-devel/base-7.0.1/include/os/WIN32 -IH:/epics-devel/base-7.0.1/include -IH:/epics-devel/base-7.0.1/include/compiler/msvc -IH:/epics-devel/base-7.0.1/include/os/WIN32 -IH:/epics-devel/base-7.0.1/include        -c ../pdb.cpp
pdb.cpp
H:/epics-devel/base-7.0.1/include\pv/pvData.h(583): warning C4250: 'epics::pvData::PVString': inherits 'epics::pvData::PVScalarValue<std::string>::epics::pvData::PVScalarValue<std:
:string>::deserialize' via dominance
H:/epics-devel/base-7.0.1/include\pv/pvData.h(488): note: see declaration of 'epics::pvData::PVScalarValue<std::string>::deserialize'
../pdb.cpp(62): error C2664: 'std::shared_ptr<PVIFBuilder>::shared_ptr(std::shared_ptr<PVIFBuilder> &&) noexcept': cannot convert argument 1 from 'std::auto_ptr<PVIFBuilder>' to 's
td::auto_ptr<PVIFBuilder> &&'
../pdb.cpp(61): note: You cannot bind an lvalue to an rvalue reference
../pdb.cpp(508): warning C4267: '=': conversion from 'size_t' to 'unsigned int', possible loss of data
H:/epics-devel/base-7.0.1/configure/RULES_BUILD:237: recipe for target 'pdb.obj' failed
make[3]: *** [pdb.obj] Error 2

Is it worth trying /std:c++17 or /std:c++latest?

It seems like the APS Jenkins Build server should be upgraded to VS2017 Community so these problems can be caught earlier in the development cycle.

Mark

> -----Original Message-----
> From: Michael Davidsaver [mailto:mdavidsaver@gmail.com]
> Sent: Wednesday, December 06, 2017 8:20 AM
> To: Mark Rivers; Peterson, Kevin M.; Johnson, Andrew N.; EPICS tech-talk
> Subject: Re: EPICS 7 Release Candidate 1
> 
> On 12/06/2017 08:44 AM, Mark Rivers wrote:
> > Hi Michael,
> >
> >
> > Following the MSDN link in your message it says that the option /std:c++14 is supported
> in VS2015.  In fact it says this:
> >
> >
> > The /std:c++14 and /std:c++latest options are available beginning in Visual C++ 2013
> Update 3.
> >
> >
> > However, I just did some Google searching, and it appears that the line above may
> actually be a typo, because other sources indicate that this option was added in Visual C++
> 2015 Update 3, not 2013.  That would explain why it is not working for me.
> >
> >
> > I am not sure if it is possible to update the Community Edition 2015 to Update 3, or if I
> need to install 2017.  Does anyone else know?
> >
> >
> > Do you plan to require using either 2010 (which works) or 2015 Update 3 or 2017
> (assuming they work) for EPICS 7?  Or will the code be changed to work with these older
> compilers?
> 
> I'll try my best to make it work in both cases.  It's more a question of having a test
> environment.
> 
> 
> > Mark
> >
> >
> >
> > ________________________________
> > From: tech-talk-bounces@aps.anl.gov <tech-talk-bounces@aps.anl.gov> on behalf of
> Michael Davidsaver <mdavidsaver@gmail.com>
> > Sent: Tuesday, December 5, 2017 9:07 PM
> > To: Peterson, Kevin M.; Johnson, Andrew N.; EPICS tech-talk
> > Subject: Re: EPICS 7 Release Candidate 1
> >
> > On 12/05/2017 03:17 PM, Peterson, Kevin M. wrote:
> >> d:\epics7\base-7.0.1-rc1\modules\pva2pva\pdbapp\pdbgroup.h(136): note: see declaration
> of 'PDBGroupChannel'
> >> ../pdb.cpp(61): error C2664:
> 'std::shared_ptr<PVIFBuilder>::shared_ptr(std::shared_ptr<PVIFBuilder> &&) noexcept':
> cannot convert argument 1 from 'std::auto_ptr
> >> <PVIFBuilder>' to 'std::auto_ptr<PVIFBuilder> &&'
> >
> > hmm, seems like that MSVC implementation of shared_ptr doesn't have all of the
> constructor overloads.
> > Maybe they've just jumped the gun by removing the deprecated (in c++17) form, even
> when building in c++98?
> >
> > http://en.cppreference.com/w/cpp/memory/shared_ptr/shared_ptr
> >
> > Can you try to rebuild everything in >= c++11 mode by adding the "/std" compiler flag?
> > When built with >= c++11 compatibility, unique_ptr is used instead of (deprecated)
> auto_ptr here.
> >
> > https://msdn.microsoft.com/en-us/library/mt490614.aspx
> >


References:
EPICS 7 Release Candidate 1 Andrew Johnson
Re: EPICS 7 Release Candidate 1 Peterson, Kevin M.
Re: EPICS 7 Release Candidate 1 Michael Davidsaver
Re: EPICS 7 Release Candidate 1 Mark Rivers
Re: EPICS 7 Release Candidate 1 Michael Davidsaver

Navigate by Date:
Prev: Recommendations for EPICS Based Data Acquisition System Matt Rippa
Next: RE: EPICS 7 Release Candidate 1 Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <2017
Navigate by Thread:
Prev: Re: EPICS 7 Release Candidate 1 Michael Davidsaver
Next: RE: EPICS 7 Release Candidate 1 Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <2017
ANJ, 06 Dec 2017 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·