Re: SpiderMonkey dependency change for gjs 1.47.3



On Mon, Dec 12, 2016 at 7:30 AM Michael Catanzaro <mcatanzaro gnome org> wrote:
On Mon, 2016-12-12 at 12:51 +0100, Dominique Leuenberger / DimStar
wrote:
> Thanks for the heads up - I am wondering though if spiderMonkey 31 is
> still a valid target. Version 38, after all, is not future, but
> present - in openSUSE or example we currently have these versions:
>
> mozjs17 (legacy, still used by polkit IIRC)
> mozjs24 (gjs' dependency)
> mozjs38 (Current version)
>
> Of course if gjs really needs mozjs31, there is hardly any way we can
> get around it - but if we could just target 38, which is already out,
> that sounds like a step less wasted.

45 is the current version; 38 is insecure and deprecated already, and
52 is just around the corner. It's every seven Firefox releases,
matching the ESR cycle. Unfortunately porting to a new mozjs is not
simple and has to happen one step at a time, according to Philip, who
is doing the work. :)

Ideally we would use a JS engine that has a stable API to make porting
easier. That would indicate JSC, which is a core API on macOS, already
part of our platform, and arguably the most advanced JS engine right
now anyway. seed exists for this, and I'm told it has a gjs
compatibility mode now, but no release in four years is really
discouraging.

This is not where the train stops. I will continue to port things to future ESRs. As I mentioned in my mail, I hope to be able to port to mozjs38 before the GNOME feature freeze in February.

I expect it will not be as difficult as the port from 24 to 31, which saw a lot of required API changes. As far as I understand, subsequent ESRs present a much smaller barrier.

However when porting from 38 to 45, I'll need to rework GJS's custom class framework to use ES6 classes, which are introduced in 45, while still keeping backwards compatibility. So I expect that barrier to be large again, though not from a SpiderMonkey API perspective. Keep in mind this is a cost we'd have to pay regardless of JS engine, as the JS language keeps evolving standardized versions of stuff we've added to GJS in the past. 45 to 52 I expect to be an easier port again.

Regards,
Philip


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]