Re: Review Request 25735: change const pass-by-value to const reference in stout

2014-09-17 Thread Kamil Domanski

---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/25735/
---

(Updated Sept. 17, 2014, 4:25 p.m.)


Review request for mesos.


Bugs: MESOS-1805
https://issues.apache.org/jira/browse/MESOS-1805


Repository: mesos-git


Description
---

os::shell and an overload of strings::internal::fmt in stout pass a const 
string parameter by copy instead of reference. This patch fixes that.


Diffs
-

  3rdparty/libprocess/3rdparty/stout/include/stout/format.hpp 58ab742 
  3rdparty/libprocess/3rdparty/stout/include/stout/os/shell.hpp 6728ad8 

Diff: https://reviews.apache.org/r/25735/diff/


Testing
---

cd 3rdparty/libprocess/3rdparty/ && make check


Thanks,

Kamil Domanski



Re: Review Request 25735: change const pass-by-value to const reference in stout

2014-09-17 Thread Kamil Domanski

---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/25735/
---

(Updated Sept. 17, 2014, 4:25 p.m.)


Review request for mesos.


Bugs: MESOS-1805
https://issues.apache.org/jira/browse/MESOS-1805


Repository: mesos-git


Description (updated)
---

os::shell and an overload of strings::internal::fmt in stout pass a const 
string parameter by copy instead of reference. This patch fixes that.


Diffs
-

  3rdparty/libprocess/3rdparty/stout/include/stout/format.hpp 58ab742 
  3rdparty/libprocess/3rdparty/stout/include/stout/os/shell.hpp 6728ad8 

Diff: https://reviews.apache.org/r/25735/diff/


Testing
---

cd 3rdparty/libprocess/3rdparty/ && make check


Thanks,

Kamil Domanski



Re: Review Request 25735: change const pass-by-value to const reference in stout

2014-09-17 Thread Dominic Hamon

---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/25735/#review53688
---

Ship it!


I'm not convinced that this is necessarily the way we want to go, given the 
benefits of move semantics in modern compilers, but for consistency we can ship 
this until we have proof that performance favours the alternative.

- Dominic Hamon


On Sept. 17, 2014, 7:25 a.m., Kamil Domanski wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/25735/
> ---
> 
> (Updated Sept. 17, 2014, 7:25 a.m.)
> 
> 
> Review request for mesos.
> 
> 
> Bugs: MESOS-1805
> https://issues.apache.org/jira/browse/MESOS-1805
> 
> 
> Repository: mesos-git
> 
> 
> Description
> ---
> 
> os::shell and an overload of strings::internal::fmt in stout pass a const 
> string parameter by copy instead of reference. This patch fixes that.
> 
> 
> Diffs
> -
> 
>   3rdparty/libprocess/3rdparty/stout/include/stout/format.hpp 58ab742 
>   3rdparty/libprocess/3rdparty/stout/include/stout/os/shell.hpp 6728ad8 
> 
> Diff: https://reviews.apache.org/r/25735/diff/
> 
> 
> Testing
> ---
> 
> cd 3rdparty/libprocess/3rdparty/ && make check
> 
> 
> Thanks,
> 
> Kamil Domanski
> 
>



Re: Review Request 25735: change const pass-by-value to const reference in stout

2014-09-17 Thread Kamil Domanski


> On Sept. 17, 2014, 6:32 p.m., Dominic Hamon wrote:
> > I'm not convinced that this is necessarily the way we want to go, given the 
> > benefits of move semantics in modern compilers, but for consistency we can 
> > ship this until we have proof that performance favours the alternative.

Isn't move construction more expensive than const reference?


- Kamil


---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/25735/#review53688
---


On Sept. 17, 2014, 4:25 p.m., Kamil Domanski wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/25735/
> ---
> 
> (Updated Sept. 17, 2014, 4:25 p.m.)
> 
> 
> Review request for mesos.
> 
> 
> Bugs: MESOS-1805
> https://issues.apache.org/jira/browse/MESOS-1805
> 
> 
> Repository: mesos-git
> 
> 
> Description
> ---
> 
> os::shell and an overload of strings::internal::fmt in stout pass a const 
> string parameter by copy instead of reference. This patch fixes that.
> 
> 
> Diffs
> -
> 
>   3rdparty/libprocess/3rdparty/stout/include/stout/format.hpp 58ab742 
>   3rdparty/libprocess/3rdparty/stout/include/stout/os/shell.hpp 6728ad8 
> 
> Diff: https://reviews.apache.org/r/25735/diff/
> 
> 
> Testing
> ---
> 
> cd 3rdparty/libprocess/3rdparty/ && make check
> 
> 
> Thanks,
> 
> Kamil Domanski
> 
>



Re: Review Request 25735: change const pass-by-value to const reference in stout

2014-09-17 Thread Mesos ReviewBot

---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/25735/#review53704
---


Patch looks great!

Reviews applied: [25735]

All tests passed.

- Mesos ReviewBot


On Sept. 17, 2014, 2:25 p.m., Kamil Domanski wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/25735/
> ---
> 
> (Updated Sept. 17, 2014, 2:25 p.m.)
> 
> 
> Review request for mesos.
> 
> 
> Bugs: MESOS-1805
> https://issues.apache.org/jira/browse/MESOS-1805
> 
> 
> Repository: mesos-git
> 
> 
> Description
> ---
> 
> os::shell and an overload of strings::internal::fmt in stout pass a const 
> string parameter by copy instead of reference. This patch fixes that.
> 
> 
> Diffs
> -
> 
>   3rdparty/libprocess/3rdparty/stout/include/stout/format.hpp 58ab742 
>   3rdparty/libprocess/3rdparty/stout/include/stout/os/shell.hpp 6728ad8 
> 
> Diff: https://reviews.apache.org/r/25735/diff/
> 
> 
> Testing
> ---
> 
> cd 3rdparty/libprocess/3rdparty/ && make check
> 
> 
> Thanks,
> 
> Kamil Domanski
> 
>



Re: Review Request 25735: change const pass-by-value to const reference in stout

2014-09-17 Thread Dominic Hamon


> On Sept. 17, 2014, 9:32 a.m., Dominic Hamon wrote:
> > I'm not convinced that this is necessarily the way we want to go, given the 
> > benefits of move semantics in modern compilers, but for consistency we can 
> > ship this until we have proof that performance favours the alternative.
> 
> Kamil Domanski wrote:
> Isn't move construction more expensive than const reference?

http://stackoverflow.com/questions/21605579/how-true-is-want-speed-pass-by-value

copy, yes. move, no. maybe. ;)


- Dominic


---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/25735/#review53688
---


On Sept. 17, 2014, 7:25 a.m., Kamil Domanski wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/25735/
> ---
> 
> (Updated Sept. 17, 2014, 7:25 a.m.)
> 
> 
> Review request for mesos.
> 
> 
> Bugs: MESOS-1805
> https://issues.apache.org/jira/browse/MESOS-1805
> 
> 
> Repository: mesos-git
> 
> 
> Description
> ---
> 
> os::shell and an overload of strings::internal::fmt in stout pass a const 
> string parameter by copy instead of reference. This patch fixes that.
> 
> 
> Diffs
> -
> 
>   3rdparty/libprocess/3rdparty/stout/include/stout/format.hpp 58ab742 
>   3rdparty/libprocess/3rdparty/stout/include/stout/os/shell.hpp 6728ad8 
> 
> Diff: https://reviews.apache.org/r/25735/diff/
> 
> 
> Testing
> ---
> 
> cd 3rdparty/libprocess/3rdparty/ && make check
> 
> 
> Thanks,
> 
> Kamil Domanski
> 
>



Re: Review Request 25735: change const pass-by-value to const reference in stout

2014-10-22 Thread Vinod Kone

---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/25735/#review57923
---

Ship it!


LGTM modulo running "make check" on mesos.

@Kamil: Can you rebase and run make check on the top level of the repo?

- Vinod Kone


On Sept. 17, 2014, 2:25 p.m., Kamil Domanski wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/25735/
> ---
> 
> (Updated Sept. 17, 2014, 2:25 p.m.)
> 
> 
> Review request for mesos.
> 
> 
> Bugs: MESOS-1805
> https://issues.apache.org/jira/browse/MESOS-1805
> 
> 
> Repository: mesos-git
> 
> 
> Description
> ---
> 
> os::shell and an overload of strings::internal::fmt in stout pass a const 
> string parameter by copy instead of reference. This patch fixes that.
> 
> 
> Diffs
> -
> 
>   3rdparty/libprocess/3rdparty/stout/include/stout/format.hpp 58ab742 
>   3rdparty/libprocess/3rdparty/stout/include/stout/os/shell.hpp 6728ad8 
> 
> Diff: https://reviews.apache.org/r/25735/diff/
> 
> 
> Testing
> ---
> 
> cd 3rdparty/libprocess/3rdparty/ && make check
> 
> 
> Thanks,
> 
> Kamil Domanski
> 
>



Re: Review Request 25735: change const pass-by-value to const reference in stout

2014-10-29 Thread Cody Maloney


> On Sept. 17, 2014, 4:32 p.m., Dominic Hamon wrote:
> > I'm not convinced that this is necessarily the way we want to go, given the 
> > benefits of move semantics in modern compilers, but for consistency we can 
> > ship this until we have proof that performance favours the alternative.
> 
> Kamil Domanski wrote:
> Isn't move construction more expensive than const reference?
> 
> Dominic Hamon wrote:
> 
> http://stackoverflow.com/questions/21605579/how-true-is-want-speed-pass-by-value
> 
> copy, yes. move, no. maybe. ;)

http://www.youtube.com/watch?v=xnqTKD8uD64#t=3145 - the current guidelines. 
Passing by value probably isn't what you want. If you want to get the extra win 
for r-value referenes you should add another overload, or accept via perfect 
forwarding.

Also note GCC libstdc++ doesn't implement the C++11/C++14 std::string, so it is 
Copy on Write (C++89) which means that copies are a little cheaper than they 
would be otherwise.


- Cody


---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/25735/#review53688
---


On Sept. 17, 2014, 2:25 p.m., Kamil Domanski wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/25735/
> ---
> 
> (Updated Sept. 17, 2014, 2:25 p.m.)
> 
> 
> Review request for mesos.
> 
> 
> Bugs: MESOS-1805
> https://issues.apache.org/jira/browse/MESOS-1805
> 
> 
> Repository: mesos-git
> 
> 
> Description
> ---
> 
> os::shell and an overload of strings::internal::fmt in stout pass a const 
> string parameter by copy instead of reference. This patch fixes that.
> 
> 
> Diffs
> -
> 
>   3rdparty/libprocess/3rdparty/stout/include/stout/format.hpp 58ab742 
>   3rdparty/libprocess/3rdparty/stout/include/stout/os/shell.hpp 6728ad8 
> 
> Diff: https://reviews.apache.org/r/25735/diff/
> 
> 
> Testing
> ---
> 
> cd 3rdparty/libprocess/3rdparty/ && make check
> 
> 
> Thanks,
> 
> Kamil Domanski
> 
>



Re: Review Request 25735: change const pass-by-value to const reference in stout

2014-10-29 Thread Michael Park

---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/25735/#review59068
---


We can't make these `const-ref` unfortunately because the second argument of 
`va_start` cannot be a reference type.

N3797: 18.10 Other runtime support [support.runtime]

The restrictions that ISO C places on the second parameter to the va_start() 
macro in header 
are different in this International Standard. The parameter parmN is the 
identifier of the rightmost parameter
in the variable parameter list of the function definition (the one just before 
the ...). __If the parameter
parmN is of a reference type, or of a type that is not compatible with the type 
that results when passing an
argument for which there is no parameter, the behavior is undefined.__

- Michael Park


On Sept. 17, 2014, 2:25 p.m., Kamil Domanski wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/25735/
> ---
> 
> (Updated Sept. 17, 2014, 2:25 p.m.)
> 
> 
> Review request for mesos.
> 
> 
> Bugs: MESOS-1805
> https://issues.apache.org/jira/browse/MESOS-1805
> 
> 
> Repository: mesos-git
> 
> 
> Description
> ---
> 
> os::shell and an overload of strings::internal::fmt in stout pass a const 
> string parameter by copy instead of reference. This patch fixes that.
> 
> 
> Diffs
> -
> 
>   3rdparty/libprocess/3rdparty/stout/include/stout/format.hpp 58ab742 
>   3rdparty/libprocess/3rdparty/stout/include/stout/os/shell.hpp 6728ad8 
> 
> Diff: https://reviews.apache.org/r/25735/diff/
> 
> 
> Testing
> ---
> 
> cd 3rdparty/libprocess/3rdparty/ && make check
> 
> 
> Thanks,
> 
> Kamil Domanski
> 
>



Re: Review Request 25735: change const pass-by-value to const reference in stout

2015-02-03 Thread Niklas Nielsen


> On Oct. 29, 2014, 3:57 p.m., Michael Park wrote:
> > We can't make these `const-ref` unfortunately because the second argument 
> > of `va_start` cannot be a reference type.
> > 
> > N3797: 18.10 Other runtime support [support.runtime]
> > 
> > The restrictions that ISO C places on the second parameter to the 
> > va_start() macro in header 
> > are different in this International Standard. The parameter parmN is the 
> > identifier of the rightmost parameter
> > in the variable parameter list of the function definition (the one just 
> > before the ...). __If the parameter
> > parmN is of a reference type, or of a type that is not compatible with the 
> > type that results when passing an
> > argument for which there is no parameter, the behavior is undefined.__

@Kamil - What's the status here? Sounds like the patch is problematic from 
mpark's comment. Still want this to go in, or should we drop this and 
https://issues.apache.org/jira/browse/MESOS-1805 ?


- Niklas


---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/25735/#review59068
---


On Sept. 17, 2014, 7:25 a.m., Kamil Domanski wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/25735/
> ---
> 
> (Updated Sept. 17, 2014, 7:25 a.m.)
> 
> 
> Review request for mesos.
> 
> 
> Bugs: MESOS-1805
> https://issues.apache.org/jira/browse/MESOS-1805
> 
> 
> Repository: mesos
> 
> 
> Description
> ---
> 
> os::shell and an overload of strings::internal::fmt in stout pass a const 
> string parameter by copy instead of reference. This patch fixes that.
> 
> 
> Diffs
> -
> 
>   3rdparty/libprocess/3rdparty/stout/include/stout/format.hpp 58ab742 
>   3rdparty/libprocess/3rdparty/stout/include/stout/os/shell.hpp 6728ad8 
> 
> Diff: https://reviews.apache.org/r/25735/diff/
> 
> 
> Testing
> ---
> 
> cd 3rdparty/libprocess/3rdparty/ && make check
> 
> 
> Thanks,
> 
> Kamil Domanski
> 
>