On Thu, Jun 11, 2015 at 8:53 AM, Raymond Toy <toy.raymond@gmail.com> wrote:
My assumption is that it exists so that execve or whatever can be called with a new environment that can be easily manipulated from lisp.
Correct.
The CMUCL behavior of copying the environment into a native associative structure at start-up (and using that copy to seed the environment of new subprocesses) is very common.
You can have both, which IMO is the right thing wrt. to backwards-compatibility with C programs. With IOlib one can query the process-level environment or turn that into an object, manipulate it and pass it to CREATE-PROCESS. See https://github.com/sionescu/iolib/blob/master/src/os/os-unix.lisp#L10. Additionally, since a C environment is an array of pointers, it's probably still faster to query if speed is a concern. -- Stelian Ionescu a.k.a. fe[nl]ix Quidquid latine dictum sit, altum videtur. http://common-lisp.net/project/iolib