The JS-engine-only version?

Talk about code development, features, specific bugs, enhancements, patches, and similar things.
Forum rules
Please keep everything here strictly on-topic.
This board is meant for Pale Moon source code development related subjects only like code snippets, patches, specific bugs, git, the repositories, etc.

This is not for tech support! Please do not post tech support questions in the "Development" board!
Please make sure not to use this board for support questions. Please post issues with specific websites, extensions, etc. in the relevant boards for those topics.

Please keep things on-topic as this forum will be used for reference for Pale Moon development. Expect topics that aren't relevant as such to be moved or deleted.
User avatar
soundmodel
Hobby Astronomer
Hobby Astronomer
Posts: 24
Joined: 2023-05-14, 06:21

The JS-engine-only version?

Unread post by soundmodel » 2023-05-14, 06:35

After noticing that the HyperbolaBSD project, for example, needs to utilize browsers that do not use Rust due to trademark issues, this limits the usage of SpiderMonkey. Other engines obviously cannot be deployed due to incompatibilities with FOSS principles.

But like other browsers have an embeddable JS-engine-only version, why doesn't this project seem to have such? It appears that there's a legitimate interest in a properly principled FOSS JS engine. And I did my research and QuickJS has been discussed here already:

viewtopic.php?f=5&t=22558

However, due to the broad usage of such an engine, I think that ideally all similarly principled projects should use the same solution in order to guarantee compatibility of implementations.

But I interpreted that since Basilisk claims to not use Rust, then it must have a Rust-free implementation of SpiderMonkey, right? But is it available in an embeddable form?

User avatar
FranklinDM
Add-ons Team
Add-ons Team
Posts: 575
Joined: 2017-01-14, 02:40
Location: Philippines
Contact:

Re: The JS-engine-only version?

Unread post by FranklinDM » 2023-05-14, 09:10

I'm not exactly sure if embedding UXP's SpiderMonkey is still possible, but a guide is available here.

On the other hand, building SpiderMonkey as standalone application (jsshell) definitely works, but it's been over a year or so since I've last tried doing a build. My goal in doing that back then was to run the tc39/test262 tests locally via CLI. Finding up-to-date documentation about that one is a bit tricky, though.

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

Re: The JS-engine-only version?

Unread post by Moonchild » 2023-05-14, 09:48

soundmodel wrote:
2023-05-14, 06:35
But like other browsers have an embeddable JS-engine-only version
I don't think they do! If you're thinking about projects like electron, that is much more than just the js engine.
soundmodel wrote:
2023-05-14, 06:35
due to the broad usage of such an engine, I think that ideally all similarly principled projects should use the same solution in order to guarantee compatibility of implementations.
You do realise that this line of thinking is exactly why we ended up with a 95%/5% split between Blink-based browsers and others, right? :)

A bit more to the point though; browsers' JS engines cannot be seen in isolation as they are intricately interwoven with using DOM. It's definitely possible to use "pure js" functions from the engines themselves but the result can't interact with anything if used in isolation and is likely of very limited practical use in that respect unless you want to use it on some server back-end for computational purposes. The limits of the JS shell are alike.

As an aside, thanks to some great dev work the past months we do have a separate SpiderMonkey library on Windows again going forward so theoretically one could use that dll standalone and embed it in other applications; none of that kind of use is documented though and I'm not sure of the interdependency with other libs in the resulting build, but like I said theoretically it should be possible.

And none of the UXP-based applications use Rust. I've made sure to keep any integration with Rust out of the platform.
"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

BenFenner
Astronaut
Astronaut
Posts: 588
Joined: 2015-06-01, 12:52
Location: US Southeast

Re: The JS-engine-only version?

Unread post by BenFenner » 2023-05-15, 15:01

soundmodel wrote:
2023-05-14, 06:35
After noticing that the HyperbolaBSD project, for example, needs to utilize browsers that do not use Rust due to trademark issues,
Is that still a consideration? Didn't the Rust foundation backtrack on that?
https://developers.slashdot.org/story/2 ... mprovement

Or is this a "fool me once" type of situation for HyperbolaBSD?

Locked