-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TODOs, notes and comments extracted from the paper #15
Comments
Design: I've emailed Bryce. For now I've moved to open questions basically as a 'help needed from committee' This 2 go along with that
|
seemed overcome by events -- so removed |
I checked this off because I agree and you fixed it. |
Given this interface:
I'd say clearly copyable and assignable. Our expectation is it's cheap to copy as well. But I believe the implementation is free to do what it pleases given implementation defined. My take is that for this paper it's 'good enough' - I'll let you agree by checking off the issue :) |
It is default-constructible. It can't be copied since a process cannot be cloned.
This is indeed a problem abd I don't know how to solve that in an elegant way.
I am pretty certain, `
In case a graceful shutdown is referenced by that, this is because it's not possible on windows or at least too different. Same as with a
Always named from the parent's perspective. So readable stream is something the child writes to it, i.e. stdout/stderr.
I don't think environments make sense without a process, P1275 references the current one. I actually think this can be misleading if we have `
It works with concepts though. I am somewhat sure that's standard behaviour, not only gcc.
It's a pointer to an array, so yes.
I don't think so, since any the value will either just be read or (as with set) will need to be copied bytewise anyhow, since it is reformatted.
That's not a bad idea, since you could operate on a view here. It could be Bidirectional though I think.
Yes.
Yes.
Possibly but this is so trivial to add, I wouldn't bother now. It depends on whether or not we change it according to my recent PR, where
Yes, but maybe specify them both as aliases of the same OS-type (i.e. int and void*)
I don't get the CVE issues, when we already expose the whole environment. |
For now, I put that into the process_cuts.org file. We can address this detail in a future proposal |
Also solved by removal |
Oh man there's a lot of stuff to go through...
List of TODOs:
Wording:
wait
orjoin
" under "Design"on_success
" and "on_setup
" under "Design"Code:
ProcessReadableStream
andProcessWritableStream
process::terminate()
,process_group::terminate()
TODOs added by me (@eliaskosunen):
process
SemiRegular
(notDefaultConstructible
andCopyable
)process::~process()
inconsistent withstd::thread
My (@eliaskosunen) comments:
pid_t
as defined in POSIX, because I think that'd be misleading on non-POSIX platforms. I've replaced it withpid_type
.pid
could also be an option.ProcessReadableStream
mean the child can read from it, or that we can read from it? In other words, is it the child'sstdin
orstdout
/stderr
?pid_type
satisfyTriviallyCopyable
and/orRegular
? The underlying type does satisfy both on POSIX and Windows, so it probably should.environment
to maybeprocess_environment
or something similar? This would prevent collisions with P1275 and avoid using up a very useful name instd
.process::native_handle_type
?TriviallyCopyable
?StandardLayout
?(Semi)Regular
?Copyable
?process
andprocess_group::emplace
. The parameter pack should always be the final parameter.process_group
Copyable
?environment::native_environment_type
cheap to copy, since there's a constructor taking it by value?environment::get
,set
andreset
have overloads taking params by rvalue reference?ForwardRange
the right choice for the return value ofenvironment::keys
andpath
, andenvironment::entry::as_vector
? I think taking anOutputIterator
orOutputRange
and returningvoid
or the past-the-end iterator would be a more idiomatic choice, and would allow the user to control allocations better.const string&
(e.g.environment::find_executable
, orenvironment::entry::entry
). Wouldstring_view
be a better option?system
details", thesystem
function is defined as taking a parameter pack. It should take a string. Also, in the function body, a non-existent variadic constructor ofprocess
is used.fstream
" be added tobasic_filebuf
as well? I think it should.u8pipe
,u16pipe
andu32pipe
in addition topipe
andwpipe
(same applies for other types templated on character type). Maybe add SG16 to Audience?basic_pipebuf
deleted, but copy constructor defaulted? This isn't consistent withbasic_filebuf
andbasic_stringbuf
.std::this_process::native_handle_type
andpid_type
be aliases ofprocess::native_handle_type
andprocess::pid_type
, respectively? I can't see the reason to not do this.Existing comments by others from the paper:
<process>
synopsis": "I (Jeff G) basically lifted this out of boost.process and updated"process_io::process_io
: "Additionally, a path should be possible to open a file just for the child process"Comments from Isabella Muerte regarding
std::environment
and https://wg21.link/p1275 etc:The text was updated successfully, but these errors were encountered: