Visual C++ settings

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

Visual C++ settings

Luigi Ballabio-2
Hi all,
        could anyone remind me why we have two "On the edge"  
configurations in the VC project which are indistinguishable from the  
ordinary "Release" and "Debug"?

Secondly: why not having a configuration with "Multithreaded" and  
another for "Multithreaded DLL", instead of arguing about which should  
be used?

Thanks,
        Luigi


Reply | Threaded
Open this post in threaded view
|

RE: Visual C++ settings

Jens Thiel-2
Hi Luigi,

the "On the edge" settings were introduced by Nando: they use the project
output of QuantLib, while the original Debug and Release configurations use
the installed binaries. This way you can build depending projects either
with the installed release, or a more recent (possible CVS) version.

Jens.

-----Original Message-----
From: [hidden email]
[mailto:[hidden email]] On Behalf Of Luigi
Ballabio
Sent: Tuesday, October 21, 2003 7:41 PM
To: QuantLib developers
Subject: [Quantlib-dev] Visual C++ settings


Hi all,
        could anyone remind me why we have two "On the edge"  
configurations in the VC project which are indistinguishable from the  
ordinary "Release" and "Debug"?

Secondly: why not having a configuration with "Multithreaded" and  
another for "Multithreaded DLL", instead of arguing about which should  
be used?

Thanks,
        Luigi


-------------------------------------------------------
This SF.net email is sponsored by OSDN developer relations Here's your
chance to show off your extensive product knowledge We want to know what you
know. Tell us and you have a chance to win $100
http://www.zoomerang.com/survey.zgi?HRPT1X3RYQNC5V4MLNSV3E54
_______________________________________________
Quantlib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev




Reply | Threaded
Open this post in threaded view
|

Re: Visual C++ settings

enrico.sirola
In reply to this post by Luigi Ballabio-2
>>>>> "Gigi" == Luigi Ballabio <[hidden email]> writes:

    Gigi> Hi all, could anyone remind me why we have two "On the edge"
    Gigi> configurations in the VC project which are indistinguishable
    Gigi> from the ordinary "Release" and "Debug"?

for historical reason? I remember Nando liked this configuration a
lot, he used it to distinguish between "current" and "stable"
releases. IMO this should be done using different workspaces.

    Gigi> Secondly: why not having a configuration with
    Gigi> "Multithreaded" and another for "Multithreaded DLL", instead
    Gigi> of arguing about which should be used?

I completely agree with you. By the way, I also completely agree with
the three proposals you posted some time ago (boost smart pointers,
flattening name spaces - how about shortening it too? QL:: or ql::
seems nice, and template lattice framework).
ciao,
enrico
--
Enrico Sirola <[hidden email]>



Reply | Threaded
Open this post in threaded view
|

Re: Visual C++ settings

Luigi Ballabio-2
Ciao Enrico,

On 2003.10.22 16:22, [hidden email] wrote:
> >>>>> "Gigi" == Luigi Ballabio <[hidden email]> writes:
> > could anyone remind me why we have two "On the edge"
> > configurations in the VC project which are indistinguishable
> > from the ordinary "Release" and "Debug"?
>
> for historical reason? I remember Nando liked this configuration a
> lot, he used it to distinguish between "current" and "stable"
> releases. IMO this should be done using different workspaces.

My point exactly.

> > Secondly: why not having a configuration with
> > "Multithreaded" and another for "Multithreaded DLL", instead
> > of arguing about which should be used?
>
> I completely agree with you.

Thanks.

> By the way, I also completely agree with
> the three proposals you posted some time ago (boost smart pointers,
> flattening name spaces - how about shortening it too? QL:: or ql::
> seems nice, and template lattice framework).

Well, you can agree with the first two (and as for the second, we can  
use namespace aliases, so we can have QuantLib, QL and ql too)
but as for the third, I was in doubt between two alternatives---which  
one is the one you're agreeing with?

Later,
        Luigi


Reply | Threaded
Open this post in threaded view
|

Re: Visual C++ settings

Ferdinando M. Ametrano-3
In reply to this post by Luigi Ballabio-2
>         could anyone remind me why we have two "On the edge"
>configurations in the VC project which are indistinguishable from the
>ordinary "Release" and "Debug"?
from http://quantlib.org/html/usage.html, point 5:
The "Win32 OnTheEdgeRelease" and "Win32 OnTheEdgeDebug" configurations are
equivalent to "Win32 Release" and "Win32 Debug" respectively, except that
they do not use the installed QuantLib libraries, but look for the hpp and
lib QuantLib files in a relative ..\QuantLib path. This is mainly for
QuantLib developers, to allow them to check the examples without having to
install their unstable working version of QuantLib. The "OnTheEdge"
approach may be adopted in projects using QuantLib, allowing for a quick
and easy way to check how the projects work with a new QuantLib release
without having to install it.


>Secondly: why not having a configuration with "Multithreaded" and
>another for "Multithreaded DLL", instead of arguing about which should
>be used?

since we've dropped the requirement for "Multithreaded" (or "Multithreaded
DLL") any arguing should have ended. Whatever setting is currently selected
can be easily modified by the user, paying the cost of recompiling the
library. We should update this info in the documentation (point 2 of
http://quantlib.org/html/usage.html)
I'm not against adding multiple configurations for the Multithreaded
switch, but all combinations of Multithread+OnTheEdge would lead to 8
configurations....

BTW what is the "Win32 Intel OnTheEdgeRelease" configuration? If I remember
right it is for using the Visual Studio IDE with the Intel compiler: could
the users please document its usage?

ciao -- Nando



Reply | Threaded
Open this post in threaded view
|

Re: Visual C++ settings

Luigi Ballabio-2
Hi,

On 2003.10.22 11:29, Ferdinando Ametrano wrote:
>
>>         could anyone remind me why we have two "On the edge"
>> configurations in the VC project?

> from http://quantlib.org/html/usage.html, point 5:
> The "Win32 OnTheEdgeRelease" and "Win32 OnTheEdgeDebug"  
> configurations are equivalent to "Win32 Release" and "Win32 Debug"  
> respectively, except that they do not use the installed QuantLib  
> libraries, but look for the hpp and lib QuantLib files in a  
> relative ..\QuantLib path. This is mainly for QuantLib developers, to  
> allow them to check the examples without having to install their  
> unstable working version of QuantLib.

Hmm. In my opinion, the examples and the test suite should _always_  
point to ../ql and ../lib. It would be kind of strange that they linked  
against a different version of the library than the one in their very  
same workspace. This looks to me like the most natural way you can  
check the examples when you modify the library. And it's still easy to  
work on the past release---just open its workspace. Inside a workspace,  
everything is consistent.

> The "OnTheEdge" approach may be
> adopted in projects using QuantLib, allowing for a quick and easy way  
> to check how the projects work with a new QuantLib release without  
> having to install it.

Except that you have to replicate the on-the-edge configurations in  
your project (the pain! the horror!)
Real developers temporarily modify their QL_DIR environment variable  
instead :)

>> Secondly: why not having a configuration with "Multithreaded" and
>> another for "Multithreaded DLL", instead of arguing about which  
>> should be used?

> Whatever setting is currently selected can be easily modified by the  
> user...

...but if a developer switches, he must remember to revert the project  
before committing his working copy to CVS.

> I'm not against adding multiple configurations for the Multithreaded  
> switch, but all combinations of Multithread+OnTheEdge would lead to 8  
> configurations....

And that's exactly the reason why I would jettison the on-the-edge  
thing :)

> BTW what is the "Win32 Intel OnTheEdgeRelease" configuration? If I  
> remember right it is for using the Visual Studio IDE with the Intel  
> compiler: could the users please document its usage?

Never used it. Maybe Marco can elaborate?

Later,
        Luigi


Reply | Threaded
Open this post in threaded view
|

Re: Visual C++ settings

Ferdinando M. Ametrano-3
At 01:01 PM 10/22/2003, Luigi Ballabio wrote:
>>I'm not against adding multiple configurations for the Multithreaded
>>switch, but all combinations of Multithread+OnTheEdge would lead to 8
>>configurations....
>
>And that's exactly the reason why I would jettison the on-the-edge
>thing :)

Go ahead. I was just reminding the historical reason behind the OnTheEdge
settings, non defending them. I don't use them anymore in my current work ;-)

ciao -- Nando



Reply | Threaded
Open this post in threaded view
|

Re: Visual C++ settings

enrico.sirola
In reply to this post by Luigi Ballabio-2
Ciao Gigi,
sorry for the delay...

>>>>> "Gigi" == Luigi Ballabio <[hidden email]> writes:

    Gigi> Ciao Enrico,

[...]

    >> By the way, I also completely agree with the three proposals
    >> you posted some time ago (boost smart pointers, flattening name
    >> spaces - how about shortening it too? QL:: or ql:: seems nice,
    >> and template lattice framework).

    Gigi> Well, you can agree with the first two (and as for the
    Gigi> second, we can use namespace aliases, so we can have
    Gigi> QuantLib, QL and ql too) but as for the third, I was in
    Gigi> doubt between two alternatives---which one is the one you're
    Gigi> agreeing with?

finally i had the time to read again the original message and took a
(quick) look at the code.
While looking at the use cases you wrote, it doesn't seems that the
code using the template framework is/should be more complicated from a
user point of view. What we should ask ourselves for is: do we need to
switch from a pricing engine to another at runtime? If not, I would go
for the template framework (I'm not a template enthusiast - I just
like the +300% speed gain).
So I'm afraid I responded your question with another question.
Hope it helps,
enrico

--
Enrico Sirola <[hidden email]>