[webkit-gtk] FTL plans for 2.12

Martin Robinson mrobinson at webkit.org
Tue Feb 2 00:03:32 PST 2016

Thanks for the overview, Carlos. I agree with all of your reasoning
and like your plan a lot.


On Mon, Feb 1, 2016 at 10:59 PM, Carlos Garcia Campos
<cgarcia at igalia.com> wrote:
> At the beginning of this release cycle we enabled FTL using LLVM with
> the idea of finally having FTL support since 2.12. At the same time
> Apple JSC developers were working on a new backend for FTL, B3 to
> replace the LLVM. This has many advantages, but from the maintenance
> point of view it means we don't need to depend on LLVM anymore (note
> that we don't just link to LLVM, we have a shared library linking to
> LLVM that JSC loads with dlopen at runtime only when needed).
> I think most of the distros have already prepared their packages for
> the LLVM machinery. We didn't expect B3 to be ready during this cycle,
> but Apple surprised us announcing they had enabled it by default in Mac
> port. So, we are late in the release cycle but still in time for
> switching to B3, specially if it's really stable. At the moment all JSC
> tests pass, but we all know tests are not enough to consider JSC
> stable, we need real use testing. So, I would say we basically have the
> following possibilities:
>  a) Keep LLVM and branch for 2.12 right before enabling B3 in trunk.
>  b) Disable FTL for 2.12 and delay it to 2.14 with B3
>  c) Switch to B3
> Problem with a) is that we are introducing a new dependency for just
> one cycle, although most of the distros have already adapted their
> packages and it's an optional dep after all. Advantage is that we have
> a whole cycle to test B3. This is also the advantage of b). And c) is
> the best solution, we have FTL drastically improving the JavaScript
> performance, and without the LLVM dependency, but it's also the most
> risky one.
> My proposal is to try with c):
>  1. Switch to B3 in trunk ASAP.
>  2. Set up a bot that runs Octane, Speedometer, JetStream and Kraken in
> a real browser.
>  3. Make an unstable release with B3 right before branching.
>  4.a If the release is super unstable, branch for 2.12 and disable FTL
> in the branch.
>  4.b If the release works reasonable well, branch for 2.12 and keep
> merging B3 fixes and improvements in the branch.
>  5. Right before the hard code freeze we have the last opportunity to
> keep B3 or disable FTL in case of 4.b, but hopefully we don't need to
> wait until the very last moment to decide.
> So yes, I'm discarding any option to keep LLVM.
> --
> Carlos Garcia Campos
> http://pgp.rediris.es:11371/pks/lookup?op=get&search=0xF3D322D0EC4582C3
> _______________________________________________
> webkit-gtk mailing list
> webkit-gtk at lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-gtk

More information about the webkit-gtk mailing list