Build PaleMoon with JIT disabled

Users and developers helping users with generic and technical Pale Moon issues on all operating systems.

Moderator: trava90

Forum rules
This board is for technical/general usage questions and troubleshooting for the Pale Moon browser only.
Technical issues and questions not related to the Pale Moon browser should be posted in other boards!
Please keep off-topic and general discussion out of this board, thank you!
__tch

Build PaleMoon with JIT disabled

Unread post by __tch » 2019-12-01, 18:26

Is it possible, to disable the JS JIT at compile-time? If yes, how?

New Tobin Paradigm

Re: Build PaleMoon with JIT disabled

Unread post by New Tobin Paradigm » 2019-12-01, 18:31

Why do you want to make the application really slow? Additionally, why are you still here? We aren't Hyperbola and we don't support Fascist BSD AND we don't offer support for building the code no matter the application and especially not bullshit configuration like what you asked for even if it existed.

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35474
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

Re: Build PaleMoon with JIT disabled

Unread post by Moonchild » 2019-12-01, 20:57

You can disable it at run-time, if you insist. It's not possible to do so at compile-time; IonMonkey, JsAsm and baseline JIT are an integral part of Spidermonkey and can't be selectively "left out".

As stated JIT is essential for expected execution speeds of JavaScript though, and disabling it is just actively being stupid. I won't even ask for the reason why you'd want that outside of debugging scenarios.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

__tch

Re: Build PaleMoon with JIT disabled

Unread post by __tch » 2019-12-01, 21:13

@Moonchild:
Thanks. Yeah, of course i know, it would be slow, it was only a debug scenario.

@New Tobin Paradigm:
First, it's Linux/ARMHF, not BSD. I don't even know why did you thought that, because i did not said. Second, this was a generic build question about UXP, not a Hyperbola related one. Third, as i said before, this is a public forum and i did not asked you personally, but the community. I got my answer from Moonchild, that's why i am here. If you don't want to help, then do not answer. Thank you.

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35474
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

Re: Build PaleMoon with JIT disabled

Unread post by Moonchild » 2019-12-01, 21:32

__tch wrote:
2019-12-01, 21:13
Third, as i said before, this is a public forum and i did not asked you personally, but the community.
You'll just have to accept the fact that if you ask the community, anyone in that community can answer and tell your their opinion. Tobin is also part of this community, whether you like the reply or not, and past actions and posts will set a pretext for new questions if you're not specific. And you weren't being specific.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

__tch

Re: Build PaleMoon with JIT disabled

Unread post by __tch » 2019-12-02, 09:34

I know and accept that he is also part of the community. But it is not about if i like the reply or not, i did not like your reply either, because it made me know, that i cannot approach this way, yet i thanked you, because you were helpful and informed me about facts.
Answers like "you cannot do that, because xyz" are informative and useful, but answers like "go to hell already" - no matter how sophisticated and euphemistic they may be - are destructive and useless. If he hates me, i don't understand why he wastes time to reply at all.

Also, while i know that it's true, i also feel about the "past action" part, that it is a bit overblown a bit this time, isn't it? It's not like i troll this community with Hyperbola or BSD related questions on purposely for years and years; i merely asked one-one question about them. The Hyperbola question may was off forum, but since you had pointed me to their forum, i did not bothered the community with Hyperbola related questions at all, did i? As for BSD, if i don't ask, how would i know, that you're not supporting it? This time, well i really was not specific, but asking if i can disable the JIT at compile time is a generic question, isn't it? I did not feel the need to be specific, that i am on Linux/ARMHF, because i assumed, that the hypothesized option for it would be the same everywhere.

Tobin is simply overreacting.

New Tobin Paradigm

Re: Build PaleMoon with JIT disabled

Unread post by New Tobin Paradigm » 2019-12-02, 11:20

Off-topic:
Perhaps I am. Perhaps half the time I have to to get specific points across because most people don't read or listen to paragraphs of technical explanations accompanied by theory and informed opinion such as those I used to write so they would learn, think, and consider.

They tend to continue on and on and on so I keep it short and if they persist, I scream at them.

God I hate 2019.

__tch

Re: Build PaleMoon with JIT disabled

Unread post by __tch » 2019-12-02, 12:20

You have never gave me a single paragraph of technical explanation or at least a link to such content. Actually you have never gave me anything useful, except for a hint about the possible availability of Jackaudio with PM under the dreaded BSD-s. May i remind you, i thanked you for that. But for the rest? Read back your posts, what did you expect from me? What could i learn from hostile bursts? What should i think or consider about them? But yes, this is off topic.

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35474
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

Re: Build PaleMoon with JIT disabled

Unread post by Moonchild » 2019-12-02, 12:45

There is no reason whatsoever to try and exclude it at compile-time for debugging. If it's disabled, then it's disabled, no matter if it's not built or if it's just, you know, disabled.
There is no further technical explanation to this beyond what I already stated, and if that's not informative enough then you can do your own dam research.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

__tch

Re: Build PaleMoon with JIT disabled

Unread post by __tch » 2019-12-02, 16:59

Moonchild wrote:
2019-12-02, 12:45
There is no reason whatsoever to try and exclude it at compile-time for debugging. If it's disabled, then it's disabled, no matter if it's not built or if it's just, you know, disabled.
This only applies for runtime. What if i cannot compile it at all, because the compiler finds errors in the JIT code? Then disabling JIT at compile-time will make the user able to compile it.
Moonchild wrote:
2019-12-02, 12:45
There is no further technical explanation to this beyond what I already stated, and if that's not informative enough then you can do your own dam research.
I got it for the first time. My last post was generic and it was addressed to Tobin, not you. But never mind.

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35474
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

Re: Build PaleMoon with JIT disabled

Unread post by Moonchild » 2019-12-02, 18:22

__tch wrote:
2019-12-02, 16:59
What if i cannot compile it at all, because the compiler finds errors in the JIT code? Then disabling JIT at compile-time will make the user able to compile it.
:lol:

Oh wait. you're serious? :lol: -- So why didn't you come out and say this from the start?

If your compiler can't compile it, then you're not using the correct toolchain. As far as code bases go, we are already a shit ton more compatible with different compilers than most other code, with how it compiles with gcc 4 through 8 as well as MSVC as well as the native Mac compiler. So yeah, don't make PEBCAK the reason for this request. Use a supported compiler if it doesn't build on your chosen one, or make the changes you need to make yourself to the tree.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

__tch

Re: Build PaleMoon with JIT disabled

Unread post by __tch » 2019-12-02, 18:42

It's GCC 6. But it still can be a PEBKAC.

User avatar
adesh
Board Warrior
Board Warrior
Posts: 1277
Joined: 2017-06-06, 07:38

Re: Build PaleMoon with JIT disabled

Unread post by adesh » 2019-12-02, 19:26

Do not use GCC 6. It is unsupported. Use GCC 4.9 if you target older systems or otherwise just any other higher version but 6. If you still face errors while using supported configuration, errors can be looked into.

Read more here:
viewtopic.php?f=5&t=22899&p=176463#p176463
viewtopic.php?f=37&t=11466&p=177499#p177499
viewtopic.php?f=37&t=11466&p=177523#p177523

__tch

Re: Build PaleMoon with JIT disabled

Unread post by __tch » 2019-12-02, 19:47

It's a bit weird, because on my desktop, GCC 6 were able to compile and on the other hand, GCC 5 what was the default on ARMHF failed, that's why i upgraded to GCC 6 there too. It seems to me, it was a mistake, i should've try to build it with GCC 4. Thank you for pointing out.

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35474
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

Re: Build PaleMoon with JIT disabled

Unread post by Moonchild » 2019-12-03, 10:45

Now, if you would have given details in your original post about your environment, we could have skipped right to getting you a solution. It's OK to ask for broader help when you run into an issue instead of trying force a solution you think is the way to solve it by not providing anything but the details pertaining to your chosen direction.

e.g. "I'm trying to compile Pale Moon with GCC 6 on {your Linux distro and version here} and I'm running into problems with the Javascript JIT part when compiling. I'm trying to avoid this by not compiling the JIT parts. Is it possible, to disable the JS JIT at compile-time? If yes, how?" would have been a lot more informative and I'm sure allowing readers to immediately point out that GCC 6 is problematic, and go from there.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

__tch

Re: Build PaleMoon with JIT disabled

Unread post by __tch » 2019-12-04, 15:57

Edit: GCC 7 is also failed. In file UXP/js/src/jit/arm/MacroAssembler-arm.cpp in line 3465 and 3466 there are two unknown properties, isMarkable and toMarkablePointer. Are they exists under ARM?

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35474
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

Re: Build PaleMoon with JIT disabled

Unread post by Moonchild » 2019-12-04, 16:38

This was fixed with Issue #1245 (UXP) in Oct.
This was possibly not uplifted to the release branch yet so you may want to patch manually or wait for 28.8 in that case.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

__tch

Re: Build PaleMoon with JIT disabled

Unread post by __tch » 2019-12-04, 17:04

I see, thank you. After i've changed it, is it possible to continue the build with mach or it will start building from scratch again?

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 35474
Joined: 2011-08-28, 17:27
Location: Motala, SE
Contact:

Re: Build PaleMoon with JIT disabled

Unread post by Moonchild » 2019-12-04, 17:06

You can just make an incremental build with mach, no need to clobber.
"Sometimes, the best way to get what you want is to be a good person." -- Louis Rossmann
"Seek wisdom, not knowledge. Knowledge is of the past; wisdom is of the future." -- Native American proverb
"Linux makes everything difficult." -- Lyceus Anubite

__tch

Re: Build PaleMoon with JIT disabled

Unread post by __tch » 2019-12-04, 17:12

And what arguments i should give to mach for that? If i just say ./mach build it starts the building from the beginning.

Did you mean by "no need to clobber", that i have to set the AUTOCLOBBER option in .mozconfig to zero?

Locked