Build the spidermonkey bundle from mozilla-central instead of using the ESR
Describe your feature request here.
Using the ESR build is recommended, see https://github.com/mozilla-spidermonkey/spidermonkey-embedding-examples/blob/esr115/docs/Building%20SpiderMonkey.md
Let's mode to using the version of spidermonkey from mozilla-central so we can keep up with Spidermonkey API changes and improvements as they happen, instead of reacting to them.
Wes relates: "I tweaked the cmake file to look at the mozilla-central directory, and used the mozilla build tool (I forget the name) to query the repository about its configuration"
Code example
No response
FYI - https://ftp.mozilla.org/pub/spidermonkey/releases/README.txt
ESR 115 branched from m-c in July 2023
Tom Tang
@Caleb @Wes Do we really need to build with Mozilla central instead of the esr version? It would be really hard to reuse CI caches for the built libmozjs.so files https://github.com/Distributive-Network/PythonMonkey/actions/caches if Mozilla central gets updated every hour. Also Mozilla central may contain some breaking changes to the public API without notice that we need to address them at random intervals. When using ESR versions we only need to think about it whenever we change the version.
Caleb I agree, which is why we didn't do this from the beginning. Building from Mozilla central is just asking for a breaking change to happen when we're not paying attention
Philippe Laporte @wesgarland I find these points compelling. You also mentioned that this way we can report bugs to Mozilla, but it seems it gives us enough trouble to make that less worth it...
Wes
You don't have to pull from m-c every day. Your cache will last until your next pull. I spent 10 years embedding spidermonkey. Every time I got too far behind the changes at m-c, it took me way longer to update my code than if I could have updated incrementally, along with the team. The team also stops caring about helping users find problems when they are reporting problems in a six-month old version of the browser.
This is why I asked for synchronization with m-c on day one of this product, and I'm getting kind of annoyed that two years in it hasn't happened yet.
Is there some breaking change between your ESR and the current version on mozilla-central?
If no, then let's get it done
If yes, then you would have found it shortly after it happened if you had been up to date with m-c from day one.
You can't leave yourself at the mercy of an ESR snapshot every six months or whatever. You need to be able to build from current sources or you are always going to be reacting to problems.