Node.js 8.3.0 is now available shipping with the Ignition + TurboFan execution pipeline
This post is brought to you by Myles Borins who is a @nodejs ctc member / developer advocate for Google Cloud.
Why is this so exciting?
Iginition + TurboFan are the new interpreter and compiler that have been a part of V8 since version 5.9. They replace Full-codegen and Crankshaft, technologies that have been shipping in V8 since 2010. The new execution pipeline has been optimized with modern JavaScript in mind, you can read more about it in this blog post.
How will this change impact Node.js users?
The biggest thing that Node.js developers will need to pay attention to will be changes to the performance profile of their application. To learn more about this please read this blog post by David Mark Clements and Matteo Collina.
Should we upgrade to the latest version of Node.js today?
You should begin testing your applications on 8.x today as it will be promoted to LTS in October. This can include testing locally, in a staging server environment, and even in a small production roll out if you are set up to do so. If your team is not currently using Node.js 7.x or 8.x in production at all, it might be prudent to wait until October to begin shipping 8.x.
What should we do if we find bugs or performance regressions?
Please report all problems to our issue tracker. You can follow our issue template to help craft your report. When reporting bugs it is incredibly helpful to provide us with a reproduction of the bug using only the Node.js core libraries. If you believe you have found a performance regression providing a minimal benchmark is extremely helpful, you can get pretty far with just console.time()
🎉 🎉 🎉
Getting Ignition + TurboFan into Node.js 8.x has been a work in progress for over 4 months! It inolved an early commitment by both the V8 Team to offer engineering support and the Node.js CTC to postpone the 8.x release.
Getting to the point where we could land V8 6.0 on Node.js 8.x involved:
- Making custom ABI compatible version of V8 5.8 and 5.9 (Anna Henningsen, Peter Marshall)
- Getting upstream versions of V8 landed in Node.js master (Michaël Zasso, Myles Borins)
- Creating a Canary build of Node with the Latest Known Good Release of V8 (Michael Achenbach, Yang Guo)
- Getting V8 to run on all of supported platforms (Anna Henningsen, Ben Noordhuis, Gibson Fahnestock, Jaideep Bajwa, João Reis, Julien Gilli, Myles Borins, Refael Ackermann)
- Dealing with bugs and backporting fixes upstream in V8 (Ali Sheikh, Benedikt Meurer, Franziska Hinkelmann, Michael Hablich, Myles Borins)
- Measuring changes in performance profile (David Mark Clements, Evan Lucas, Matteo Collina)
- On going testing, bug reports, and support (Each and everyone of you!)
This is an exciting milestone that involved co-orindated participation across organizations, time-zones, languages, and philosophies. Thank you to every person who played a hand in making this happen; it takes a village.
You can learn about additional features in Node.js 8.3.0 in this blog post.