By: Maynard Handley (name99.delete@this.name99.org), June 22, 2020 7:04 pm
Room: Moderated Discussions
Doug S (foo.delete@this.bar.bar) on June 22, 2020 6:14 pm wrote:
> 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.
LLVM has done a LOT of work on this for JIT support of various enterprises.
Meanwhile Apple has done a lot of work on support of JS (at one point based on LLVM, then branching off to a more specialized infrastructure).
Then there is all the work on materializing within C++ (and I expect Obj-C and Swift); again speculative compilation+runtime with a mechanism to roll back if you guessed incorrectly.
Go read the LLVM mailing lists and/or Webcore blog if you want much much more detail...
This is the issue EVERY time you talk about Apple!
[Before Apple announces] "It's really hard, and I've never heard of Apple doing it, so I'll just ignore the reports from people who DO follow Apple as fanboy nonsense"
[After Apple announces] "Who could possibly have predicted this? We were totally justified in ignoring everyone who told us exactly how this would play out as silly fanboys."
It's almost as though some people just don't want to learn about anything outside their bubble, as though ignoring, mocking, and abusing it will prevent reality from just rolling along...
> 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.
LLVM has done a LOT of work on this for JIT support of various enterprises.
Meanwhile Apple has done a lot of work on support of JS (at one point based on LLVM, then branching off to a more specialized infrastructure).
Then there is all the work on materializing within C++ (and I expect Obj-C and Swift); again speculative compilation+runtime with a mechanism to roll back if you guessed incorrectly.
Go read the LLVM mailing lists and/or Webcore blog if you want much much more detail...
This is the issue EVERY time you talk about Apple!
[Before Apple announces] "It's really hard, and I've never heard of Apple doing it, so I'll just ignore the reports from people who DO follow Apple as fanboy nonsense"
[After Apple announces] "Who could possibly have predicted this? We were totally justified in ignoring everyone who told us exactly how this would play out as silly fanboys."
It's almost as though some people just don't want to learn about anything outside their bubble, as though ignoring, mocking, and abusing it will prevent reality from just rolling along...