[random] release notes?

There are breaking changes in 1.40 mersenne_twister.hpp. Is this in release notes? (Where are release notes?)

AMDG Neal Becker wrote:
There are breaking changes in 1.40 mersenne_twister.hpp.
I believe that the only breaking change is that boost::mt19937 prng1; boost::mt19937 prng2(prng2); now calls the copy constructor. Is that correct?
Is this in release notes?
It doesn't look like it.
(Where are release notes?)
https://svn.boost.org/trac/boost/browser/website/public_html/beta/feed/histo... In Christ, Steven Watanabe

Steven Watanabe wrote:
AMDG
Neal Becker wrote:
There are breaking changes in 1.40 mersenne_twister.hpp.
I believe that the only breaking change is that boost::mt19937 prng1; boost::mt19937 prng2(prng2); now calls the copy constructor. Is that correct?
Is this in release notes?
It doesn't look like it.
(Where are release notes?)
https://svn.boost.org/trac/boost/browser/website/public_html/beta/feed/histo...
My boost_random python wrapper broke, because it seems the signature of seed(result_type) is changed to seed (result_type const&) Here's my code (note workaround): class_<rng_t> ("rng", "Mersenne Twister", bp::init<rng_t::result_type>( (bp::arg ("seed")=4357), "__init__(seed=4357)\n" "Construct with optional seed\n\n" ":Parameters:\n" " `seed` : int\n" " initial seed\n" )) .def_pickle(mt_pickle_suite()) .def ("getstate", &mt_pickle_suite::getstate) .def ("setstate", &mt_pickle_suite::setstate) #if BOOST_VERSION >= 104000 .def ("seed", (void (rng_t::*)(rng_t::result_type const&)) (&rng_t::seed), #else .def ("seed", (void (rng_t::*)(rng_t::result_type))(&rng_t::seed), #endif "seed(x)\n" "Reset generator using seed value x\n\n" ":Parameters:\n" " `x` : int\n" " initial seed\n" )

AMDG Neal Becker wrote:
My boost_random python wrapper broke, because it seems the signature of
seed(result_type)
is changed to
seed (result_type const&)
Here's my code (note workaround):
class_<rng_t> ("rng", "Mersenne Twister", bp::init<rng_t::result_type>( (bp::arg ("seed")=4357),
"__init__(seed=4357)\n" "Construct with optional seed\n\n" ":Parameters:\n" " `seed` : int\n" " initial seed\n" )) .def_pickle(mt_pickle_suite()) .def ("getstate", &mt_pickle_suite::getstate) .def ("setstate", &mt_pickle_suite::setstate) #if BOOST_VERSION >= 104000 .def ("seed", (void (rng_t::*)(rng_t::result_type const&)) (&rng_t::seed), #else .def ("seed", (void (rng_t::*)(rng_t::result_type))(&rng_t::seed), #endif "seed(x)\n" "Reset generator using seed value x\n\n" ":Parameters:\n" " `x` : int\n" " initial seed\n" )
Hmm. Given that there was already a #if that would make the signature const result_type&, I didn't think it could do any harm to change the exact signature. In Christ, Steven Watanabe

Steven Watanabe wrote:
AMDG
Neal Becker wrote:
My boost_random python wrapper broke, because it seems the signature of
seed(result_type)
is changed to
seed (result_type const&)
Here's my code (note workaround):
class_<rng_t> ("rng", "Mersenne Twister", bp::init<rng_t::result_type>( (bp::arg ("seed")=4357),
"__init__(seed=4357)\n" "Construct with optional seed\n\n" ":Parameters:\n" " `seed` : int\n" " initial seed\n" )) .def_pickle(mt_pickle_suite()) .def ("getstate", &mt_pickle_suite::getstate) .def ("setstate", &mt_pickle_suite::setstate) #if BOOST_VERSION >= 104000 .def ("seed", (void (rng_t::*)(rng_t::result_type const&)) (&rng_t::seed), #else .def ("seed", (void (rng_t::*)(rng_t::result_type))(&rng_t::seed), #endif "seed(x)\n" "Reset generator using seed value x\n\n" ":Parameters:\n" " `x` : int\n" " initial seed\n" )
Hmm. Given that there was already a #if that would make the signature const result_type&, I didn't think it could do any harm to change the exact signature.
As you can see, it broke the compile of the above example. Only a usage that is sensitive to the exact signature would break - but since my code did break I think it would be good to mention in release notes.
participants (2)
-
Neal Becker
-
Steven Watanabe