[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 webkit-dev
mailing list