StanzaOrg / lbstanza-old

L.B. Stanza Programming Language
Other
216 stars 23 forks source link

Windows process library support #98

Closed tylanphear closed 3 years ago

tylanphear commented 3 years ago

This implements the process library on Windows using the CreateProcess function and friends.

This implementation diverges from the original POSIX implementation in that there is no dedicated launcher process. This is due to a lack of the use of (and support for) fork(). However, almost all of the semantics of the original are honored.

One caveat is that the first element of the argument list passed to the Process() constructor is ignored in favor of the filename argument denoting the executable. This was done to mirror the POSIX API where argv[0] is merely conventional. It was also done out of necessity because the Windows API requires a command-line to be passed (executable + arguments concatenated) rather than an executable and a list of arguments (like POSIX)

NOTE: This PR relies on #96 in order to compile.

CuppoJava commented 3 years ago

Looks awesome. Great job Tyler!!!!