[Haskell-cafe] Re: Top Level <-

Brandon S. Allbery KF8NH allbery at ece.cmu.edu
Sat Sep 6 18:16:15 EDT 2008

On 2008 Sep 6, at 18:06, Ashley Yakeley wrote:
> Ganesh Sittampalam wrote:
>>>> The set of ACIO expressions exp is the "static initialisers" of  
>>>> M. The RTS must note when each static initialiser is run, and  
>>>> cache its result val. Let's call this cache of vals the "static  
>>>> results cache" of M.
>>>> When M is loaded, and a static results cache for M already  
>>>> exists, then it will be used for the vals of M.
>>> This sounds "reachable" to me, and therefore static overhead and  
>>> not a leak.
>> You can call it what you like, but it's still unacceptable  
>> behaviour, particularly since clients of M will have no way of  
>> telling from its API that it will happen.
> That what will happen?

I have no idea what Ganesh is complaining about, but if the point of  
ACIO is one-time initialization, it is pretty much required that  
something will be allocated to record the fact that a given item has  
been initialized (otherwise it can't guarantee the initializer runs  
exactly once, after all), and therefore that is part of the base ACIO  
API.  So what exactly is the issue here?

brandon s. allbery [solaris,freebsd,perl,pugs,haskell] allbery at kf8nh.com
system administrator [openafs,heimdal,too many hats] allbery at ece.cmu.edu
electrical and computer engineering, carnegie mellon university    KF8NH

More information about the Haskell-Cafe mailing list