By: Maynard Handley (name99.delete@this.name99.org), June 22, 2020 10:55 pm
Room: Moderated Discussions
nobody in particular (nobody.delete@this.nowhe.re) on June 22, 2020 8:44 pm wrote:
> 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.)
I am fully aware of Doug's stance. My comment was not directed against Doug, it was sympathy with him. We're both in the same boat...
> 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.)
I am fully aware of Doug's stance. My comment was not directed against Doug, it was sympathy with him. We're both in the same boat...