|
From: Andreas R. <and...@gm...> - 2004-04-06 23:15:43
|
Tim, > I've this sort of thing several times before and so far as I can recall > there are two basic approaches > > 1) Create a format of object that allows a memory pointer to some other > place. I'd really hate to see this more complicated than allowing > just not-oops in an object; mixing real oops and external pointers.... > euch. Primitives encapsulate access easily enough. Needs gc support to > free external blocks when object dies. Ugly with a scavenger IIRC. Yup. Wouldn't want to go that way. Much too complex for what I really need. > 2) Allow object allocation outside ObjectSpace. Did this for Interval > and I think Ian might be using the rump-version of this that I used to > have for the RISC OS DisplayScreen. Main problem is with OSs- it's a > pain to not have a uniform allocation direction. My memory is that Mac > and RISC OS would allocate new outside-objects above ObjectSpace and > Windows would do it below. Since one of the things you need to do is > have a quick way to handle the young/old object decision, Windows was a > bugger - no simply saying addr>youngStart => young object. Doesn't matter for bits - the above is the precise reason for the restriction towards bit objects. > With either approach you have the obvious issue of sandbarring. This > might not be considered a problem for big desktop machine with virtual > memory but it could be a major pain for PDAs and embedded systems. > Let's make sure we don't block anyone out. Sorry, didn't get this - what do you mean with "sandbarring"? Cheers, - Andreas |