Hi,

staying in the realm of the explicit and pragmatic, various libraries
in Haskell do provide safe&explicit region/alloca/stack allocation actions, e.g.,

 Foreign.Marshal.Alloc.allocaBytes :: Int -> (Ptr a -> IO b) -> IO b

with the promise that the pointer doesn't escape here (you could constrain
this using the type system, if you so wish..) I don't know if the GHC RTS still(?)
provides hooks for allocating "alloca" objects specially.

There's been some work on monadic regions too; worth looking at.

hth
--sigbjorn

On 8/4/2009 15:49, Simon Marlow wrote:
On 04/08/2009 13:33, Sam Martin wrote:
Sounds like region inference to me.
(https://secure.wikimedia.org/wikipedia/en/wiki/Region_inference)

Thanks, yes, that's exactly what I had in mind.

Is anything like this is done in GHC?

Not at the moment, no.

Bear in mind that with generational GC, allocating memory that quickly becomes garbage is quite cheap.

Cheers,
    Simon



_______________________________________________
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to