In short, people developing apps for Ubuntu want SpiderMonkey to grow up and start acting like a real library. That means we commit to keeping libmozjs's ABI backward compatible within each stable release branch (such as mozilla-1.9.1).
Either these users would be a net win for us or a net distraction. I encourage discussion on this point. On the whole I think diverse use of libmozjs is a net win, potentially a huge win.
What is the cost of having such a compatibility policy? Two things.
1. Mainly, everyone on the JS team would just need to be aware of it when writing patches that might be backported to a stable branch. Branch owners/release drivers should agree to the policy too. ABI backward compatibility means we can't delete a "friend API" function or change its signature or semantics incompatibly in a stable branch.
2. Second, there's the cost of actually doing releases, which seems small but deserves some consideration given what happened with 1.8 (in short, with tremendous effort I managed to shove a release candidate out the door, but never managed a final release). I think we can minimize this cost just by saying "whatever ships in gecko is an official SpiderMonkey release".
The main issue here is one of policy.
In short, people developing apps for Ubuntu want SpiderMonkey to grow up and start acting like a real library. That means we commit to keeping libmozjs's ABI backward compatible within each stable release branch (such as mozilla-1.9.1).
Either these users would be a net win for us or a net distraction. I encourage discussion on this point. On the whole I think diverse use of libmozjs is a net win, potentially a huge win.
What is the cost of having such a compatibility policy? Two things.
1. Mainly, everyone on the JS team would just need to be aware of it when writing patches that might be backported to a stable branch. Branch owners/release drivers should agree to the policy too. ABI backward compatibility means we can't delete a "friend API" function or change its signature or semantics incompatibly in a stable branch.
2. Second, there's the cost of actually doing releases, which seems small but deserves some consideration given what happened with 1.8 (in short, with tremendous effort I managed to shove a release candidate out the door, but never managed a final release). I think we can minimize this cost just by saying "whatever ships in gecko is an official SpiderMonkey release".
Please comment.