Live data from Hacker News

HolyJit: A New Hope

blog.mozilla.org

131–140 of 219 posts

Re: HolyJit: A New Hope

#131
post #108

Earlier quoted context omitted.

I hope they are paying you very well.

Government site. They aren't paying James well. Added: if you think I'm joking or being unfair, just look at the compensation tables for just about any government outfit. They top out around a salary that is considered average for software folks in some places.

He didn't say he was government. Contractors can make out like bandits still ;)

Re: HolyJit: A New Hope

#132

For those wondering, it's a specializer, applied to an interpreter, to specialize the interpreter into a jit. This is a pretty well explored technique, it's rarely done these days because historically, people could not get good enough performance. (I am not trying to knock them, just put it in context) For more context on how you'd do something like this, read this: https://en.wikipedia.org/wiki/Partial_evaluation#Fu…

Isn't this what pypy does? pypy does the specialization at runtime, maybe this does it at (interpreter) compile time?

Given how HolyJIT is implemented (with compiler plugins etc), I believe that it does this work at compile time, yes. I haven't actually confirmed this though.

Re: HolyJit: A New Hope

#133
post #72

Earlier quoted context omitted.

I don't know, I'm a fan of the name to be honest, I wouldn't change it just because of the possibility of accidental association.

What about just avoiding needless offence to people who happen to regard the 'holy' morpheme as indicative of ... well ... something holy and not to be trifled with. I don't have religion, but given an essentially infinite number of alternatives to this not-very-funny one, why do this? People also have a right to be idiots in other ways, such as poking hornets' nests because it's funny.

Exactly, the name is not funny at all. Is the author still 15 years old?

Re: HolyJit: A New Hope

#134

Earlier quoted context omitted.

Ummm... it’s for Firefox... no?

I mean, maybe, in theory, someday. But the browser would still be "Firefox", that is, very few people would even be aware of this name, regardless of what the name is.

I think you must’ve taken my comment too seriously... I agree that Firefoxs success does not depend on the meaning behind the name holyjit lol. It was just a joke.

The main point was that if they came up with this name without the intention of punning holy shit, I have low confidence in their abilities to succeed in general and with Firefox in particular. But also don’t take this too seriously.

Re: HolyJit: A New Hope

#135

Earlier quoted context omitted.

Isn't this what pypy does? pypy does the specialization at runtime, maybe this does it at (interpreter) compile time?

Given how HolyJIT is implemented (with compiler plugins etc), I believe that it does this work at compile time, yes. I haven't actually confirmed this though.

The goal is to optimize the code both at compile-time and at run-time. We need to optimize it at compile time to prevent slow start-up, and we need to optimize it at run-time to benefit from profile guided optimizations.

Re: HolyJit: A New Hope

#136

Earlier quoted context omitted.

my coworker's previous employer blocked all code-sharing and question-and-answer sites for programmers because of a pathological fear of accidental IP dilution. it's a real thing.

That it is, although what they end up doing is making people work on their work machine as well as their cellphone. Source: me, working for a defense contractor with the same insane rules, but no "hand in your phone" rules on entry.

Having worked in defense, I generally had stricter rules around phones than around website access. That is really a bit surprising to me.

I guess contractors are all over the map in how they try to make sure to comply with the "rules", though.

Re: HolyJit: A New Hope

#137
post #108

Earlier quoted context omitted.

I hope they are paying you very well.

Government site. They aren't paying James well. Added: if you think I'm joking or being unfair, just look at the compensation tables for just about any government outfit. They top out around a salary that is considered average for software folks in some places.

He said government site, not government employee. Contractors are sometimes paid very well.

Re: HolyJit: A New Hope

#138
post #58
post #39

For what it's worth, the name is obviously a pun and a small wink to the Graal VM [1]. Not sure there's any intention to reference TempleOS's HolyC. [1] https://github.com/graalvm/

It could also be a play on the phrase "Holy shit!"

As long as the performance of this new engine isn’t jitty.

Re: HolyJit: A New Hope

#139
post #125

Earlier quoted context omitted.

Government site. They aren't paying James well. Added: if you think I'm joking or being unfair, just look at the compensation tables for just about any government outfit. They top out around a salary that is considered average for software folks in some places.

I know that that is typical, but there are exceptions, and if you work for the right agency you can be paid well, so I don't want to make any assumptions. If he's not paid well then I hope he realizes that by merely being aware of HN and GitHub puts him in the top 10% of developers and he can do a lot better than working at a place that restricts his ability to educate himself.

Oh, I'm a contractor and I'm paid decently, but the working conditions are terrible. I've been trying to find a job outside of defense/govt work for a long time, but either the pay isn't as good (the one or two times I managed to land an offer) or I'm not a "cultural fit." Not having a network outside of the govt bubble makes it hard.

Re: HolyJit: A New Hope

#140

For those wondering, it's a specializer, applied to an interpreter, to specialize the interpreter into a jit. This is a pretty well explored technique, it's rarely done these days because historically, people could not get good enough performance. (I am not trying to knock them, just put it in context) For more context on how you'd do something like this, read this: https://en.wikipedia.org/wiki/Partial_evaluation#Fu…

The state of the art in jit compilation has advanced quite a bit since then, and another difference between the days of old and new is that this is being targeted at runtime code generation, which naturally trades off throughput of generated code for speed-of-generation. Especially for web pages, speed-of-generation, and the stability of the resulting code under polymorphism (so that jitcode with type assumptions doesn't become invalid), is paramount.

These issues, as well as developer velocity in translating VM features into optimized VM features, figure more prominently in our problem set than I would expect it historically did.

We sat down with nbp and went through his proposal in some detail yesterday. I'm reasonably sold on the theoretical soundness of the idea (actually I was excited about it from the first time he proposed it - hand optimizing every new JS feature is soul-sucking, and Graal already demonstrated the feasibility of variant of the concept).

As with any far-reaching idea, though, there are risks associated with it. And we definitely can't rewrite Spidermonkey from scratch.

Personally, I think prototyping the tech on top of a small toy language (objects, properties, proto chains, primitive types, functions), proving out the toy implementation, and then examining how we can incrementalize our transition to HolyJIT is the way to go.

I think a prerequisite is a good codegen backend that we can target. Cretonne is a good candidate, but we need features that aren't on its roadmap - primarily support for on-stack-invalidation.

There's a bit of a road ahead of us on this concept. I think we have a good rough idea of a viable path from here to there, but we are yet in early stages with this.

Post reply on HN