4 ms·
wow, thanks for the compliment! it hasn't always been easy, believe me.
by jerrysievert 3y ago
wow, thanks for the compliment! it hasn't always been easy, believe me.
- LunaSea 3y agoThank you for the amazing work indeed! I know that at one point the idea of using a non-v8 JavaScript engine was floating around, due in part to the V8 build complexity and the API breaking changes. Is this still something that is up in the air? I know that Bun decided to use JavaScriptCore as a recent example.
- jerrysievert 3y agoI have been slowly but surely working on pljs in my spare time. it is nowhere near feature parity with plv8, but I hope to get it closer with more time. currently missing: * query execution/cursors * window functions * sub transactions it is based on quickjs, is very fast/easy to compile, and while in long-running functions it is slower than v8, it has a very fast startup time that negates that for shorter functions. but, it's not ready for prime time yet.
- mike_hearn 3y agoThat's interesting - could you describe what makes the build and install so hard? I can't think of any obvious reason why it should be harder than PL/Java. V8 is pretty widely used!
- jerrysievert 3y agov8 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.