Preliminary 0.9.0 tarballs - VC++ 2008 Express

classic Classic list List threaded Threaded
20 messages Options
Reply | Threaded
Open this post in threaded view
|

Preliminary 0.9.0 tarballs - VC++ 2008 Express

Georgy Jikia
Hi Luigi,

when trying to compile 0.9.0 with VC++ 2008 Express I am getting the
following error message:

.\ql/utilities/tracing.hpp(66) : error C2990: 'QuantLib::Singleton' :
non-class template has already been declared as a class template
.\ql/patterns/singleton.hpp(53) : see declaration of 'QuantLib::Singleton'

does it mean vc9.0 requires some extra configuration options wrt. vc80?

Best regards,
Georgy

-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell.  From the desktop to the data center, Linux is going
mainstream.  Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Preliminary 0.9.0 tarballs - VC++ 2008 Express

Luigi Ballabio

On Tue, 2007-12-04 at 01:47 +0100, Georgy Jikia wrote:
> when trying to compile 0.9.0 with VC++ 2008 Express I am getting the
> following error message:
>
> .\ql/utilities/tracing.hpp(66) : error C2990: 'QuantLib::Singleton' :
> non-class template has already been declared as a class template
> .\ql/patterns/singleton.hpp(53) : see declaration of 'QuantLib::Singleton'
>
> does it mean vc9.0 requires some extra configuration options wrt. vc80?

Possibly. But I don't think we'll add VC9 support to this release---it
wouldn't be testable anyway until Boost supports it too.

Luigi


--

I have made this letter longer than usual, only because I have not had
the time to make it shorter.
-- B. Pascal



-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell.  From the desktop to the data center, Linux is going
mainstream.  Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Preliminary 0.9.0 tarballs - VC++ 2008 Express

Ferdinando M. Ametrano-3
On Dec 4, 2007 11:00 AM, Luigi Ballabio <[hidden email]> wrote:
> I don't think we'll add VC9 support to this release---it
> wouldn't be testable anyway until Boost supports it too.

Boost might be not a real issue: the binaries for VC9 are not
downloadable, but if you use the new bjam 3.1.16
(http://sourceforge.net/project/showfiles.php?group_id=7586&package_id=72941)
it compile all boost 1.34.1 libraries despite endless reports about
"unsupported compiler".
I compiled them using the Visual Studio 2008 command line prompt and
the command:
bjam --toolset=msvc-9.0 install
as I did for all previous MSVC compilers

(BTW: downloading and installing Visual Studio 2008 Offline
Installation is a surprisingly pleasant experience: no glitch, SDK
included, etc.)

So I went ahead and I've just committed project/solution files for
VC9, and few tweaks to the autolink.hpp files and everything does
compile but tracing.cpp as reported by Georgy:

\ql/utilities/tracing.hpp(66) : error C2990: 'QuantLib::Singleton' :
non-class template has already been declared as a class template
.\ql/patterns/singleton.hpp(53) : see declaration of 'QuantLib::Singleton'

I don't know how to solve this error, but if someone has a patch we
might easily add VC9 support

ciao -- Nando

-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell.  From the desktop to the data center, Linux is going
mainstream.  Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Preliminary 0.9.0 tarballs - VC++ 2008 Express

Piter Dias-3
In reply to this post by Georgy Jikia
Nando,

> I compiled them using the Visual Studio 2008 command line prompt and
> the command:
> bjam --toolset=msvc-9.0 install
> as I did for all previous MSVC compilers

Didn't you have to fix this piece of code of boost/config/compiler/visualc.hpp ?

// last known and checked version is 1400 (VC8):
#if (_MSC_VER > 1400)
#  if defined(BOOST_ASSERT_CONFIG)
#     error "Unknown compiler version - please run the configure tests and
report the results"
#  else
#     pragma message("Unknown compiler version - please run the configure
tests and report the results")
#  endif
#endif

There is another thing I had to change but I don´t remember now.

Regards,




-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell.  From the desktop to the data center, Linux is going
mainstream.  Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Preliminary 0.9.0 tarballs - VC++ 2008 Express

Luigi Ballabio
In reply to this post by Ferdinando M. Ametrano-3

On Dec 4, 2007, at 7:30 PM, Ferdinando Ametrano wrote:

> On Dec 4, 2007 11:00 AM, Luigi Ballabio <[hidden email]>  
> wrote:
>> I don't think we'll add VC9 support to this release---it
>> wouldn't be testable anyway until Boost supports it too.
>
> Boost might be not a real issue: the binaries for VC9 are not
> downloadable, but if you use the new bjam 3.1.16
> (http://sourceforge.net/project/showfiles.php?
> group_id=7586&package_id=72941)
> it compile all boost 1.34.1 libraries despite endless reports about
> "unsupported compiler".
>
> So I went ahead and I've just committed project/solution files for
> VC9, and few tweaks to the autolink.hpp files and everything does
> compile but tracing.cpp as reported by Georgy:

I'm all in favor of adding support for VC9 (I've installed it too) but  
might we do it on the trunk instead?  The purpose of the release branch  
should be to consolidate things, not to add new stuff at the last  
minute.  I appreciate the enthusiasm and the effort (and I hate to rain  
on one's parade, especially since I'm doing it for the second time in a  
week already) but we drew a line when we created the branch.

Luigi


-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell.  From the desktop to the data center, Linux is going
mainstream.  Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Preliminary 0.9.0 tarballs - VC++ 2008 Express

Georgy Jikia
In reply to this post by Ferdinando M. Ametrano-3
Exactly, boost can be compiled easily and after very minimal tweaks
one can get rid of the "unsupported compiler" messages.

May be there is some flag to suppress the tracing, if patching is difficult?

Georgy

On Dec 4, 2007 7:30 PM, Ferdinando Ametrano <[hidden email]> wrote:

> On Dec 4, 2007 11:00 AM, Luigi Ballabio <[hidden email]> wrote:
> > I don't think we'll add VC9 support to this release---it
> > wouldn't be testable anyway until Boost supports it too.
>
> Boost might be not a real issue: the binaries for VC9 are not
> downloadable, but if you use the new bjam 3.1.16
> (http://sourceforge.net/project/showfiles.php?group_id=7586&package_id=72941)
> it compile all boost 1.34.1 libraries despite endless reports about
> "unsupported compiler".
> I compiled them using the Visual Studio 2008 command line prompt and
> the command:
> bjam --toolset=msvc-9.0 install
> as I did for all previous MSVC compilers
>
> (BTW: downloading and installing Visual Studio 2008 Offline
> Installation is a surprisingly pleasant experience: no glitch, SDK
> included, etc.)
>
> So I went ahead and I've just committed project/solution files for
> VC9, and few tweaks to the autolink.hpp files and everything does
> compile but tracing.cpp as reported by Georgy:
>
> \ql/utilities/tracing.hpp(66) : error C2990: 'QuantLib::Singleton' :
> non-class template has already been declared as a class template
> .\ql/patterns/singleton.hpp(53) : see declaration of 'QuantLib::Singleton'
>
> I don't know how to solve this error, but if someone has a patch we
> might easily add VC9 support
>
> ciao -- Nando
>

-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell.  From the desktop to the data center, Linux is going
mainstream.  Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Preliminary 0.9.0 tarballs - VC++ 2008 Express

Georgy Jikia
In reply to this post by Georgy Jikia
>
> Didn't you have to fix this piece of code of boost/config/compiler/visualc.hpp ?
>
> // last known and checked version is 1400 (VC8):
> #if (_MSC_VER > 1400)
> #  if defined(BOOST_ASSERT_CONFIG)
> #     error "Unknown compiler version - please run the configure tests and
> report the results"
> #  else
> #     pragma message("Unknown compiler version - please run the configure
> tests and report the results")
> #  endif
> #endif
>
> There is another thing I had to change but I don´t remember now.
>
 
 
if somebody is interested, here is the "patch" for boost.1.34.1 and VS 2008.
Georgy
 
msvc.jam
 
{
# Even if version is not explicitly specified, try to detect the version
# from the path.
+ if [ MATCH "(Microsoft Visual Studio 9.0)" : $(command) ]
+ {
+ version = 9.0 ;
+ }
+else if [ MATCH "(Microsoft Visual Studio 8)" : $(command) ]
-if [ MATCH "(Microsoft Visual Studio 8)" : $(command) ]
{
version = 8.0 ;
.ProgramFiles = [ path.make [ common.get-program-files-dir ] ] ;
-.known-versions = 8.0 8.0express 7.1 7.1toolkit 7.0 6.0 ;
+.known-versions = 9.0 9.0express 8.0 8.0express 7.1 7.1toolkit 7.0 6.0 ;
# Version aliases
.version-alias-6 = 6.0 ;
.version-alias-6.5 = 6.0 ;
.version-alias-7 = 7.0 ;
.version-alias-8 = 8.0 ;
+.version-alias-9 = 9.0 ;
# Name of the registry key that contains Visual C++ installation path
# (relative to "HKEY_LOCAL_MACHINE\SOFTWARE\\Microsoft"
.version-7.1-reg = "VisualStudio\\7.1\\Setup\\VC" ;
.version-8.0-reg = "VisualStudio\\8.0\\Setup\\VC" ;
.version-8.0express-reg = "VCExpress\\8.0\\Setup\\VC" ;
+.version-9.0-reg = "VisualStudio\\9.0\\Setup\\VC" ;
+.version-9.0express-reg = "VCExpress\\9.0\\Setup\\VC" ;
# Visual C++ Toolkit 2003 do not store its installation path in the registry.
# The environment variable 'VCToolkitInstallDir' and the default installation
 
auto_link.hpp
 
// vc71:
# define BOOST_LIB_TOOLSET "vc71"
-#elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1400)
+#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1400)
// vc80:
# define BOOST_LIB_TOOLSET "vc80"
+#elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1500)
+
+ // vc90:
+# define BOOST_LIB_TOOLSET "vc90"
+
#elif defined(__BORLANDC__)
 
visualc.hpp
 
#error "Compiler not supported or configured - please reconfigure"
#endif
//
-// last known and checked version is 1400 (VC8):
-#if (_MSC_VER > 1400)
+// last known and checked version is 1500 (VC9):
+#if (_MSC_VER > 1500)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# else
 
named_slot_map.hpp
 
|| slot_ == other.slot_));
}
-#if BOOST_WORKAROUND(_MSC_VER, <= 1400)
+#if BOOST_WORKAROUND(_MSC_VER, <= 1500)
void decrement();
void advance(difference_type);
#endif
 
named_slot_map.cpp
 
typedef slot_container_type::const_iterator const_group_iterator;
-#if BOOST_WORKAROUND(_MSC_VER, <= 1400)
+#if BOOST_WORKAROUND(_MSC_VER, <= 1500)
void named_slot_map_iterator::decrement() { assert(false); }
void named_slot_map_iterator::advance(difference_type) { assert(false); }
#endif
 

-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell.  From the desktop to the data center, Linux is going
mainstream.  Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Preliminary 0.9.0 tarballs - VC++ 2008 Express

Luigi Ballabio
In reply to this post by Georgy Jikia

On Tue, 2007-12-04 at 22:15 +0100, Georgy Jikia wrote:
> Exactly, boost can be compiled easily and after very minimal tweaks
> one can get rid of the "unsupported compiler" messages.

I'm not arguing against this.  I'm just doubting the wisdow of adding a
new platform to a release that's stable and about to go out the door.
We can add VC9 support to the trunk, fix the compilation issue, test it
thoroughly, and include it in next release.

Luigi


--

There are two ways of constructing a software design. One way is to
make it so simple that there are obviously no deficiencies. And the
other way is to make it so complicated that there are no obvious
deficiencies.
-- C. A. R. Hoare



-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell.  From the desktop to the data center, Linux is going
mainstream.  Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Preliminary 0.9.0 tarballs - VC++ 2008 Express

Ferdinando M. Ametrano-3
On Dec 5, 2007 8:56 AM, Luigi Ballabio <[hidden email]> wrote:
> I'm not arguing against this.  I'm just doubting the wisdow of adding a
> new platform to a release that's stable and about to go out the door.

nobody wants to really change the code base of a stable release. We're
just pointing out that tracing.cpp is the only VC9 offending file and
while I don't know how to patch it, it might be easy enough to be
worth the effort

ciao -- Nando

-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell.  From the desktop to the data center, Linux is going
mainstream.  Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Preliminary 0.9.0 tarballs - VC++ 2008 Express

Luigi Ballabio

On Wed, 2007-12-05 at 09:40 +0100, Ferdinando Ametrano wrote:
> On Dec 5, 2007 8:56 AM, Luigi Ballabio <[hidden email]> wrote:
> > I'm not arguing against this.  I'm just doubting the wisdow of adding a
> > new platform to a release that's stable and about to go out the door.
>
> nobody wants to really change the code base of a stable release.

Define "really change" :)
However, easy fix or not, what we gain is:

a) Coolness points in being the first to support VC9 two weeks after its
release;
b) headaches when people see the VC9 projects, rightfully expect it to
be supported out of the box, find out instead that they have to patch
Boost, and come back for help on the mailing list.

In my personal opinion, the P&L is negative.

How about this: we keep VC9 out of 0.9.0, we wait for the next Boost
release (this month or the next, from what I read on their mailing list)
and we release 0.9.1 in January which adds VC9 support to 0.9.0. In the
meantime, we fix the compilation issues on the trunk.

Later,
        Luigi


--

Weiler's Law:
Nothing is impossible for the man who doesn't have to
do it himself.



-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell.  From the desktop to the data center, Linux is going
mainstream.  Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Preliminary 0.9.0 tarballs - VC++ 2008 Express

Ferdinando M. Ametrano-3
On Dec 5, 2007 10:57 AM, Luigi Ballabio <[hidden email]> wrote:
> How about this: we keep VC9 out of 0.9.0, we wait for the next Boost
> release (this month or the next, from what I read on their mailing list)
> and we release 0.9.1 in January which adds VC9 support to 0.9.0. In the
> meantime, we fix the compilation issues on the trunk.

it's ok for me, especially if "keep VC9 out of 0.9.0" would just mean
we don't distribute the project files, without reverting the commit on
the R000900-branch. When the new boost is released we might want to
fix the compilation issues on the R000900-branch.

> b) headaches when people see the VC9 projects, rightfully expect it to
> be supported out of the box, find out instead that they have to patch
> Boost, and come back for help on the mailing list.

I agree you have a point here

ciao -- Nando

-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell.  From the desktop to the data center, Linux is going
mainstream.  Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Preliminary 0.9.0 tarballs - VC++ 2008 Express

Marco Marchioro
In reply to this post by Luigi Ballabio
Hi,
I have to say I totally agree with Luigi.
If people need a free compiler they can still use VC8.

Marco Marchioro


On Wednesday, 2007-12-05 , at 10:57 , Luigi Ballabio wrote:

>
> On Wed, 2007-12-05 at 09:40 +0100, Ferdinando Ametrano wrote:
>> On Dec 5, 2007 8:56 AM, Luigi Ballabio <[hidden email]>  
>> wrote:
>>> I'm not arguing against this.  I'm just doubting the wisdow of  
>>> adding a
>>> new platform to a release that's stable and about to go out the  
>>> door.
>>
>> nobody wants to really change the code base of a stable release.
>
> Define "really change" :)
> However, easy fix or not, what we gain is:
>
> a) Coolness points in being the first to support VC9 two weeks  
> after its
> release;
> b) headaches when people see the VC9 projects, rightfully expect it to
> be supported out of the box, find out instead that they have to patch
> Boost, and come back for help on the mailing list.
>
> In my personal opinion, the P&L is negative.
>
> How about this: we keep VC9 out of 0.9.0, we wait for the next Boost
> release (this month or the next, from what I read on their mailing  
> list)
> and we release 0.9.1 in January which adds VC9 support to 0.9.0. In  
> the
> meantime, we fix the compilation issues on the trunk.
>
> Later,
> Luigi
>
>
> --
>
> Weiler's Law:
> Nothing is impossible for the man who doesn't have to
> do it himself.
>
>
>
> ----------------------------------------------------------------------
> ---
> SF.Net email is sponsored by: The Future of Linux Business White Paper
> from Novell.  From the desktop to the data center, Linux is going
> mainstream.  Let it simplify your IT future.
> http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
> _______________________________________________
> QuantLib-dev mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/quantlib-dev

-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell.  From the desktop to the data center, Linux is going
mainstream.  Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev

smime.p7s (3K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Preliminary 0.9.0 tarballs - VC++ 2008 Express

Ferdinando M. Ametrano-3
On Dec 5, 2007 11:16 AM, Marco Marchioro <[hidden email]> wrote:
> I have to say I totally agree with Luigi.
> If people need a free compiler they can still use VC8.

thank you for the contribution ;-)

ciao -- Nando

-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell.  From the desktop to the data center, Linux is going
mainstream.  Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Preliminary 0.9.0 tarballs - VC++ 2008 Express

Luigi Ballabio
In reply to this post by Ferdinando M. Ametrano-3

On Wed, 2007-12-05 at 11:04 +0100, Ferdinando Ametrano wrote:
> it's ok for me, especially if "keep VC9 out of 0.9.0" would just mean
> we don't distribute the project files, without reverting the commit on
> the R000900-branch. When the new boost is released we might want to
> fix the compilation issues on the R000900-branch.

Ok, but I'd least change back auto_link.hpp so that it still warns that
VC9 is unsupported.

Luigi


--

Don't let school get in the way of your education.
-- Mark Twain



-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell.  From the desktop to the data center, Linux is going
mainstream.  Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Preliminary 0.9.0 tarballs - VC++ 2008 Express

Ferdinando M. Ametrano-3
On Dec 5, 2007 11:31 AM, Luigi Ballabio <[hidden email]> wrote:
> I'd least change back auto_link.hpp so that it still warns that
> VC9 is unsupported.

sure, no problem about that. I've just committed it.

ciao -- Nando

-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell.  From the desktop to the data center, Linux is going
mainstream.  Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Preliminary 0.9.0 tarballs - VC++ 2008 Express

Luigi Ballabio

On Wed, 2007-12-05 at 11:47 +0100, Ferdinando Ametrano wrote:
> On Dec 5, 2007 11:31 AM, Luigi Ballabio <[hidden email]> wrote:
> > I'd least change back auto_link.hpp so that it still warns that
> > VC9 is unsupported.
>
> sure, no problem about that. I've just committed it.

...and config.msvc.hpp (sorry.)

Luigi


--

Skinner's Constant (or Flannagan's Finagling Factor):
That quantity which, when multiplied by, divided by, added to,
or subtracted from the answer you got, gives you the answer you
should have gotten.



-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell.  From the desktop to the data center, Linux is going
mainstream.  Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Preliminary 0.9.0 tarballs - VC++ 2008 Express

Dominick Samperi-2
In reply to this post by Ferdinando M. Ametrano-3
Ferdinando Ametrano wrote:

> \ql/utilities/tracing.hpp(66) : error C2990: 'QuantLib::Singleton' :
> non-class template has already been declared as a class template
> .\ql/patterns/singleton.hpp(53) : see declaration of 'QuantLib::Singleton'
>
> I don't know how to solve this error, but if someone has a patch we
> might easily add VC9 support
>
> ciao -- Nando
>
>  
I commented out the friend part like this:
        class Tracing : public Singleton<Tracing> {
//            friend class Singleton<Tracing>;
        private:
            Tracing();

This permitted compilation under VC90 w/Windows Vista, and some of the
test programs seem
to run fine. Can somebody comment on why the friend declaration is
needed here? Doesn't
this permit an interface to access the internals of the logic that it is
supposed to encapsulate/hide
via the "curiously recurring pattern"?

An unrelated question: how is QuantLib-0.9.0.tar.gz made from the SVN
repository? I
am seeing different behavior if I use the preliminary tarball vs
download from the 090 SVN branch.

Thanks,
Dominick


-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Preliminary 0.9.0 tarballs - VC++ 2008 Express

Luigi Ballabio

On Sat, 2007-12-15 at 18:09 -0500, Dominick Samperi wrote:

> I commented out the friend part like this:
>         class Tracing : public Singleton<Tracing> {
> //            friend class Singleton<Tracing>;
>         private:
>             Tracing();
>
> Can somebody comment on why the friend declaration is
> needed here? Doesn't this permit an interface to access the internals
> of the logic that it is supposed to encapsulate/hide via the
> "curiously recurring pattern"?

There's not much to be done about it. On the one hand, the Tracing
constructor must be made private if this is to be a Singleton class. On
the other hand, the instance() method of the Singleton class template
must call it to create the unique instance.
However, Tracing and Singleton<Tracing> are very much tied together, so
it's not much of an encapsulation breach. True, the above might allow
one to create two Tracing instances, but it wouldn't be easy and should
be done on purpose.


> An unrelated question: how is QuantLib-0.9.0.tar.gz made from the SVN
> repository?

By running 'make dist'.

> I am seeing different behavior if I use the preliminary tarball vs
> download from the 090 SVN branch.

Strange. Maybe there were other changes in the branch after the tarball
was created?

Luigi


--

Better to have an approximate answer to the right question than a
precise answer to the wrong question.
-- John Tukey as quoted by John Chambers



-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Preliminary 0.9.0 tarballs - VC++ 2008 Express

Dave Compton-2
In reply to this post by Dominick Samperi-2
Dominick Samperi <djsamperi <at> earthlink.net> writes:

> I commented out the friend part like this:
>         class Tracing : public Singleton<Tracing> {
> //            friend class Singleton<Tracing>;
>         private:
>             Tracing();
>

I also ran into this problem before seeing this thread.  I worked around it by
explicitly specifying the Quantlib namespace for the Singleton<Tracing> class as
shown in the following diff:
$ bzr diff tracing.hpp
=== modified file 'QuantLib-0.9.0/ql/utilities/tracing.hpp'
--- QuantLib-0.9.0/ql/utilities/tracing.hpp     2008-02-03 22:41:13 +0000
+++ QuantLib-0.9.0/ql/utilities/tracing.hpp     2008-02-03 23:55:29 +0000
@@ -62,8 +62,8 @@

     namespace detail {

-        class Tracing : public Singleton<Tracing> {
-            friend class Singleton<Tracing>;
+               class Tracing : public QuantLib::Singleton<Tracing> {
+                       friend class QuantLib::Singleton<Tracing>;
         private:
             Tracing();
         public:


I think this preserves the exact meaning of the original code.

- Dave



-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev
Reply | Threaded
Open this post in threaded view
|

Re: Preliminary 0.9.0 tarballs - VC++ 2008 Express

Luigi Ballabio
On Mon, 2008-02-04 at 04:14 +0000, Dave Compton wrote:
> I also ran into this problem before seeing this thread.  I worked around it by
> explicitly specifying the Quantlib namespace for the Singleton<Tracing> class as
> shown in the following diff:

Thanks for the patch, Dave. I'll apply it as soon as we start providing
VC9 support.

Luigi


--

Hofstadter's Law:
It always takes longer than you expect, even when you take
Hofstadter's Law into account.



-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev