On Jul 17, 2014, at 1:26 PM, Matthew Flatt wrote: >> Is that not the case with Places? If so, what was the rationale in not >> utilizing copy-on-write? > > Do you mean copy-on-write via processes and fork(), or somehow by > itself?
Yes, separate processes w/ separate virtual memory but sharing some physical pages until they get written to. I assume a large chunk of the runtime is read-only, so it seems that could save a lot of resident memory. > We wanted to avoid multiple processes because OSes don't provide great > facilities for managing them and communicating between them. Maybe I'm confused. I thought creating a new Place involved creating a new process with the Racket VM, to run in parallel (potentially on a different core) with the original process. Is the "new Racket instance" running in the same process as the original? That's how I read the following: "The place form creates a place, which is effectively a new Racket instance that can run in parallel to other places, including the initial place. " Maybe wording like "which is effectively" leaves too much to the imagination. Do Places run in OS scheduled threads? ____________________ Racket Users list: http://lists.racket-lang.org/users