Maximally minimal stack trace standardization
allen at wirfs-brock.com
Mon Sep 29 13:02:47 PDT 2014
On Sep 29, 2014, at 12:02 PM, Brendan Eich wrote:
> Allen Wirfs-Brock wrote:
>> No particular reason an implementation can't optimize through that if they want to.
> The question is whether it should be normative. PTC is about observable asymptotic space performance (I keep saying :-P).
What should be normative? You guys probably should probably review the actual spec. language and see if you have any issues with it. All the tail call action takes place in the spec. on the caller side. See http://people.mozilla.org/~jorendorff/es6-draft.html#sec-runtime-semantics-evaluatecall and http://people.mozilla.org/~jorendorff/es6-draft.html#sec-preparefortailcall
The resources requirements of a function are represented by its "execution context". PrepareForTailCall says the the caller's "execution context" is discarded before invoking the callee's [[call]] internal method. [[Call]] for bound functions does not create a new "execution context" so there is no associated specified resource consumption that needs to be optimized away. At least as far as the spec. is concerned, bound functions (whether strict or sloppy) have no impact on TCO.
I can't imagine what you would want be to try to say about non-EMCAScript functions. Their internal "call" semantics is determined by the semantics of their implementation language.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the es-discuss