|
From: Hao Z. <ha...@ha...> - 2017-07-05 14:09:07
|
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 < > jsc...@gm...> 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 <pca...@gm...> 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 <lui...@gm...> 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 < > > qua...@li...> 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 > >> Qua...@li... > >> 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 > > Qua...@li... > > 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 > > Qua...@li... > > 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 > > Qua...@li... > > https://lists.sourceforge.net/lists/listinfo/quantlib-dev > > |