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

Reply via email to