Login  Register

Re: Removing Boost dependency from QuantLib

Posted by quantlib-dev mailing list on Jul 05, 2017; 2:08pm
URL: http://quantlib.414.s1.nabble.com/Removing-Boost-dependency-from-QuantLib-tp18381p18408.html

Hi Luigi,

I was not aware of the difference between std::shared_ptr and boost::shared_ptr. After checking the source code for GCC, I found that at least in GCC, std::shared_ptr also has the check for nullptr. However this check is only available in debug mode.

Hao
On Wednesday, July 5, 2017 8:31:05 AM EDT Luigi Ballabio wrote:

> A warning on shared_ptr, though: unlike boost::shared_ptr, std::shared_ptr
> can't be configured to throw an exception when accessing a null pointer, so
> a call to p->foo() segfaults.  Currently we rely on boost's behavior and
> don't have checks for null pointers (which is convenient, but we're
> probably making lots of unnecessary checks at each method call instead of
> checking for nulls just once) so they should probably be added before the
> library is safely usable.
>
> Luigi
>
>
> On Wed, Jul 5, 2017 at 12:05 PM Johannes Göttker-Schnetmann <
> [hidden email]> wrote:
>
> > Hi Hao, Peter,
> >
> > I also find this very interesting. Since C++ is moving at a better pace
> > for some time we need at some point decide how QuantLib reacts to this.
> > Personally I am using modern compilers and like the features modern C++
> > provides. Therefore I would appreciate if QuantLib decides to fork or move
> > completely to a modern C++ version.
> >
> > Boost is in part an incubator of ideas, which at some point might make it
> > into the C++ standard. For QuantLib the most prominent instances are
> > boost::shared_pointer and boost:unique_pointer which are both in the
> > standard for quite some time now. I would prefer to use the standard
> > libraries instead of boost in those cases.
> >
> > Kind regards,
> > Johannes
> >
> > On 4. Jul 2017, at 17:38, Peter Caspers <[hidden email]> wrote:
> >
> > Hi Hao, that’s very interesting. Do you know where the performance gain is
> > coming from, is it mostly MKL vs. UBLAS? Or are there other drivers as
> > well?
> > I’d also be interested in the motivation to do this in the first place, I
> > never thought boost as such was a bad thing?
> > The upgrade to C++17 is surely nice and makes sense, no doubt.
> > Best Regards
> > Peter
> >
> > On 04 Jul 2017, at 09:42, Luigi Ballabio <[hidden email]> wrote:
> >
> > Hello Hao,
> >     that's great news---I've been wondering myself if this was possible.
> > I'll be sure to check out your project.
> > I suggest you also post to quantlib-users for greater exposure.
> >
> > Later,
> >     Luigi
> >
> >
> > On Tue, Jul 4, 2017 at 5:24 AM Hao Zhang via QuantLib-dev <
> > [hidden email]> wrote:
> >
> >> Hello Everyone,
> >>
> >> I have removed all Boost dependency from QuantLib, and ported QuantLib to
> >> C++17. The code is hosted on GitHub (https://github.com/haozhangphd/
> >> QuantLib-noBoost <https://github.com/haozhangphd/QuantLib-noBoost>).
> >>
> >> The ported code passes all test cases, and there are significant
> >> performance improvements in SOME functionalities. Using the QuantLib
> >> Benchmark Suite, Quantlib-noBoost gives 3425 mflops (running time 13.15s),
> >> while unmodified QuantLib gives 1440 mflops (running time 44.8s) on my
> >> Dell
> >> Inspiron 13 i7348 laptop, both running under identical conditions with
> >> identical compiler flags. The total running time of the whole test suite
> >> is
> >> also shorter by ~10% after Boost is removed.
> >>
> >> I will continue maintaining this project, and regularly backporting latest
> >> commits from QuantLib. I will also make this project work on other
> >> compilers besides GCC in the near future.
> >>
> >> Best Regards,
> >>
> >> Hao
> >>
> >>
> >> ------------------------------------------------------------------------------
> >> Check out the vibrant tech community on one of the world's most
> >> engaging tech sites, Slashdot.org <http://slashdot.org/>!
> >> http://sdm.link/slashdot
> >> _______________________________________________
> >> QuantLib-dev mailing list
> >> [hidden email]
> >> https://lists.sourceforge.net/lists/listinfo/quantlib-dev
> >>
> >
> > ------------------------------------------------------------------------------
> > Check out the vibrant tech community on one of the world's most
> > engaging tech sites, Slashdot.org <http://slashdot.org/>!
> > http://sdm.link/slashdot_______________________________________________
> > QuantLib-dev mailing list
> > [hidden email]
> > https://lists.sourceforge.net/lists/listinfo/quantlib-dev
> >
> >
> >
> > ------------------------------------------------------------------------------
> > Check out the vibrant tech community on one of the world's most
> > engaging tech sites, Slashdot.org!
> > http://sdm.link/slashdot_______________________________________________
> > QuantLib-dev mailing list
> > [hidden email]
> > https://lists.sourceforge.net/lists/listinfo/quantlib-dev
> >
> >
> >
> > ------------------------------------------------------------------------------
> > Check out the vibrant tech community on one of the world's most
> > engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> > _______________________________________________
> > QuantLib-dev mailing list
> > [hidden email]
> > https://lists.sourceforge.net/lists/listinfo/quantlib-dev
> >



------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
QuantLib-dev mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/quantlib-dev