ChakraCore’s first anniversary

Windows

Windows
Today marks the one year anniversary of
Please, Log in or Register to view URLs content!
– the core of the Chakra JavaScript engine that powers Microsoft Edge – under the MIT license. We wanted to take a moment to say thank you to everyone in the community who has contributed, helped and partnered with us!

Your contributions and feedback help us improve and create a better product for the community. During this period, we’ve had over 70 contributors, both internal and external, directly contribute to the ChakraCore codebase and several other members of the JavaScript community engaged with us, both in individual capacity and as organizations. New products and services such as
Please, Log in or Register to view URLs content!
,
Please, Log in or Register to view URLs content!
, and
Please, Log in or Register to view URLs content!
are now using ChakraCore. And it’s been great to see work outside of the core engine proving valuable to the community with things like ChakraCore’s
Please, Log in or Register to view URLs content!
and
Please, Log in or Register to view URLs content!
.

Please, Log in or Register to view URLs content!


In the last year, we’ve talked about several capabilities that we shipped in ChakraCore including
Please, Log in or Register to view URLs content!
and
Please, Log in or Register to view URLs content!
. In addition, we’ve brought new technologies such as
Please, Log in or Register to view URLs content!
and
Please, Log in or Register to view URLs content!
to the engine. Today, we’d like to share a bit more about the progress that we’ve made taking ChakraCore cross-platform.

The road to ChakraCore parity on Linux


One of the key goals we set for ChakraCore when it went open source was to enable it to run on platforms other than Windows, starting with Linux, so that developers can use the engine for their needs regardless of the platform their apps or services run on. Last July, we shared our
Please, Log in or Register to view URLs content!
of ChakraCore interpreter and runtime on x64 Linux (Ubuntu 16.04 LTS and Clang 3.8+) and macOS. This implementation enabled a high fidelity ChakraCore JavaScript interpreter to execute on the Linux platform.

While interpreters are often not great when it comes to throughput performance, they can be extremely useful in cases where the application or service has size or memory constraints, or the end user focus is on startup performance. This is because interpreters usually have low footprint and startup latency. They don’t need to keep copies of the JITed code that are created based on dynamic optimizations that are common across JavaScript JIT compilers. JITed functions are in general larger in size as compared to the compact bytecode. Also, interpreters can start executing code immediately, once it has been parsed.

For the scenarios where throughput performance matters, we landed the
Please, Log in or Register to view URLs content!
in the master branch last December. However, the JIT compiler itself is not sufficient for higher throughput as performance quickly gets gated by the performance of the garbage collector, which is an inherent part of any modern JavaScript engine. Today, we are happy to share that we’ve also implemented the software writer-barrier support for Linux in the ChakraCore
Please, Log in or Register to view URLs content!
, which is key to enabling ChakraCore’s
Please, Log in or Register to view URLs content!
.

With the JIT and the fully featured garbage collector landing in ChakraCore, all major
Please, Log in or Register to view URLs content!
on Windows have now been ported to Linux. The team is now focused on adding the remaining few features such an Internationalization support, squashing the last set of bugs and optimizing the performance characteristics for ChakraCore on Linux to be on par with Windows.

What’s next


Our next steps for ChakraCore are always available on our
Please, Log in or Register to view URLs content!
. Today, we are intentionally not updating the roadmap significantly as the current items on the roadmap show our short-term focus – strengthening ChakraCore support on Linux and bring it to release quality, continuing our efforts within the Node.js community around coming up with
Please, Log in or Register to view URLs content!
, supporting more JavaScript and WebAssembly features, and improving performance for real-world usage patterns.

As we make further progress on the cross-platform related pieces in the upcoming months, you can expect a release of ChakraCore with better Linux support and performance. However, for those of you who’d like to try ChakraCore on Linux or macOS today and share your early feedback with us on the Beta quality support now available, here are the
Please, Log in or Register to view URLs content!
for you to get started.

Once again, we are humbled as a team to work with the wonderful JavaScript community and would like to thank all of you who have contributed to the project and supported us. We look forward to further collaboration with the community and hope to see more developers
Please, Log in or Register to view URLs content!
to the project and
Please, Log in or Register to view URLs content!
cool things with ChakraCore over time. We love to hear your experience, your feedback, and to learn what you are building – so keep sharing! You can always reach us on the
Please, Log in or Register to view URLs content!
, via
Please, Log in or Register to view URLs content!
or send us a tweet via
Please, Log in or Register to view URLs content!
.

Please, Log in or Register to view URLs content!
,
Please, Log in or Register to view URLs content!
, and
Please, Log in or Register to view URLs content!
; Program Managers, Chakra

Please, Log in or Register to view URLs content!
 

Users who are viewing this thread

Top