4 ms·
v8 has its own build chain, which involves ~5gb of downloads. that build chain doesn't work on many platforms, and requires very specific versions of prerequis
by jerrysievert 3y ago
v8 has its own build chain, which involves ~5gb of downloads. that build chain doesn't work on many platforms, and requires very specific versions of prerequisites including specific glibc versions.
the build chain consists of specific compilers, specific versions of chromium parts and pieces, its own sys root, everything.
since the API for v8 changes on a regular basis (not as much as it has in the past, at least), you cannot simply change out v8 versions, as they likely will not work.
v8 is also compiled differently for each embedding application, and thus a shared object won't work correctly across multiple applications, and besides is strongly advised against by the v8 team.
nodejs has its own build process that they've been maintaining since the v8 3.1.4 days, but it is specific to node.
so, it just adds up to a difficult maintenance.
- mike_hearn 3y agoWow. That's kind of surprising. HotSpot is just autotools: ./configure && make and you're done. Plus the embedding APIs are stable. Do you have any insight into what led them to have such a complex build? Is it just because it's a part of the Chromium tree? It doesn't seem inherent to the problem space.
- jerrysievert 3y agothey use their own build systems for everything, even skia. though skia has a bit less strict build requirements.