On Wed, Nov 16, 2016 at 2:52 PM Emmanuele Bassi <eba...@gmail.com> wrote:

> Hi Philip(
>
> On Wednesday, 16 November 2016, <philip.chime...@gmail.com> wrote:
>
> Hi list,
>
> I'm on the verge of merging a branch [1] to GJS master, which will port
> the underlying JS engine to SpiderMonkey 31 (was 24). This will bring a
> bunch of new JS features (and I hope performance improvements as well) to
> gnome-shell and extension authors.
>
> With the new engine, gnome-shell code will be required to call gjs_init()
> before making any other calls to the GJS API, and call gjs_shutdown() after
> destroying your last GjsContext. It is planned for both of these methods to
> be new API in GJS 1.47.1.
>
>
> I'm always a bit sad when libraries require explicit initialisation and
> deinitialisation functions; they usually impose additional cognitive burden
> on developers.
>
> Since GJS is written as a C++ library with a C ABI, wouldn't be possible
> to use a static constructor to automatically call gjs_init() before the
> main() function is called? And, symmetrically, use a static destructor to
> shut it down after main() returns? Is it an ordering problem?
>

Yes, that worked, thanks for the great suggestion! There is no ordering
problem (unless someone felt the need to create a GjsContext in a different
static constructor...)

There will still possibly be changes required to gnome-shell, as detailed
here [1]; after any call to gjs_context_eval() or gjs_context_eval_file()
the caller will need to decide whether to behave any differently if the
evaluated JS code executed System.exit().

[1]
https://git.gnome.org/browse/gjs/diff/NEWS?h=mozjs31&id=3244c9a6ce99abb487e6d0dabcd68d98772e2bb1


Regards,
Philip
_______________________________________________
gnome-shell-list mailing list
gnome-shell-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gnome-shell-list

Reply via email to