Recently Node.js started to support building with clang-cl on Windows. I happened to have the chance to try it out this week and while it still needs some fixups in my case, it’s mostly working very w| Joyee Cheung's Blog
Recently, I fixed a macOS-specific startup performance regression in Node.js after an extensive investigation. Along the way, I learned a lot about tools on macOS and Node| Joyee Cheung's Blog
In the previous posts we looked into how the Node.js executable was made a bit more reproducible after the Node.js snapshot data and the V8 code cache were made reproducible, and did a bit of anatomy on the unreproducible V8 snapshot blobs| Joyee Cheung's Blog
In the previous post, we covered how the Node.js built-in snapshot is generated and embedded into the executable, and how I fixed the Node| Joyee Cheung's Blog
In a recent effort to make the Node.js builds reproducible again (at least on Linux), a big remaining piece was the built-in snapshot. I wrote some notes about the journey of making the Node| Joyee Cheung's Blog
Recently, I co-organized a hybrid unconference - the Node.js collaboration summit for 2024 H1| Joyee Cheung's Blog
Recently I landed experimental support for require()-ing synchronous ES modules in Node.js, a feature that has been long overdue| Joyee Cheung's Blog
In the previous blog post, I described the heap snapshot trick as an “abuse” of the heap snapshot API, because heap snapshots are not designed to interact with the finalizers run in the heap| Joyee Cheung's Blog
In the previous blog post, I talked about how Node.js used memory usage measurement to test against memory leaks. Sometimes that’s good enough to provide valid tests| Joyee Cheung's Blog
Like many other relatively big piece of software, Node.js is no stranger to memory leaks, and with them, fixes and regression tests| Joyee Cheung's Blog
In the last post I wrote about how I finally managed to fix the memory problems in the vm APIs, and it turned out that there was another issue blocking users from upgrading away from the End-of-Life Node| Joyee Cheung's Blog
In the last post I wrote about how a new memory management model in Node.js vm APIs was designed to fix the long-standing leaks and use-after-free issues, and we finally put together a PR that the Node| Joyee Cheung's Blog
In the last post, I wrote about how I came to work on a memory leak in the vm compilation APIs in Node| Joyee Cheung's Blog
This year I spent some time fixing a few long-standing issues in the Node.js vm APIs that had been blocking users from upgrading away from Node.js v16 (End-of-Life). It had been an interesting journey, so I decided to write a few blog posts about it. Hopefully they can be helpful for posterity| Joyee Cheung's Blog
Up until V8 10.0, the class field initializers had been broken in| Joyee Cheung's Blog
Update: this blog post is now outdated. Since some time around 2022-2023 no more extra setup is required to build V8 on Apple ARM64 CPUs. This post is only preserved here for archeological purpose. I’ve recently got an M1 MacBook and played around with it a bit| Joyee Cheung's Blog
This post stems from a recent Twitter conversation and a bug I was trying to fix| Joyee Cheung's Blog
In this post, I’ll jot down some notes that I took when refactoring the uncaught exception handling routines in Node.js. Hopefully it could be useful for other people who are interested in this part of the code base, or for code archaeologists in the future| Joyee Cheung's Blog
I recently ran into a V8 test failure that only showed up in the V8 fork of Node.js but not in the upstream. Here I’ll write down my workflow used to debug the failure in case anyone (or myself) need to do this again and don’t know where to start| Joyee Cheung's Blog
I thought about writing some guides on this topic in the nodejs/node repo, but it’s easier to throw whatever tricks I personally use on the Internet first - I am also going to heavily use the pronouns “I”, “We” and “You” in this post, and talk about my personal preference here, both of which we a| Joyee Cheung's Blog
Recently I landed experimental support for require()-ing synchronous ES modules in Node.js, a feature that has been long overdue. In the pull request, I commented with my understanding about why it di| Joyee Cheung's Blog