5 ms·
V8 Release 6.3
- warent 9y agoExcited to see function parsing performance enhancements[1] and more ES stage 3 features being implemented! [1] https://docs.google.com/document/d/1TqpdGeLmURL2gc18s6PwNeyZOvayQJtJ16TCn0BEt48/edit#heading=h.un2pnqwbiw11 https://docs.google.com/document/d/1TqpdGeLmURL2gc18s6PwNeyZ...
- aagat 9y agoWould be nice to have https://bugs.chromium.org/p/v8/issues/detail?id=5866 https://bugs.chromium.org/p/v8/issues/detail?id=5866 resolved so embedding/extending V8 would be a lot easier.
- ballenf 9y agohttps://bugs.chromium.org/p/v8/issues/detail?id=4698&q=tail%20calls&colspec=ID%20Type%20Status%20Priority%20Owner%20Summary%20HW%20OS%20Component%20Stars https://bugs.chromium.org/p/v8/issues/detail?id=4698&q=tail%... Proper tail calls is the last ES6 feature not implemented by Chrome. Can anyone shed more light on the backstory for the hold up? I've read the challenges with debugging without a stack, but Safari's implementation of tail calls seems pretty sound and was shipped about a year ago. The last V8 blog post on the topic is almost 18 months old: https://v8project.blogspot.com/2016/04/es6-es7-and-beyond.html https://v8project.blogspot.com/2016/04/es6-es7-and-beyond.ht... The TC39 topic they site hasn't been touched in two years: https://github.com/tc39/proposal-ptc-syntax https://github.com/tc39/proposal-ptc-syntax
- akmittal 9y agoIn recent chrome Dev summit it was mentioned "The last missing part of ES6 all browser vendors agree was a bad idea" I think they are not shipping that anymore.
- naasking 9y agoWhy is it a bad idea?
- ballenf 9y agoI hadn't heard that. How disappointing and a step backward for the world's most ubiquitous programming language. All very subjective, of course. I guess Safari on desktop isn't considered a mainstream browser vendor anymore? Or do they regret implementing it also? The appeal of the explicit syntax makes sense, but the argument that proper tail calls are hard to identify/create seems silly to me. Devs have any number of ways to create memory leaks which have even harder to diagnose problems than the stack overflow of an improper tail call. The stack without tail calls overflows quite quickly unlike memory leaks which only a minority of users can experience on certain code.
- yayana 9y agoGiven the example that one side of || is a tail call, it seems quite easy to accidentally have overflows that only occur on specific data and call time environments for situations like writing a bad binary heap traversal function. Without tail calls, any traversal to some depth either does or doesn't trigger a stack overflow. But I find the need for step debugging to catch and unroll a virtual equivalent to tail calls a better argument given that this is for a sandbox for adversarial code with strong incentives to obscure bad behavior.
- saurik 9y agoIt is already trivial to break up logic and destroy the stack using async, if for some reason we are to believe that the call stack is somehow a way for us to somehow figure out we are being attacked. (Also, is it really surprising that the right-hand side of a returned || expression is a tail call? That seems extremely obvious :/. Regardless, the "syntactic tail call" proposal seems like it fixes that issue.)
- yayana 9y agoFeatures like async now have a few debugging options that can help users identify origin and report malicious redirects, pop-unders etc that try to obfuscate history and here comes a potential replacement.. So worrying about debugging first isn't such a bad idea. It's extremely obvious to think about tail calls when you know you are supposed to be thinking about tail calls. The life cycle of JS Code doesn't usually make anything obvious to people who inject the last edge conditions in a function.
- akmittal 9y agoHere is the link https://youtu.be/1-g1rvkORQ8?t=19m11s https://youtu.be/1-g1rvkORQ8?t=19m11s
- nopacience 9y agoThis is the release many of us have been waiting for! The performance enhancements will lead to better embedding and extending V8. Chrome should probably implement proper tail calls. More now that even safari has this feature implemented. Great job and thanks you very much !
- c8g 9y agosomeday v8 Release v8.0 :D