On Fri, Sep 16, 2011 at 10:41 AM, Allen Wirfs-Brock <al...@wirfs-brock.com>wrote: [...]
> This is the exact situation that exists for any ECMAScript dynamic > allocation. There are no guarantees in the ES spec. that resources > allocated with an inaccessible object will be freed in a timely manner or > ever. Given the state of the art of memory management isn't clear how you > could make such guarantees without unreasonably limiting implementors. > Does everyone, on both sides of this debate, agree that the WeakMap GC issue is and the tail-call issue are equivalent specification problems? I propose that the way to look at both of these is a way I have seen proposed somewhere[1] about how to deal with specifying tail calls. Rather than taking it as a correctness criteria on an implementation, instead view it as a statement about how to analyze the space complexity of programs. When writing Andreas' server, it would be nice if he could analyze whether his algorithms have O(1) asymptotic space complexity. Does this mean it will succeed on every implementation? Of course not. It may be that a given implementation doesn't even have enough memory for the server to load. Or the server might crash for other reasons. In order to do this analysis, we need a model of how much memory is retained by a computational state -- not in terms of how many bytes, but in terms adequate to make statements about asymptotic space complexity. Then an implementation that runs out of space on programs held to be "reasonable" by such analysis can be viewed as low quality implementations. [1] At one of the citations on the tail-call page, I forget which. -- Cheers, --MarkM
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss