By: nobody in particular (nobody.delete@this.nowhe.re), June 22, 2020 7:44 pm
Room: Moderated Discussions
Maynard Handley (name99.delete@this.name99.org) on June 22, 2020 8:04 pm wrote:
> 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...
Doug was speculating that static translation could, in fact, work effectively before the announcement - while others, including myself, were arguing against it (and have since been proven wrong.)
> 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...
Doug was speculating that static translation could, in fact, work effectively before the announcement - while others, including myself, were arguing against it (and have since been proven wrong.)