By: Doug S (foo.delete@this.bar.bar), June 22, 2020 5:14 pm
Room: Moderated Discussions
anon (anon.delete@this.anon.com) on June 22, 2020 4:22 pm wrote:
> They're doing hybrid: both JIT/dynamic and install time
They would have to, as there would be some applications or at least parts of them (any sort of generated or self-modifying code, Linus' example of applications that fiddle with the signal stack, and other such niche cases) where static translation isn't feasible.
Though I wonder if a combination of both in the same application is even possible. Maybe it is all or nothing, either the static translator is able to do the job but when it can't it goes full JIT for that application.
Maybe they've found a way to slide neatly between the two by maintaining enough "x86 state" in the translated binary to let the JIT cut in where necessary, but that sounds like it might be MUCH harder than static translation alone, which is already much harder than JIT. There are a lot of devils hidden in the details that will be interesting to find out more about.
> They're doing hybrid: both JIT/dynamic and install time
They would have to, as there would be some applications or at least parts of them (any sort of generated or self-modifying code, Linus' example of applications that fiddle with the signal stack, and other such niche cases) where static translation isn't feasible.
Though I wonder if a combination of both in the same application is even possible. Maybe it is all or nothing, either the static translator is able to do the job but when it can't it goes full JIT for that application.
Maybe they've found a way to slide neatly between the two by maintaining enough "x86 state" in the translated binary to let the JIT cut in where necessary, but that sounds like it might be MUCH harder than static translation alone, which is already much harder than JIT. There are a lot of devils hidden in the details that will be interesting to find out more about.