[webkit-gtk] FTL plans for 2.12

Carlos Garcia Campos cgarcia at igalia.com
Mon Feb 1 22:59:40 PST 2016

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

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: This is a digitally signed message part
URL: <https://lists.webkit.org/pipermail/webkit-gtk/attachments/20160202/19148cf2/attachment.sig>

More information about the webkit-gtk mailing list