[jsc-dev] Thought about Nix JavaScriptCore port

Yusuke SUZUKI utatane.tea at gmail.com
Tue Nov 10 23:04:59 PST 2015


Hello WebKittens,

JavaScriptCore use in non-OSX environment looks emerging[1].
In addition to that, sometimes, people would like to build JavaScriptCore
to see what is happning in JavaScriptCore development[2].
However, if you don't have an OSX machine, it is a little bit difficult.
One possible solution is GTK+ port, it is nice way to build JSC in Linux.
But it involves many dependencies (Mesa, glib etc.), that are not necessary
for JavaScriptCore and this is a barrier to join JSC development from non
OSX world.

While building whole WebKit requires many dependencies, JavaScriptCore does
not.
In Nix environment, JavaScriptCore only requires

1. ICU (for WTF unicode libraries and i18n in JSC)
2. LLVM (for FTL!)

That's all. Maintaining the brand new port is tough work.
But maintaining Nix port only for JSC is much much easier since WTF and JSC
are well written for Nix.
In fact, I can build JSC in Nix environment with very small effort,
essentially just adding CMakeLists.txt. Here is my initial attempt[2].

So, the proposal is, how about adding new port NixJSC?
I think it encourages OSS development for JSC.
Unfortunately I cannot attend Fall WebKit MTG, but this could become a nice
topic for the MTG :)

Here is the plan about the NixJSC port.

1. Add new port NixJSC. It provides JavaScriptCore build for Nix
environment. Not provide WebCore, WebKit, WebKit2, etc. It will just build
WTF, bmalloc, and JSC.
2. This port should be suitable for development. So I think aggressively
enabling features is nice for this port; like, enabling FTL!
3. I think this would become a nice playground for OSX guys to enable
features in Nix environment. GTK+ and EFL are somewhat production port. But
NixJSC is intended to be used for development.

If it is introduced, at least, I can support this port.

[1]:
https://github.com/facebook/react-native/blob/master/ReactAndroid/src/main/jni/third-party/jsc/Android.mk
[2]: https://twitter.com/BrendanEich/status/652108576836743168
[3]:
https://github.com/Constellation/webkit/commit/a2908e97939ea2881e15ba2d820c377f9bd09297
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.webkit.org/pipermail/jsc-dev/attachments/20151111/b6c28a3f/attachment.html>


More information about the jsc-dev mailing list