[Haskell-cafe] Re: Top Level <-

Brandon S. Allbery KF8NH allbery at ece.cmu.edu
Sat Sep 6 11:05:47 EDT 2008


On 2008 Sep 6, at 6:10, Ashley Yakeley wrote:
> Ganesh Sittampalam wrote:
>> I would call it a leak if something that is no longer being used  
>> cannot be reclaimed. The endless stream of different modules is  
>> possible in long-running systems where the code being run evolves  
>> or changes over time (e.g. something like lambdabot, which runs  
>> user-provided code).
>
> This might be fixable with an option to the dynamic load function.
>
> Let us say a module M has a number of top-level <- of the form
>
>  val <- exp
>
> 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.
Your proposed "freeable" flag is still useful, but I think this is not  
a problem.

-- 
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