3 ms·
I've been working with PyV8 for nearly 3 years, and while it's an impressive achievement, I've had to start using a custom version to maintain stability. One o
by artlogic 13y ago
I've been working with PyV8 for nearly 3 years, and while it's an impressive achievement, I've had to start using a custom version to maintain stability. One of the major issues with PyV8 currently is that is builds against V8's master branch, as opposed to a known stable version. This means it breaks from time to time due to the speed of V8 development. There are also not releases of PyV8 per se. It's been v1.0 for quite awhile now, despite a year or more worth of fixes since the bump from v0.9 to v1.0.
I would LOVE to see tighter integration of Python and JavaScript, but if you are planning on using PyV8 in any production code (as I am), I would think very carefully about it.
- malexw 13y agoI've been trying to integrate PyV8 into our production environment and have been experiencing a lot of trouble with it as well. There are two main issues that are killing it for us - the first is the challenge of building it, as you mention. There's also a difficult-to-reproduce segfault issue that crops up sometimes when V8's GC runs. Is your custom version published online anywhere? It would be great to build off the stability work you already seem to have done.
- artlogic 13y agoI've noticed the GC problem that you mention as well. To me it seems very much that when objects travel between V8 and Python is when problems begin to crop up. Sadly, I have yet to be able to fix this. I believe this issue captures it most concisely: https://code.google.com/p/pyv8/issues/detail?id=193 https://code.google.com/p/pyv8/issues/detail?id=193 I'll have to see about publishing my work publicly, as I don't explicitly own it. My biggest piece of advice is to always build from the latest branched version of v8, rather than the trunk. Right now, that would be 3.23. The branched version tends to be a bit more stable than the trunk. Sadly, since the PyV8 maintainer works from the trunk, I've often had to build a few revs back to get things to compile if there was a major structural v8 change. If you'd be willing to share the details of your build environment, I can see if my work is even applicable and go about getting the permission to publish what I've done. BTW, I want to be clear that in no way am I disparaging the PyV8 maintainer. He's been very responsive and helped fix some problems that would have taken me weeks to fix on my own. The project simply isn't focused on stability at the moment.