[jsc-dev] [webkit-dev] Thought about Nix JavaScriptCore port

Konstantin Tokarev annulen at yandex.ru
Thu Dec 31 16:20:23 PST 2015



31.12.2015, 19:25, "Konstantin Tokarev" <annulen at yandex.ru>:
> 11.11.2015, 10:05, "Yusuke SUZUKI" <utatane.tea at gmail.com>:
>>  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
>>  ,
>
> Hi Yusuke,
>
> What is the status of this proposal?
> AFAICS there were no serious objections, quite the opposite, many people support your proposal (me too). However, no patches were landed yet.

Here is Nix patch updated to current master:

https://github.com/annulen/webkit/commit/2d181790b6945c4255b9df1a7bcf1433f3189ddc

(original Nix port used glib event loop, but I'd like to avoid this dependency, that's why I added mock implementations of WorkQueue, MainThread, and RunLoop)


-- 
Regards,
Konstantin


More information about the jsc-dev mailing list