> 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
> 
>

Reply via email to