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. Here are some examples https://docs.python.org/2/library/os.html http://golang.org/pkg/os/#Setenv http://docs.oracle.com/javase/7/docs/api/java/lang/System.html There is no consensus regarding what happens to the libc environment when the environment copy is modified. Library designers seem to prefer speed of environment access to consistency with the libc environment. It is not obvious whether there are significant benefits to doing anything differently, but if there is a case to be made for a different behavior, it would be helpful to know. That would provide a basis for a technical discussion.