> On May 19, 2017, 6:51 p.m., Neil Conway wrote: > > `stout`, `libprocess`, and `mesos` are nominally distinct projects, so a > > single RR should touch no more than one of them. i.e., please split the > > `stout` changes into a separate review. > > > > Might also be worth waiting to see if GCC upstream is going to fix the > > problem promptly. If GCC 7.2 fixes the problem, we don't necessarily need > > to workaround a bug that occurs in just a single minor release of GCC.
Sure, I can hold on this and see what they say. If it's something that still needs to be fixed I'll break out this RR into separate ones. > On May 19, 2017, 6:51 p.m., Neil Conway wrote: > > src/master/constants.hpp > > Line 49 (original), 49 (patched) > > <https://reviews.apache.org/r/59413/diff/1/?file=1725380#file1725380line49> > > > > This change (and all the similar changes) seems unfortunate. Can't we > > play a similar trick to the change you made to `Bytes`? I had wanted to but I didn't see a quick and easy way to do this without making some major changes. The extended classes in `duration.hpp` mostly look something like this: ``` class Nanoseconds : public Duration { public: explicit constexpr Nanoseconds(int64_t nanoseconds) : Duration(nanoseconds, NANOSECONDS) {} constexpr Nanoseconds(const Duration& d) : Duration(d) {} double value() const { return static_cast<double>(this->ns()); } static std::string units() { return "ns"; } }; ``` I'm open to ideas, I just figured if I changed these clases a lot I'd have even more code to change around Mesos. - Aaron ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/59413/#review175555 ----------------------------------------------------------- On May 19, 2017, 6:51 p.m., Aaron Wood wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/59413/ > ----------------------------------------------------------- > > (Updated May 19, 2017, 6:51 p.m.) > > > Review request for mesos, Benjamin Bannier, James Peach, Michael Park, and > Neil Conway. > > > Bugs: MESOS-7520 > https://issues.apache.org/jira/browse/MESOS-7520 > > > Repository: mesos > > > Description > ------- > > Many of the `constexpr` variables fail to compile with errors such as `error: > 'Megabytes(32).Megabytes::<anonymous>' is not a constant expression because > it refers to an incompletely initialized variable`. > > This patch changes around the `Bytes` class a bit by getting rid of the small > classes that extend `Bytes`. Additionally, any usage of the `Duration` class > has been adjusted to not instantiate using the base type (which triggers the > issue along with `constexpr`). > > > Diffs > ----- > > 3rdparty/stout/include/stout/bytes.hpp 98223db50 > src/master/constants.hpp 7edf9f65f > src/sched/constants.hpp 9edb25b38 > src/sched/sched.cpp ef73c1dcc > src/scheduler/constants.hpp e3da12646 > src/slave/constants.hpp 1159ac3b1 > src/slave/containerizer/mesos/isolators/docker/volume/driver.cpp cf0466c62 > src/slave/slave.cpp 7564e8d39 > src/slave/status_update_manager.cpp df63a708c > > > Diff: https://reviews.apache.org/r/59413/diff/2/ > > > Testing > ------- > > `./bootstrap && mkdir build && cd build && ../configure --disable-python > --disable-java --disable-optimize --disable-hardening && make -j$(nproc)` > > > Thanks, > > Aaron Wood > >