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