[pypy-dev] Towards Milestone 1
arigo at tunes.org
Thu Aug 11 17:36:00 CEST 2005
On Thu, Aug 11, 2005 at 02:03:48PM +0200, Christian Tismer wrote:
> >A loose idea that I have had would be to have one object space per thread.
> Notabene that this is not far away to do threading without threads,
> but just to spawn new processes.
Yes, this is close to a multiprocess approach (as we can do today with
multiple CPython processes). An alternative might be to not marshal the
objects to pass them around; they can be "virtually" passed around but
stay where they are physically in memory. This is better because we can
have container objects that point to objects from other spaces, that
themselves can point to objects from yet other spaces, etc. Note that
this reintroduces some locking issues but they could have a much better
performance impact (e.g. only along the boundaries between spaces).
Finally, note that in practice it is unclear if several object space
instances are really the best way to implement it; depending on the
situation it could also be implemented as a single object space, with
only conceptual boundaries, implemented with proxy objects (similar to
the lazy objects of the thunk object space). I know that multiple
object spaces was a hot idea at the beginning but it's still unclear how
to use this idea...
More information about the Pypy-dev