Topic: Introduce <process> to manage processes


Author: david.bolvansky@gmail.com
Date: Fri, 18 Aug 2017 06:30:14 -0700 (PDT)
Raw View
------=_Part_2620_1662817081.1503063014371
Content-Type: multipart/alternative;
 boundary="----=_Part_2621_1502526495.1503063014371"

------=_Part_2621_1502526495.1503063014371
Content-Type: text/plain; charset="UTF-8"

Since we have <thread> interface to work with threads since C++11, it would
be useful to wrap also the process managment (Unix, Windows) into
<process>. The goal is to create and communicate with processes as similar
to std::thread as possible.

* Create new process
* Wait for process (by pid, group, like waitpid)
* Exit process
* Get status of the process/its exit status
* List all process
* Your ideas?

--
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/ba688597-3e0b-40c1-917f-a92602433132%40isocpp.org.

------=_Part_2621_1502526495.1503063014371
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Since we have &lt;thread&gt; interface to work with thread=
s since C++11, it would be useful to wrap also the process managment (Unix,=
 Windows) into &lt;process&gt;. The goal is=C2=A0<span style=3D"font-family=
: verdana, arial, helvetica, sans-serif; font-size: 14px;">to create and co=
mmunicate with processes as similar to std::thread as possible.</span><div>=
<span style=3D"font-family: verdana, arial, helvetica, sans-serif; font-siz=
e: 14px;"><br></span></div><div><span style=3D"font-family: verdana, arial,=
 helvetica, sans-serif; font-size: 14px;">* Create new process</span></div>=
<div><span style=3D"font-family: verdana, arial, helvetica, sans-serif; fon=
t-size: 14px;">* Wait for process (by pid, group, like waitpid)</span></div=
><div><span style=3D"font-family: verdana, arial, helvetica, sans-serif; fo=
nt-size: 14px;">* Exit process</span></div><div><span style=3D"font-family:=
 verdana, arial, helvetica, sans-serif; font-size: 14px;">* Get status of t=
he process/its exit status</span></div><div><font face=3D"verdana, arial, h=
elvetica, sans-serif"><span style=3D"font-size: 14px;">* List all process</=
span></font></div><div><font face=3D"verdana, arial, helvetica, sans-serif"=
><span style=3D"font-size: 14px;">* Your ideas?</span></font></div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/ba688597-3e0b-40c1-917f-a92602433132%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/ba688597-3e0b-40c1-917f-a92602433132=
%40isocpp.org</a>.<br />

------=_Part_2621_1502526495.1503063014371--

------=_Part_2620_1662817081.1503063014371--

.


Author: Alexander Zaitsev <zamazan4ik@gmail.com>
Date: Fri, 18 Aug 2017 06:32:21 -0700 (PDT)
Raw View
------=_Part_2488_2029448718.1503063141182
Content-Type: multipart/alternative;
 boundary="----=_Part_2489_430066898.1503063141182"

------=_Part_2489_430066898.1503063141182
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Do you know about Boost.Process?

=D0=BF=D1=8F=D1=82=D0=BD=D0=B8=D1=86=D0=B0, 18 =D0=B0=D0=B2=D0=B3=D1=83=D1=
=81=D1=82=D0=B0 2017 =D0=B3., 16:30:14 UTC+3 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=
=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C=20
david.b...@gmail.com =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>
> Since we have <thread> interface to work with threads since C++11, it=20
> would be useful to wrap also the process managment (Unix, Windows) into=
=20
> <process>. The goal is to create and communicate with processes as=20
> similar to std::thread as possible.
>
> * Create new process
> * Wait for process (by pid, group, like waitpid)
> * Exit process
> * Get status of the process/its exit status
> * List all process
> * Your ideas?
>

--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/47158127-85a3-4c19-80f2-dbe2e9a1703d%40isocpp.or=
g.

------=_Part_2489_430066898.1503063141182
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Do you know about Boost.Process?<br><br>=D0=BF=D1=8F=D1=82=
=D0=BD=D0=B8=D1=86=D0=B0, 18 =D0=B0=D0=B2=D0=B3=D1=83=D1=81=D1=82=D0=B0 201=
7 =D0=B3., 16:30:14 UTC+3 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=
=D1=82=D0=B5=D0=BB=D1=8C david.b...@gmail.com =D0=BD=D0=B0=D0=BF=D0=B8=D1=
=81=D0=B0=D0=BB:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin=
-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"lt=
r">Since we have &lt;thread&gt; interface to work with threads since C++11,=
 it would be useful to wrap also the process managment (Unix, Windows) into=
 &lt;process&gt;. The goal is=C2=A0<span style=3D"font-family:verdana,arial=
,helvetica,sans-serif;font-size:14px">to create and communicate with proces=
ses as similar to std::thread as possible.</span><div><span style=3D"font-f=
amily:verdana,arial,helvetica,sans-serif;font-size:14px"><br></span></div><=
div><span style=3D"font-family:verdana,arial,helvetica,sans-serif;font-size=
:14px">* Create new process</span></div><div><span style=3D"font-family:ver=
dana,arial,helvetica,sans-serif;font-size:14px">* Wait for process (by pid,=
 group, like waitpid)</span></div><div><span style=3D"font-family:verdana,a=
rial,helvetica,sans-serif;font-size:14px">* Exit process</span></div><div><=
span style=3D"font-family:verdana,arial,helvetica,sans-serif;font-size:14px=
">* Get status of the process/its exit status</span></div><div><font face=
=3D"verdana, arial, helvetica, sans-serif"><span style=3D"font-size:14px">*=
 List all process</span></font></div><div><font face=3D"verdana, arial, hel=
vetica, sans-serif"><span style=3D"font-size:14px">* Your ideas?</span></fo=
nt></div></div></blockquote></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/47158127-85a3-4c19-80f2-dbe2e9a1703d%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/47158127-85a3-4c19-80f2-dbe2e9a1703d=
%40isocpp.org</a>.<br />

------=_Part_2489_430066898.1503063141182--

------=_Part_2488_2029448718.1503063141182--

.


Author: david.bolvansky@gmail.com
Date: Fri, 18 Aug 2017 07:03:29 -0700 (PDT)
Raw View
------=_Part_2690_116116446.1503065009606
Content-Type: multipart/alternative;
 boundary="----=_Part_2691_1020298750.1503065009606"

------=_Part_2691_1020298750.1503065009606
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Yes, I do.=20

But still, not everybody wants to use boost (or simply they cannot).


D=C5=88a piatok, 18. augusta 2017 15:32:21 UTC+2 Alexander Zaitsev nap=C3=
=ADsal(-a):
>
> Do you know about Boost.Process?
>
> =D0=BF=D1=8F=D1=82=D0=BD=D0=B8=D1=86=D0=B0, 18 =D0=B0=D0=B2=D0=B3=D1=83=
=D1=81=D1=82=D0=B0 2017 =D0=B3., 16:30:14 UTC+3 =D0=BF=D0=BE=D0=BB=D1=8C=D0=
=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C=20
> david.b...@gmail.com =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>>
>> Since we have <thread> interface to work with threads since C++11, it=20
>> would be useful to wrap also the process managment (Unix, Windows) into=
=20
>> <process>. The goal is to create and communicate with processes as=20
>> similar to std::thread as possible.
>>
>> * Create new process
>> * Wait for process (by pid, group, like waitpid)
>> * Exit process
>> * Get status of the process/its exit status
>> * List all process
>> * Your ideas?
>>
>

--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/fab5e12d-a59a-4353-a5ff-53d995bf7b25%40isocpp.or=
g.

------=_Part_2691_1020298750.1503065009606
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Yes, I do.=C2=A0<div><br></div><div>But still, not everybo=
dy wants to use boost (or simply they cannot).<div><br><br>D=C5=88a piatok,=
 18. augusta 2017 15:32:21 UTC+2 Alexander Zaitsev nap=C3=ADsal(-a):<blockq=
uote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-lef=
t: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr">Do you know about Bo=
ost.Process?<br><br>=D0=BF=D1=8F=D1=82=D0=BD=D0=B8=D1=86=D0=B0, 18 =D0=B0=
=D0=B2=D0=B3=D1=83=D1=81=D1=82=D0=B0 2017 =D0=B3., 16:30:14 UTC+3 =D0=BF=D0=
=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C <a>david.b.=
...@gmail.com</a> =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:<blockquote cla=
ss=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc=
 solid;padding-left:1ex"><div dir=3D"ltr">Since we have &lt;thread&gt; inte=
rface to work with threads since C++11, it would be useful to wrap also the=
 process managment (Unix, Windows) into &lt;process&gt;. The goal is=C2=A0<=
span style=3D"font-family:verdana,arial,helvetica,sans-serif;font-size:14px=
">to create and communicate with processes as similar to std::thread as pos=
sible.</span><div><span style=3D"font-family:verdana,arial,helvetica,sans-s=
erif;font-size:14px"><br></span></div><div><span style=3D"font-family:verda=
na,arial,helvetica,sans-serif;font-size:14px">* Create new process</span></=
div><div><span style=3D"font-family:verdana,arial,helvetica,sans-serif;font=
-size:14px">* Wait for process (by pid, group, like waitpid)</span></div><d=
iv><span style=3D"font-family:verdana,arial,helvetica,sans-serif;font-size:=
14px">* Exit process</span></div><div><span style=3D"font-family:verdana,ar=
ial,helvetica,sans-serif;font-size:14px">* Get status of the process/its ex=
it status</span></div><div><font face=3D"verdana, arial, helvetica, sans-se=
rif"><span style=3D"font-size:14px">* List all process</span></font></div><=
div><font face=3D"verdana, arial, helvetica, sans-serif"><span style=3D"fon=
t-size:14px">* Your ideas?</span></font></div></div></blockquote></div></bl=
ockquote></div></div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/fab5e12d-a59a-4353-a5ff-53d995bf7b25%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/fab5e12d-a59a-4353-a5ff-53d995bf7b25=
%40isocpp.org</a>.<br />

------=_Part_2691_1020298750.1503065009606--

------=_Part_2690_116116446.1503065009606--

.


Author: Alexander Zaitsev <zamazan4ik@gmail.com>
Date: Fri, 18 Aug 2017 07:14:21 -0700 (PDT)
Raw View
------=_Part_810_1359835792.1503065661587
Content-Type: multipart/alternative;
 boundary="----=_Part_811_889442790.1503065661587"

------=_Part_811_889442790.1503065661587
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

I think we should test it a lot inside Boost, wait for e.g. Boost 1.70, and=
=20
after that i hope that Boost.Process will become very-very stable library.

After that we should talk with Boost.Process's author, *Klemens D.=20
Morgenstern*, and together write good proposal.

=D0=BF=D1=8F=D1=82=D0=BD=D0=B8=D1=86=D0=B0, 18 =D0=B0=D0=B2=D0=B3=D1=83=D1=
=81=D1=82=D0=B0 2017 =D0=B3., 17:03:29 UTC+3 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=
=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C=20
david.b...@gmail.com =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>
> Yes, I do.=20
>
> But still, not everybody wants to use boost (or simply they cannot).
>
>
> D=C5=88a piatok, 18. augusta 2017 15:32:21 UTC+2 Alexander Zaitsev nap=C3=
=ADsal(-a):
>>
>> Do you know about Boost.Process?
>>
>> =D0=BF=D1=8F=D1=82=D0=BD=D0=B8=D1=86=D0=B0, 18 =D0=B0=D0=B2=D0=B3=D1=83=
=D1=81=D1=82=D0=B0 2017 =D0=B3., 16:30:14 UTC+3 =D0=BF=D0=BE=D0=BB=D1=8C=D0=
=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C=20
>> david.b...@gmail.com =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:
>>>
>>> Since we have <thread> interface to work with threads since C++11, it=
=20
>>> would be useful to wrap also the process managment (Unix, Windows) into=
=20
>>> <process>. The goal is to create and communicate with processes as=20
>>> similar to std::thread as possible.
>>>
>>> * Create new process
>>> * Wait for process (by pid, group, like waitpid)
>>> * Exit process
>>> * Get status of the process/its exit status
>>> * List all process
>>> * Your ideas?
>>>
>>

--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/cbf76ab3-3b12-4e99-a27a-8d889634ff59%40isocpp.or=
g.

------=_Part_811_889442790.1503065661587
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">I think we should test it a lot inside Boost, wait for e.g=
.. Boost 1.70, and after that i hope that Boost.Process will become very-ver=
y stable library.<div><br></div><div>After that we should talk with Boost.P=
rocess&#39;s author,=C2=A0<span style=3D"font-family: sans-serif; font-size=
: small;"><font color=3D"#000000"><b style=3D"">Klemens D. Morgenstern</b>,=
</font></span><span style=3D"color: rgb(102, 102, 102); font-family: sans-s=
erif; font-size: small;">=C2=A0</span><span style=3D"font-family: sans-seri=
f; font-size: small;"><font color=3D"#000000">and together write good propo=
sal.</font></span><br><br>=D0=BF=D1=8F=D1=82=D0=BD=D0=B8=D1=86=D0=B0, 18 =
=D0=B0=D0=B2=D0=B3=D1=83=D1=81=D1=82=D0=B0 2017 =D0=B3., 17:03:29 UTC+3 =D0=
=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=D0=BB=D1=8C david=
..b...@gmail.com =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB:<blockquote clas=
s=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;border-left: 1px #c=
cc solid;padding-left: 1ex;"><div dir=3D"ltr">Yes, I do.=C2=A0<div><br></di=
v><div>But still, not everybody wants to use boost (or simply they cannot).=
<div><br><br>D=C5=88a piatok, 18. augusta 2017 15:32:21 UTC+2 Alexander Zai=
tsev nap=C3=ADsal(-a):<blockquote class=3D"gmail_quote" style=3D"margin:0;m=
argin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"l=
tr">Do you know about Boost.Process?<br><br>=D0=BF=D1=8F=D1=82=D0=BD=D0=B8=
=D1=86=D0=B0, 18 =D0=B0=D0=B2=D0=B3=D1=83=D1=81=D1=82=D0=B0 2017 =D0=B3., 1=
6:30:14 UTC+3 =D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5=
=D0=BB=D1=8C <a>david.b...@gmail.com</a> =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=
=B0=D0=BB:<blockquote class=3D"gmail_quote" style=3D"margin:0;margin-left:0=
..8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr">Since we=
 have &lt;thread&gt; interface to work with threads since C++11, it would b=
e useful to wrap also the process managment (Unix, Windows) into &lt;proces=
s&gt;. The goal is=C2=A0<span style=3D"font-family:verdana,arial,helvetica,=
sans-serif;font-size:14px">to create and communicate with processes as simi=
lar to std::thread as possible.</span><div><span style=3D"font-family:verda=
na,arial,helvetica,sans-serif;font-size:14px"><br></span></div><div><span s=
tyle=3D"font-family:verdana,arial,helvetica,sans-serif;font-size:14px">* Cr=
eate new process</span></div><div><span style=3D"font-family:verdana,arial,=
helvetica,sans-serif;font-size:14px">* Wait for process (by pid, group, lik=
e waitpid)</span></div><div><span style=3D"font-family:verdana,arial,helvet=
ica,sans-serif;font-size:14px">* Exit process</span></div><div><span style=
=3D"font-family:verdana,arial,helvetica,sans-serif;font-size:14px">* Get st=
atus of the process/its exit status</span></div><div><font face=3D"verdana,=
 arial, helvetica, sans-serif"><span style=3D"font-size:14px">* List all pr=
ocess</span></font></div><div><font face=3D"verdana, arial, helvetica, sans=
-serif"><span style=3D"font-size:14px">* Your ideas?</span></font></div></d=
iv></blockquote></div></blockquote></div></div></div></blockquote></div></d=
iv>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/cbf76ab3-3b12-4e99-a27a-8d889634ff59%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/cbf76ab3-3b12-4e99-a27a-8d889634ff59=
%40isocpp.org</a>.<br />

------=_Part_811_889442790.1503065661587--

------=_Part_810_1359835792.1503065661587--

.


Author: Thiago Macieira <thiago@macieira.org>
Date: Fri, 18 Aug 2017 08:06:46 -0700
Raw View
On Friday, 18 August 2017 06:30:14 PDT david.bolvansky@gmail.com wrote:
> Since we have <thread> interface to work with threads since C++11, it would
> be useful to wrap also the process managment (Unix, Windows) into
> <process>. The goal is to create and communicate with processes as similar
> to std::thread as possible.
>
> * Create new process
> * Wait for process (by pid, group, like waitpid)
> * Exit process
> * Get status of the process/its exit status
> * List all process
> * Your ideas?

Please propose an API. The general idea is good, but the devil will be on the
details. Handling processes is very difficult, starting with the fact that a
process requires a file name, so it rus afoul of the same problems that the
filesystem API did. Then you're going to add the ability to set Windows
security properties, handling of file descriptors inherited (or closed),
environment manipulation, etc.

And finally, like sockets, you get asynchronous events that the application
needs to be told, somehow.

Your proposal should have some mileage on it to prove it's workable.

--
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center

--
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/3037078.fhmOWhQGNI%40tjmaciei-mobl1.

.


Author: Ryan Nicholl <r.p.nicholl@gmail.com>
Date: Wed, 23 Aug 2017 16:30:20 -0700 (PDT)
Raw View
------=_Part_232_455294849.1503531020804
Content-Type: multipart/alternative;
 boundary="----=_Part_233_1544763154.1503531020804"

------=_Part_233_1544763154.1503531020804
Content-Type: text/plain; charset="UTF-8"

I think processes are too OS-specific and should not be included in C++.

On Friday, August 18, 2017 at 9:30:14 AM UTC-4, david.b...@gmail.com wrote:
>
> Since we have <thread> interface to work with threads since C++11, it
> would be useful to wrap also the process managment (Unix, Windows) into
> <process>. The goal is to create and communicate with processes as
> similar to std::thread as possible.
>
> * Create new process
> * Wait for process (by pid, group, like waitpid)
> * Exit process
> * Get status of the process/its exit status
> * List all process
> * Your ideas?
>

--
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/9d78e7b4-b7b9-472b-8fc2-b60c2334a01f%40isocpp.org.

------=_Part_233_1544763154.1503531020804
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">I think processes are too OS-specific and should not be in=
cluded in C++.<br><br>On Friday, August 18, 2017 at 9:30:14 AM UTC-4, david=
..b...@gmail.com wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;=
margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=
=3D"ltr">Since we have &lt;thread&gt; interface to work with threads since =
C++11, it would be useful to wrap also the process managment (Unix, Windows=
) into &lt;process&gt;. The goal is=C2=A0<span style=3D"font-family:verdana=
,arial,helvetica,sans-serif;font-size:14px">to create and communicate with =
processes as similar to std::thread as possible.</span><div><span style=3D"=
font-family:verdana,arial,helvetica,sans-serif;font-size:14px"><br></span><=
/div><div><span style=3D"font-family:verdana,arial,helvetica,sans-serif;fon=
t-size:14px">* Create new process</span></div><div><span style=3D"font-fami=
ly:verdana,arial,helvetica,sans-serif;font-size:14px">* Wait for process (b=
y pid, group, like waitpid)</span></div><div><span style=3D"font-family:ver=
dana,arial,helvetica,sans-serif;font-size:14px">* Exit process</span></div>=
<div><span style=3D"font-family:verdana,arial,helvetica,sans-serif;font-siz=
e:14px">* Get status of the process/its exit status</span></div><div><font =
face=3D"verdana, arial, helvetica, sans-serif"><span style=3D"font-size:14p=
x">* List all process</span></font></div><div><font face=3D"verdana, arial,=
 helvetica, sans-serif"><span style=3D"font-size:14px">* Your ideas?</span>=
</font></div></div></blockquote></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/9d78e7b4-b7b9-472b-8fc2-b60c2334a01f%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/9d78e7b4-b7b9-472b-8fc2-b60c2334a01f=
%40isocpp.org</a>.<br />

------=_Part_233_1544763154.1503531020804--

------=_Part_232_455294849.1503531020804--

.


Author: Nicol Bolas <jmckesson@gmail.com>
Date: Wed, 23 Aug 2017 17:34:55 -0700 (PDT)
Raw View
------=_Part_288_1126532159.1503534895236
Content-Type: multipart/alternative;
 boundary="----=_Part_289_1506944472.1503534895236"

------=_Part_289_1506944472.1503534895236
Content-Type: text/plain; charset="UTF-8"

On Wednesday, August 23, 2017 at 7:30:20 PM UTC-4, Ryan Nicholl wrote:
>
> I think processes are too OS-specific and should not be included in C++.
>

Like graphics. And networking. And filesystems. And threading. And file*
access*. And `std::system`
<http://en.cppreference.com/w/cpp/utility/program/system>, from the C
runtime library.

Sorry, but the "OS-specific" ship sailed long ago. That's not to say that I
agree with this specific proposal (which is not a proposal; it's an idea at
best), but your argument against it just doesn't hold water.

--
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/c3315ab8-3d86-4c42-ab38-0f2b87da381e%40isocpp.org.

------=_Part_289_1506944472.1503534895236
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">On Wednesday, August 23, 2017 at 7:30:20 PM UTC-4, Ryan Ni=
choll wrote:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-lef=
t: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr">I=
 think processes are too OS-specific and should not be included in C++.<br>=
</div></blockquote><div><br>Like graphics. And networking. And filesystems.=
 And threading. And file<i> access</i>. And <a href=3D"http://en.cppreferen=
ce.com/w/cpp/utility/program/system">`std::system`</a>, from the C runtime =
library.<br><br>Sorry, but the &quot;OS-specific&quot; ship sailed long ago=
.. That&#39;s not to say that I agree with this specific proposal (which is =
not a proposal; it&#39;s an idea at best), but your argument against it jus=
t doesn&#39;t hold water.<br></div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/c3315ab8-3d86-4c42-ab38-0f2b87da381e%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/c3315ab8-3d86-4c42-ab38-0f2b87da381e=
%40isocpp.org</a>.<br />

------=_Part_289_1506944472.1503534895236--

------=_Part_288_1126532159.1503534895236--

.


Author: Ryan Nicholl <r.p.nicholl@gmail.com>
Date: Thu, 24 Aug 2017 15:24:34 -0700 (PDT)
Raw View
------=_Part_1913_904481309.1503613474112
Content-Type: multipart/alternative;
 boundary="----=_Part_1914_2035200386.1503613474112"

------=_Part_1914_2035200386.1503613474112
Content-Type: text/plain; charset="UTF-8"

At least file systems tend to be fairly consistent between systems.
Threading is pretty basic. But process management? That's a new can of
worms. How do we deal with differing contexts? Systems where the process
doesn't have the authority to generate new processes?
Just because we added filesystem support (a terrible idea, at least the way
it was implemented) doesn't mean we need to adopt more terrible ideas.

Although threading has many OS specific aspects, there is enough
commonality between threading environments that it usually works out. In
order to start a process we'd need an executable, which is very OS-specific
by definition. And what happens when we don't have execute permission? Are
you suggest we add support for Unix specific file system permissions? And
what about windows? It's too complicated to do it in a cross platform way.

On Wednesday, August 23, 2017 at 8:34:55 PM UTC-4, Nicol Bolas wrote:
>
> On Wednesday, August 23, 2017 at 7:30:20 PM UTC-4, Ryan Nicholl wrote:
>>
>> I think processes are too OS-specific and should not be included in C++.
>>
>
> Like graphics. And networking. And filesystems. And threading. And file*
> access*. And `std::system`
> <http://en.cppreference.com/w/cpp/utility/program/system>, from the C
> runtime library.
>
> Sorry, but the "OS-specific" ship sailed long ago. That's not to say that
> I agree with this specific proposal (which is not a proposal; it's an idea
> at best), but your argument against it just doesn't hold water.
>

--
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/cd06020d-157b-4bda-826b-3aa2c3d59782%40isocpp.org.

------=_Part_1914_2035200386.1503613474112
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">At least file systems tend to be fairly consistent between=
 systems. Threading is pretty basic. But process management? That&#39;s a n=
ew can of worms. How do we deal with differing contexts? Systems where the =
process doesn&#39;t have the authority to generate new processes?<br>Just b=
ecause we added filesystem support (a terrible idea, at least the way it wa=
s implemented) doesn&#39;t mean we need to adopt more terrible ideas.<br><b=
r>Although threading has many OS specific aspects, there is enough commonal=
ity between threading environments that it usually works out. In order to s=
tart a process we&#39;d need an executable, which is very OS-specific by de=
finition. And what happens when we don&#39;t have execute permission? Are y=
ou suggest we add support for Unix specific file system permissions? And wh=
at about windows? It&#39;s too complicated to do it in a cross platform way=
..<br><br>On Wednesday, August 23, 2017 at 8:34:55 PM UTC-4, Nicol Bolas wro=
te:<blockquote class=3D"gmail_quote" style=3D"margin: 0;margin-left: 0.8ex;=
border-left: 1px #ccc solid;padding-left: 1ex;"><div dir=3D"ltr">On Wednesd=
ay, August 23, 2017 at 7:30:20 PM UTC-4, Ryan Nicholl wrote:<blockquote cla=
ss=3D"gmail_quote" style=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc=
 solid;padding-left:1ex"><div dir=3D"ltr">I think processes are too OS-spec=
ific and should not be included in C++.<br></div></blockquote><div><br>Like=
 graphics. And networking. And filesystems. And threading. And file<i> acce=
ss</i>. And <a href=3D"http://en.cppreference.com/w/cpp/utility/program/sys=
tem" target=3D"_blank" rel=3D"nofollow" onmousedown=3D"this.href=3D&#39;htt=
p://www.google.com/url?q\x3dhttp%3A%2F%2Fen.cppreference.com%2Fw%2Fcpp%2Fut=
ility%2Fprogram%2Fsystem\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNEvq5jzg0uA=
oExFBRKEN1U0HFQmNw&#39;;return true;" onclick=3D"this.href=3D&#39;http://ww=
w.google.com/url?q\x3dhttp%3A%2F%2Fen.cppreference.com%2Fw%2Fcpp%2Futility%=
2Fprogram%2Fsystem\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNEvq5jzg0uAoExFBR=
KEN1U0HFQmNw&#39;;return true;">`std::system`</a>, from the C runtime libra=
ry.<br><br>Sorry, but the &quot;OS-specific&quot; ship sailed long ago. Tha=
t&#39;s not to say that I agree with this specific proposal (which is not a=
 proposal; it&#39;s an idea at best), but your argument against it just doe=
sn&#39;t hold water.<br></div></div></blockquote></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/cd06020d-157b-4bda-826b-3aa2c3d59782%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/cd06020d-157b-4bda-826b-3aa2c3d59782=
%40isocpp.org</a>.<br />

------=_Part_1914_2035200386.1503613474112--

------=_Part_1913_904481309.1503613474112--

.


Author: =?UTF-8?Q?Micha=C5=82_Dominiak?= <griwes@griwes.info>
Date: Thu, 24 Aug 2017 22:33:04 +0000
Raw View
--001a114dbbb40f17e70557876af5
Content-Type: text/plain; charset="UTF-8"

You don't need a notion of "executable", just a notion of commands. This
notion already exists in the standard, to an extend, in the terrible API of
std::system. And Boost.Process does it in a nicely cross-platform way (note
I did not say "in a nice way"; I'm not commenting on the API, just on its
cross-platform-ness).

Now also tell us how having file access API is a terrible idea, because
file handle management is a can of worms, because how do we deal with
processes with no authority to open files? In order to open a file you'd
need a file path, which is very OS-specific by definition. And what happens
when we don't have read or write permissions? Are you suggesting we add
support for Unix specific file permissions? And what about windows? It's
certainly too complicated to do it in a cross platform way.

*Oh wait*, scratch that. We have a file access API since C++98 and it's
been working out pretty well, and we don't need to check permissions when
opening a file. That is a std::filesystem issue and I don't want to engage
in a discussion about your opinion on it. But again: you don't need a way
to check permissions to open a file; simiarly you don't need to check
whether you can spawn a process whose command is "X Y Z". You can just
assume you can do it and get an error when you try. (By the way - checking
and then doing a thing when you checked you have rights is a race condition
with the outside world changing your permissions.)

You don't even need to know what an "executable" is if you are just
operating on command-line argument lists.

On Fri, Aug 25, 2017 at 12:24 AM Ryan Nicholl <r.p.nicholl@gmail.com> wrote:

> At least file systems tend to be fairly consistent between systems.
> Threading is pretty basic. But process management? That's a new can of
> worms. How do we deal with differing contexts? Systems where the process
> doesn't have the authority to generate new processes?
> Just because we added filesystem support (a terrible idea, at least the
> way it was implemented) doesn't mean we need to adopt more terrible ideas.
>
> Although threading has many OS specific aspects, there is enough
> commonality between threading environments that it usually works out. In
> order to start a process we'd need an executable, which is very OS-specific
> by definition. And what happens when we don't have execute permission? Are
> you suggest we add support for Unix specific file system permissions? And
> what about windows? It's too complicated to do it in a cross platform way.
>
>
> On Wednesday, August 23, 2017 at 8:34:55 PM UTC-4, Nicol Bolas wrote:
>>
>> On Wednesday, August 23, 2017 at 7:30:20 PM UTC-4, Ryan Nicholl wrote:
>>>
>>> I think processes are too OS-specific and should not be included in C++.
>>>
>>
>> Like graphics. And networking. And filesystems. And threading. And file*
>> access*. And `std::system`
>> <http://en.cppreference.com/w/cpp/utility/program/system>, from the C
>> runtime library.
>>
>> Sorry, but the "OS-specific" ship sailed long ago. That's not to say that
>> I agree with this specific proposal (which is not a proposal; it's an idea
>> at best), but your argument against it just doesn't hold water.
>>
> --
> You received this message because you are subscribed to the Google Groups
> "ISO C++ Standard - Future Proposals" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to std-proposals+unsubscribe@isocpp.org.
> To post to this group, send email to std-proposals@isocpp.org.
> To view this discussion on the web visit
> https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/cd06020d-157b-4bda-826b-3aa2c3d59782%40isocpp.org
> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/cd06020d-157b-4bda-826b-3aa2c3d59782%40isocpp.org?utm_medium=email&utm_source=footer>
> .
>

--
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAPCFJdQzuJ2K9%3DnNFgD_CaWV9iokKYrYP%3DmbxMAjicw%3D84rAyQ%40mail.gmail.com.

--001a114dbbb40f17e70557876af5
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">You don&#39;t need a notion of &quot;executable&quot;, jus=
t a notion of commands. This notion already exists in the standard, to an e=
xtend, in the terrible API of std::system. And Boost.Process does it in a n=
icely cross-platform way (note I did not say &quot;in a nice way&quot;; I&#=
39;m not commenting on the API, just on its cross-platform-ness).<div><br><=
/div><div>Now also tell us how having file access API is a terrible idea, b=
ecause file handle management is a can of worms, because how do we deal wit=
h processes with no authority to open files? In order to open a file you&#3=
9;d need a file path, which is very OS-specific by definition. And what hap=
pens when we don&#39;t have read or write permissions? Are you suggesting w=
e add support for Unix specific file permissions? And what about windows? I=
t&#39;s certainly too complicated to do it in a cross platform way.</div><d=
iv><br></div><div><b>Oh wait</b>, scratch that. We have a file access API s=
ince C++98 and it&#39;s been working out pretty well, and we don&#39;t need=
 to check permissions when opening a file. That is a std::filesystem issue =
and I don&#39;t want to engage in a discussion about your opinion on it. Bu=
t again: you don&#39;t need a way to check permissions to open a file; simi=
arly you don&#39;t need to check whether you can spawn a process whose comm=
and is &quot;X Y Z&quot;. You can just assume you can do it and get an erro=
r when you try. (By the way - checking and then doing a thing when you chec=
ked you have rights is a race condition with the outside world changing you=
r permissions.)</div><div><br></div><div>You don&#39;t even need to know wh=
at an &quot;executable&quot; is if you are just operating on command-line a=
rgument lists.</div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr">O=
n Fri, Aug 25, 2017 at 12:24 AM Ryan Nicholl &lt;<a href=3D"mailto:r.p.nich=
oll@gmail.com">r.p.nicholl@gmail.com</a>&gt; wrote:<br></div><blockquote cl=
ass=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;p=
adding-left:1ex"><div dir=3D"ltr">At least file systems tend to be fairly c=
onsistent between systems. Threading is pretty basic. But process managemen=
t? That&#39;s a new can of worms. How do we deal with differing contexts? S=
ystems where the process doesn&#39;t have the authority to generate new pro=
cesses?<br>Just because we added filesystem support (a terrible idea, at le=
ast the way it was implemented) doesn&#39;t mean we need to adopt more terr=
ible ideas.<br><br>Although threading has many OS specific aspects, there i=
s enough commonality between threading environments that it usually works o=
ut. In order to start a process we&#39;d need an executable, which is very =
OS-specific by definition. And what happens when we don&#39;t have execute =
permission? Are you suggest we add support for Unix specific file system pe=
rmissions? And what about windows? It&#39;s too complicated to do it in a c=
ross platform way.</div><div dir=3D"ltr"><br><br>On Wednesday, August 23, 2=
017 at 8:34:55 PM UTC-4, Nicol Bolas wrote:<blockquote class=3D"gmail_quote=
" style=3D"margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-le=
ft:1ex"><div dir=3D"ltr">On Wednesday, August 23, 2017 at 7:30:20 PM UTC-4,=
 Ryan Nicholl wrote:<blockquote class=3D"gmail_quote" style=3D"margin:0;mar=
gin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr=
">I think processes are too OS-specific and should not be included in C++.<=
br></div></blockquote><div><br>Like graphics. And networking. And filesyste=
ms. And threading. And file<i> access</i>. And <a href=3D"http://en.cpprefe=
rence.com/w/cpp/utility/program/system" rel=3D"nofollow" target=3D"_blank">=
`std::system`</a>, from the C runtime library.<br><br>Sorry, but the &quot;=
OS-specific&quot; ship sailed long ago. That&#39;s not to say that I agree =
with this specific proposal (which is not a proposal; it&#39;s an idea at b=
est), but your argument against it just doesn&#39;t hold water.<br></div></=
div></blockquote></div>

<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org" target=3D"_=
blank">std-proposals+unsubscribe@isocpp.org</a>.<br>
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org" target=3D"_blank">std-proposals@isocpp.org</a>.<br>
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/cd06020d-157b-4bda-826b-3aa2c3d59782%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" target=3D"_blank">=
https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/cd06020d-157b-=
4bda-826b-3aa2c3d59782%40isocpp.org</a>.<br>
</blockquote></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CAPCFJdQzuJ2K9%3DnNFgD_CaWV9iokKYrYP%=
3DmbxMAjicw%3D84rAyQ%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfoote=
r">https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAPCFJdQzuJ=
2K9%3DnNFgD_CaWV9iokKYrYP%3DmbxMAjicw%3D84rAyQ%40mail.gmail.com</a>.<br />

--001a114dbbb40f17e70557876af5--

.


Author: =?UTF-8?Q?Klaim_=2D_Jo=C3=ABl_Lamotte?= <mjklaim@gmail.com>
Date: Fri, 25 Aug 2017 00:47:37 +0200
Raw View
--f403045fb02c8e50930557879dde
Content-Type: text/plain; charset="UTF-8"

On 25 August 2017 at 00:24, Ryan Nicholl <r.p.nicholl@gmail.com> wrote:

> At least file systems tend to be fairly consistent between systems.
>

In the last 10 years (so not so long ago, and still are supported)
I've worked on systems where file systems were so minimal I'm not even sure
the standard would have been implemented there.


> Threading is pretty basic.
>

There was no way to create threads on these embedded platforms.


> But process management? That's a new can of worms.
>

Like the rest.
Also note that it can always be allowed to not be provided on platforms
where it make no sense.

The real question is: is it useful to a majority of C++ users.
In a concurrent multi-process world like today, it seem obvious, at least
to me, that it is.
So I don't see your point, in the same way I didn't see the point of this
argument for thread and filesystem (it was raised each time those boost
libraries were considered for standardisation).


> How do we deal with differing contexts?
>

Are you talking about what provide Boost.Context?


> Systems where the process doesn't have the authority to generate new
> processes?
>

That's the role of the proposal author to provide way to deal with these
situations, if it make sense to support them.
As said, it's always open to specify some part of the behaviour as
platform-defined, for example. Or garantee that something
will not compile if the platform don't allow it.

It's already the case when you have static asserts checking for pointer or
int size.


> Just because we added filesystem support (a terrible idea, at least the
> way it was implemented) doesn't mean we need to adopt more terrible ideas.
>
>
I strongly disagree. It solve tons of problems. If you want something more
specific, you can always use something else. If you don't, it's available,
like for the majority of cases.


> Although threading has many OS specific aspects, there is enough
> commonality between threading environments that it usually works out. In
> order to start a process we'd need an executable, which is very OS-specific
> by definition.
>

It does not have to be defined to be allowed.


> And what happens when we don't have execute permission?
>

Again, depends on what the proposal decide. If you disagree with what the
proposal design, you could then point why.


> Are you suggest we add support for Unix specific file system permissions?
>

See: http://en.cppreference.com/w/cpp/experimental/fs/perms


> And what about windows? It's too complicated to do it in a cross platform
> way.
>
>
There are ways to get at least the common set of behaviours.


> On Wednesday, August 23, 2017 at 8:34:55 PM UTC-4, Nicol Bolas wrote:
>>
>> On Wednesday, August 23, 2017 at 7:30:20 PM UTC-4, Ryan Nicholl wrote:
>>>
>>> I think processes are too OS-specific and should not be included in C++.
>>>
>>
>> Like graphics. And networking. And filesystems. And threading. And file*
>> access*. And `std::system`
>> <http://en.cppreference.com/w/cpp/utility/program/system>, from the C
>> runtime library.
>>
>> Sorry, but the "OS-specific" ship sailed long ago. That's not to say that
>> I agree with this specific proposal (which is not a proposal; it's an idea
>> at best), but your argument against it just doesn't hold water.
>>
> --
> You received this message because you are subscribed to the Google Groups
> "ISO C++ Standard - Future Proposals" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to std-proposals+unsubscribe@isocpp.org.
> To post to this group, send email to std-proposals@isocpp.org.
> To view this discussion on the web visit https://groups.google.com/a/
> isocpp.org/d/msgid/std-proposals/cd06020d-157b-4bda-
> 826b-3aa2c3d59782%40isocpp.org
> <https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/cd06020d-157b-4bda-826b-3aa2c3d59782%40isocpp.org?utm_medium=email&utm_source=footer>
> .
>

--
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAOU91ONJuGeFL77fbVarCOB4Xoxz3aPPD6_90Se2rcz%2BWjt2dQ%40mail.gmail.com.

--f403045fb02c8e50930557879dde
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><div class=3D"gmail_quo=
te">On 25 August 2017 at 00:24, Ryan Nicholl <span dir=3D"ltr">&lt;<a href=
=3D"mailto:r.p.nicholl@gmail.com" target=3D"_blank">r.p.nicholl@gmail.com</=
a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0=
px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><=
div dir=3D"ltr">At least file systems tend to be fairly consistent between =
systems. </div></blockquote><div><br></div><div>In the last 10 years (so no=
t so long ago, and still are supported)=C2=A0</div><div>I&#39;ve worked on =
systems where file systems were so minimal I&#39;m not even sure the standa=
rd would have been implemented there.</div><div>=C2=A0</div><blockquote cla=
ss=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid =
rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr">Threading is pretty bas=
ic. </div></blockquote><div><br></div><div>There was no way to create threa=
ds on these embedded platforms.</div><div>=C2=A0</div><blockquote class=3D"=
gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(20=
4,204,204);padding-left:1ex"><div dir=3D"ltr">But process management? That&=
#39;s a new can of worms. </div></blockquote><div><br></div><div>Like the r=
est.</div><div>Also note that it can always be allowed to not be provided o=
n platforms where it make no sense.</div><div><br></div><div>The real quest=
ion is: is it useful to a majority of C++ users.</div><div>In a concurrent =
multi-process world like today, it seem obvious, at least to me, that it is=
..</div><div>So I don&#39;t see your point, in the same way I didn&#39;t see=
 the point of this argument for thread and filesystem (it was raised each t=
ime those boost libraries were considered for standardisation).</div><div>=
=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0=
..8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D"l=
tr">How do we deal with differing contexts? </div></blockquote><div><br></d=
iv><div>Are you talking about what provide Boost.Context?</div><div>=C2=A0<=
/div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bo=
rder-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr">Sys=
tems where the process doesn&#39;t have the authority to generate new proce=
sses?<br></div></blockquote><div><br></div><div>That&#39;s the role of the =
proposal author to provide way to deal with these situations, if it make se=
nse to support them.</div><div>As said, it&#39;s always open to specify som=
e part of the behaviour as platform-defined, for example. Or garantee that =
something</div><div>will not compile if the platform don&#39;t allow it.</d=
iv><div><br></div><div>It&#39;s already the case when you have static asser=
ts checking for pointer or int size.</div><div>=C2=A0</div><blockquote clas=
s=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid r=
gb(204,204,204);padding-left:1ex"><div dir=3D"ltr">Just because we added fi=
lesystem support (a terrible idea, at least the way it was implemented) doe=
sn&#39;t mean we need to adopt more terrible ideas.<br><br></div></blockquo=
te><div><br></div><div>I strongly disagree. It solve tons of problems. If y=
ou want something more specific, you can always use something else. If you =
don&#39;t, it&#39;s available,</div><div>like for the majority of cases.</d=
iv><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0=
px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div =
dir=3D"ltr">Although threading has many OS specific aspects, there is enoug=
h commonality between threading environments that it usually works out. In =
order to start a process we&#39;d need an executable, which is very OS-spec=
ific by definition. </div></blockquote><div><br></div><div>It does not have=
 to be defined to be allowed.=C2=A0</div><div>=C2=A0</div><blockquote class=
=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rg=
b(204,204,204);padding-left:1ex"><div dir=3D"ltr">And what happens when we =
don&#39;t have execute permission? </div></blockquote><div><br></div><div>A=
gain, depends on what the proposal decide. If you disagree with what the pr=
oposal design, you could then point why.</div><div>=C2=A0</div><blockquote =
class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px sol=
id rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr">Are you suggest we a=
dd support for Unix specific file system permissions? </div></blockquote><d=
iv><br></div><div>See:=C2=A0<a href=3D"http://en.cppreference.com/w/cpp/exp=
erimental/fs/perms">http://en.cppreference.com/w/cpp/experimental/fs/perms<=
/a></div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin=
:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"=
><div dir=3D"ltr">And what about windows? It&#39;s too complicated to do it=
 in a cross platform way.<span class=3D"gmail-"><br><br></span></div></bloc=
kquote><div><br></div><div>There are ways to get at least the common set of=
 behaviours.</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=
=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding=
-left:1ex"><div dir=3D"ltr"><span class=3D"gmail-">On Wednesday, August 23,=
 2017 at 8:34:55 PM UTC-4, Nicol Bolas wrote:<blockquote class=3D"gmail_quo=
te" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204=
);padding-left:1ex"><div dir=3D"ltr">On Wednesday, August 23, 2017 at 7:30:=
20 PM UTC-4, Ryan Nicholl wrote:<blockquote class=3D"gmail_quote" style=3D"=
margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-lef=
t:1ex"><div dir=3D"ltr">I think processes are too OS-specific and should no=
t be included in C++.<br></div></blockquote><div><br>Like graphics. And net=
working. And filesystems. And threading. And file<i> access</i>. And <a hre=
f=3D"http://en.cppreference.com/w/cpp/utility/program/system" rel=3D"nofoll=
ow" target=3D"_blank">`std::system`</a>, from the C runtime library.<br><br=
>Sorry, but the &quot;OS-specific&quot; ship sailed long ago. That&#39;s no=
t to say that I agree with this specific proposal (which is not a proposal;=
 it&#39;s an idea at best), but your argument against it just doesn&#39;t h=
old water.<br></div></div></blockquote></span></div><span class=3D"gmail-">

<p></p>

-- <br>
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br>
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org" target=3D"_=
blank">std-proposals+unsubscribe@<wbr>isocpp.org</a>.<br>
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org" target=3D"_blank">std-proposals@isocpp.org</a>.<br></span>
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/cd06020d-157b-4bda-826b-3aa2c3d59782%=
40isocpp.org?utm_medium=3Demail&amp;utm_source=3Dfooter" target=3D"_blank">=
https://groups.google.com/a/<wbr>isocpp.org/d/msgid/std-<wbr>proposals/cd06=
020d-157b-4bda-<wbr>826b-3aa2c3d59782%40isocpp.org</a><wbr>.<br>
</blockquote></div><br></div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/CAOU91ONJuGeFL77fbVarCOB4Xoxz3aPPD6_9=
0Se2rcz%2BWjt2dQ%40mail.gmail.com?utm_medium=3Demail&utm_source=3Dfooter">h=
ttps://groups.google.com/a/isocpp.org/d/msgid/std-proposals/CAOU91ONJuGeFL7=
7fbVarCOB4Xoxz3aPPD6_90Se2rcz%2BWjt2dQ%40mail.gmail.com</a>.<br />

--f403045fb02c8e50930557879dde--

.


Author: Thiago Macieira <thiago@macieira.org>
Date: Thu, 24 Aug 2017 17:32:57 -0700
Raw View
On Thursday, 24 August 2017 15:47:37 PDT Klaim - Jo=C3=ABl Lamotte wrote:
> > Threading is pretty basic.
>=20
> There was no way to create threads on these embedded platforms.

I remember when *Linux* did not have support for threading. Anyone else old=
=20
enough to remember libc5 and glibc 2.0? Threading came in 2.1, which was le=
ss=20
than 20 years ago.

--=20
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
   Software Architect - Intel Open Source Technology Center

--=20
You received this message because you are subscribed to the Google Groups "=
ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp=
..org/d/msgid/std-proposals/2352865.bOhFPeiH7K%40tjmaciei-mobl1.

.