GithubHelp home page GithubHelp logo

linuxmint / cjs Goto Github PK

View Code? Open in Web Editor NEW
68.0 21.0 28.0 6.24 MB

The Cinnamon Javascript interpreter

License: Other

Shell 2.14% C 2.20% C++ 53.39% JavaScript 39.28% DTrace 0.01% Python 1.27% Meson 1.62% Dockerfile 0.10%

cjs's Introduction

License License

CJS fork of GJS for Cinnamon. It is functionally identical, and is only to maintain stability with the Cinnamon release cycle, and between various distributions.

CJS is a JavaScript runtime built on Firefox's SpiderMonkey JavaScript engine and the GNOME platform libraries.

Usage

CJS includes a command-line interpreter, usually installed in /usr/bin/cjs. Type cjs to start it and test out your JavaScript statements interactively. Hit Ctrl+D to exit.

cjs filename.js runs a whole program. cjs -d filename.js does that and starts a debugger as well.

There are also facilities for generating code coverage reports. Type cjs --help for more information.


.

Upstream

Contributing

Contributors

For instructions on how to get started contributing to GJS, please read the contributing guide, https://gitlab.gnome.org/GNOME/gjs/blob/HEAD/CONTRIBUTING.md.

History

GJS probably started in August 2008 with this blog post and this experimental code. GJS in its current form was first developed in October 2008 at a company called litl, for their litl webbook product. It was soon adopted as the basis of GNOME Shell's UI code and extensions system and debuted as a fundamental component of GNOME 3.0.

In February 2013 at the GNOME Developer Experience Hackfest GJS was declared the 'first among equals' of languages for GNOME application development. That proved controversial for many, and was later abandoned.

At the time of writing (2018) GJS is used in many systems including Endless OS's framework for offline content and, as a forked version, Cinnamon.

Reading material

Documentation

JavaScript & SpiderMonkey

GNOME Contribution

License

Dual licensed under LGPL 2.0+ and MIT.

Thanks

The form of this README was inspired by Nadia Odunayo on the Greater Than Code podcast.

cjs's People

Contributors

3v1n0 avatar andyholmes avatar boondocksaints-debug avatar brownsr avatar cgwalters avatar claudioandre-br avatar clefebvre avatar cosimoc avatar cscott avatar danwinship avatar darkxst avatar djdeath avatar fanc999-1 avatar fantu avatar fmuellner avatar gcampax avatar halfline avatar havocp avatar jaszhix avatar jdahlin-litl avatar keruspe avatar leigh123linux avatar magcius avatar mtwebster avatar owtaylor avatar ptomato avatar recursive-rat4 avatar smspillaz avatar tko avatar zaspire avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cjs's Issues

(some) app indicator icons are duplicated on activity

I created an issue here: linuxmint/cinnamon#8426 that is about (some) appindicator icons getting duplicated on activity (diodon, skypeforlinux). In these cases, each time something is copied to the clipboard, a new diodon icon is added to the system tray!

The .xsession-errors produced are related to CJS so I thought it may be good to post here as well?

diodon (when copying something):
Cjs-Message: 12:49:22.089: JS LOG: [LookingGlass/info] Adding indicator: Diodon

skypeforlinux (when running as appindicator - see below - and changing "status"):
Cjs-Message: 12:56:51.864: JS LOG: [LookingGlass/info] Adding indicator: Skype1
Cjs-Message: 12:56:52.381: JS LOG: [LookingGlass/error] [IndicatorActor] Unable to lookup icon for Skype1_4-panel
Cjs-Message: 12:56:52.456: JS LOG: [LookingGlass/error] [IndicatorActor] Unable to lookup icon for Skype1_4-panel
Cjs-Message: 12:56:52.523: JS LOG: [LookingGlass/error] [IndicatorActor] Unable to lookup icon for Skype1_4-panel
Cjs-Message: 12:56:52.588: JS LOG: [LookingGlass/error] [IndicatorActor] Unable to lookup icon for Skype1_4-panel

#include <cstdarg> required

Hi all,

My platform NetBSD 9.2 AMD
This file cjs/jsapi-util.cpp requires #include to build successfully.

Thanks.

Very high entry threshold

I recently switched from Gnome to Cinnamon and decided to stay on it. For myself, first of all, I wanted to make several extensions, but.

1 - The documentation is incorrect even for the simplest example http://developer.linuxmint.com/reference/git/cinnamon-tutorials/write-applet.html

- Util.spawn ('xkill');
+ Util.spawn (['xkill']);

2 - In that documentation there are either references to gnome projects,
or the indication "look at the source" which is fragmented and generally not clear.

For example, I want to capture a window and display it in a widget as I come across http://developer.linuxmint.com/reference/git/cinnamon-tutorials/importer.html I understand that I need Clutter + St and that's it, I I don’t know what I can use from Clutter and I don’t know how, in principle, I can use St, how can I find out the cjs API Reference? And my only way is to either look for a ready-made extension that already does almost what I need and modify it, but if there isn’t one, I’ll have to manually look in the source for what calls are available to me.

Perhaps I misunderstand the very essence of creating extensions and bindings to libraries. But no, I don’t swear, I just want to make extensions for myself and the community (if they are useful), but for me now it looks like "go there I don’t know where, find that I don’t know what"

Just even basic things like https://github.com/linuxmint/cjs/tree/master/examples

Does not work :(

If I get information to / usr / share / cinnamon / js for more information, this is even more confusing.

Maybe somewhere to describe how to actually make serious extensions? Where to get information about available APIs.
Surely for some people, everything is simple and easy, but I'm a person who can easily navigate in complex C code, I’m just confused, I don’t understand how to do something without crutches and constant peeping into third-party extensions / applets /.

Personally, I wonder how people write extensions, Gnome-shell has the same problem. Torn documentation and word-of-mouth knowledge transfer in forums.

Thanks for reading. Good and peace ^. ^

I apologize for my English. I used a translator

I do not demand anything and do not swear, I just bring you information

I write here because it is here that everything connected with the Cinnamon shell begins

Port to mozjs38

gjs 1.17.90 has been ported from Spidermonkey 24 to 38 (packaged in Ubuntu as mozjs24 and mozjs38). Spidermonkey is the JavaScript engine from Firefox so 24 is very out of date. gjs 1.18 will be released with GNOME 3.24 next month.

Ubuntu would like to drop mozjs24 from the archives by 17.10. cjs and cinnamon are the only Ubuntu 17.04 packages except for edbrowse that still use mozjs24 in Ubuntu.

Future Plans

GNOME 3.26 has a goal of porting to mozjs52 (not yet released) or at least mozjs45. I expect GNOME 3.26 to be the GNOME version included in Ubuntu 18.04 LTS so it would be best if cjs would be ready for that. (GNOME 3.26 will be released in September 2017).

References

Switch to spidermonkey/mozjs 78

The Firefox ESR 52 is no longer maintained, as such it likely contains unfixed security vulnerabilities.

Firefox ESR 60 is the next ESR, which is currently maintained.

Could CJS be updated to support mozjs60?

Crash in gjs_typecheck_boxed - needsPostBarrier

https://bugzilla.gnome.org/show_bug.cgi?id=783935

Thread 1 "cinnamon" received signal SIGSEGV, Segmentation fault.

Thread 12 (Thread 0x7f67c169f700 (LWP 9116)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f67c8d436c0 in PR_WaitCondVar () from /usr/lib/x86_64-linux-gnu/libnspr4.so
#2  0x00007f67cec25eb1 in ?? () from /usr/lib/x86_64-linux-gnu/libjs.so.0
#3  0x00007f67c8d490a8 in ?? () from /usr/lib/x86_64-linux-gnu/libnspr4.so
#4  0x00007f67d70d46ba in start_thread (arg=0x7f67c169f700) at pthread_create.c:333
#5  0x00007f67d6e0a3dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 11 (Thread 0x7f67c1720700 (LWP 9115)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f67c8d436c0 in PR_WaitCondVar () from /usr/lib/x86_64-linux-gnu/libnspr4.so
#2  0x00007f67cec25eb1 in ?? () from /usr/lib/x86_64-linux-gnu/libjs.so.0
#3  0x00007f67c8d490a8 in ?? () from /usr/lib/x86_64-linux-gnu/libnspr4.so
#4  0x00007f67d70d46ba in start_thread (arg=0x7f67c1720700) at pthread_create.c:333
#5  0x00007f67d6e0a3dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 10 (Thread 0x7f67c17a1700 (LWP 9114)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f67c8d436c0 in PR_WaitCondVar () from /usr/lib/x86_64-linux-gnu/libnspr4.so
#2  0x00007f67cec25eb1 in ?? () from /usr/lib/x86_64-linux-gnu/libjs.so.0
#3  0x00007f67c8d490a8 in ?? () from /usr/lib/x86_64-linux-gnu/libnspr4.so
#4  0x00007f67d70d46ba in start_thread (arg=0x7f67c17a1700) at pthread_create.c:333
#5  0x00007f67d6e0a3dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 9 (Thread 0x7f67c1822700 (LWP 9113)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f67c8d436c0 in PR_WaitCondVar () from /usr/lib/x86_64-linux-gnu/libnspr4.so
#2  0x00007f67cec25eb1 in ?? () from /usr/lib/x86_64-linux-gnu/libjs.so.0
#3  0x00007f67c8d490a8 in ?? () from /usr/lib/x86_64-linux-gnu/libnspr4.so
#4  0x00007f67d70d46ba in start_thread (arg=0x7f67c1822700) at pthread_create.c:333
#5  0x00007f67d6e0a3dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 8 (Thread 0x7f67c18a3700 (LWP 9112)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f67c8d436c0 in PR_WaitCondVar () from /usr/lib/x86_64-linux-gnu/libnspr4.so
#2  0x00007f67cec25eb1 in ?? () from /usr/lib/x86_64-linux-gnu/libjs.so.0
#3  0x00007f67c8d490a8 in ?? () from /usr/lib/x86_64-linux-gnu/libnspr4.so
#4  0x00007f67d70d46ba in start_thread (arg=0x7f67c18a3700) at pthread_create.c:333
#5  0x00007f67d6e0a3dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 7 (Thread 0x7f67c1924700 (LWP 9111)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f67c8d436c0 in PR_WaitCondVar () from /usr/lib/x86_64-linux-gnu/libnspr4.so
#2  0x00007f67cec25eb1 in ?? () from /usr/lib/x86_64-linux-gnu/libjs.so.0
#3  0x00007f67c8d490a8 in ?? () from /usr/lib/x86_64-linux-gnu/libnspr4.so
#4  0x00007f67d70d46ba in start_thread (arg=0x7f67c1924700) at pthread_create.c:333
#5  0x00007f67d6e0a3dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 6 (Thread 0x7f67c19a5700 (LWP 9110)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f67c8d436c0 in PR_WaitCondVar () from /usr/lib/x86_64-linux-gnu/libnspr4.so
#2  0x00007f67cec25eb1 in ?? () from /usr/lib/x86_64-linux-gnu/libjs.so.0
#3  0x00007f67c8d490a8 in ?? () from /usr/lib/x86_64-linux-gnu/libnspr4.so
#4  0x00007f67d70d46ba in start_thread (arg=0x7f67c19a5700) at pthread_create.c:333
#5  0x00007f67d6e0a3dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 5 (Thread 0x7f67c1a26700 (LWP 9109)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f67c8d436c0 in PR_WaitCondVar () from /usr/lib/x86_64-linux-gnu/libnspr4.so
#2  0x00007f67cec25eb1 in ?? () from /usr/lib/x86_64-linux-gnu/libjs.so.0
#3  0x00007f67c8d490a8 in ?? () from /usr/lib/x86_64-linux-gnu/libnspr4.so
#4  0x00007f67d70d46ba in start_thread (arg=0x7f67c1a26700) at pthread_create.c:333
#5  0x00007f67d6e0a3dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 4 (Thread 0x7f67c2227700 (LWP 9108)):
#0  0x00007f67d6dfe70d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007f67d733438c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f67d733449c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f67c222f28d in ?? () from /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so
#4  0x00007f67d735abb5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f67d70d46ba in start_thread (arg=0x7f67c2227700) at pthread_create.c:333
#6  0x00007f67d6e0a3dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 3 (Thread 0x7f67c3ff9700 (LWP 9107)):
#0  0x00007f67d6dfe70d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007f67d733438c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f67d7334712 in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f67d79329d6 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#4  0x00007f67d735abb5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f67d70d46ba in start_thread (arg=0x7f67c3ff9700) at pthread_create.c:333
#6  0x00007f67d6e0a3dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 2 (Thread 0x7f67c47fa700 (LWP 9106)):
#0  0x00007f67d6dfe70d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007f67d733438c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f67d733449c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f67d73344d9 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f67d735abb5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f67d70d46ba in start_thread (arg=0x7f67c47fa700) at pthread_create.c:333
#6  0x00007f67d6e0a3dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 1 (Thread 0x7f67d8d2eac0 (LWP 9105)):
#0  js::GCMethods<JSObject*>::needsPostBarrier (v=0x7f6784e42780) at /usr/include/mozjs-38/js/RootingAPI.h:663
#1  JS::Heap<JSObject*>::set (newPtr=0x0, this=0x56001d3a7848) at /usr/include/mozjs-38/js/RootingAPI.h:296
#2  JS::Heap<JSObject*>::operator= (p=<optimised out>, this=0x56001d3a7848) at /usr/include/mozjs-38/js/RootingAPI.h:266
#3  GjsMaybeOwned<JSObject*>::reset (this=0x56001d3a7838) at ./cjs/jsapi-util-root.h:267
#4  closure_clear_idle (data=0x56001d3a7810) at gi/closure.cpp:131
#5  0x00007f67d733404a in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#6  0x00007f67d73343f0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#7  0x00007f67d7334712 in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#8  0x00007f67d8718988 in meta_run () from /usr/lib/x86_64-linux-gnu/libmuffin.so.0
#9  0x000056001ca31992 in ?? ()
#10 0x00007f67d6d23830 in __libc_start_main (main=0x56001ca31540, argc=2, argv=0x7fffd8dfef78, init=<optimised out>, fini=<optimised out>, rtld_fini=<optimised out>, stack_end=0x7fffd8dfef68) at ../csu/libc-start.c:291
#11 0x000056001ca31a89 in ?? ()

Getting a fix from upstream gjs

Hello, I've been getting a lot of crashes in cinnamon due to this bug: https://gitlab.gnome.org/GNOME/gjs/-/issues/297

Yesterday was particularly annoying:

> slak@slak-pc > ~ > coredumpctl
TIME                            PID  UID GID SIG     COREFILE EXE                       SIZE
Wed 2021-08-11 10:56:47 EEST 410678 1000 100 SIGTRAP present  /usr/bin/cinnamon        45.8M
Wed 2021-08-11 11:23:14 EEST 596662 1000 100 SIGTRAP present  /usr/bin/cinnamon        27.4M
Wed 2021-08-11 11:56:41 EEST 600573 1000 100 SIGTRAP present  /usr/bin/cinnamon        30.9M
Wed 2021-08-11 14:43:36 EEST 605634 1000 100 SIGTRAP present  /usr/bin/cinnamon        32.4M
Wed 2021-08-11 18:41:42 EEST 626851 1000 100 SIGTRAP present  /usr/bin/cinnamon        32.9M
Wed 2021-08-11 21:37:27 EEST 650178 1000 100 SIGTRAP present  /usr/bin/cinnamon        32.3M

It is already fixed in upstream here, more specifically in this commit, and it made it into 1.68.2.

I know it might be a while until all of that reaches cjs/cinnamon, which I see is currently based on 1.66. I've tried a rebase from gjs 1.68, cherry picking that merge request, cherry picking just the commit, but they all result in some ugly merge conflicts, I can't get it to build.

I'm either doing the wrong thing, or I'm not familiar enough with the internals to fix the conflicts correctly. So until another cjs/cinnamon release, is there a way I can build a local version that includes that series of commits?

Thanks.

Some encoding subtests fail on musl (Void Linux)

Some subtests of the "Encoding" test fail on musl on Void Linux. All tests pass on glibc. Here are the xbps-src (Void's build system of sorts) logs (I stripped out most xbps-src-specific parts):

Build and test logs
=> cjs-5.8.0_1: running do_configure ...
The Meson build system
Version: 1.1.0
Source dir: /builddir/cjs-5.8.0
Build dir: /builddir/cjs-5.8.0/build
Build type: native build
Project name: cjs
Project version: 5.8.0
C compiler for the host machine: cc (gcc 12.2.0 "cc (GCC) 12.2.0")
C linker for the host machine: cc ld.bfd 2.39
C++ compiler for the host machine: g++ (gcc 12.2.0 "g++ (GCC) 12.2.0")
C++ linker for the host machine: g++ ld.bfd 2.39
Host machine cpu family: x86_64
Host machine cpu: x86_64
Compiler for C++ supports arguments -fno-strict-aliasing: YES
Compiler for C++ supports arguments -Wno-variadic-macros: YES
Compiler for C++ supports arguments -Wno-missing-field-initializers: YES
Compiler for C++ supports arguments -Wno-dangling-pointer: YES
Compiler for C supports arguments -Wno-typedef-redefinition: NO
Compiler for C++ supports link arguments -Bsymbolic-functions: YES
Compiler for C supports arguments -fno-semantic-interposition: YES
Compiler for C++ supports arguments -fno-semantic-interposition: YES
Found pkg-config: /usr/bin/pkg-config (0.29.2)
Run-time dependency glib-2.0 found: YES 2.76.1
Run-time dependency gthread-2.0 found: YES 2.76.1
Run-time dependency gobject-2.0 found: YES 2.76.1
Run-time dependency gio-2.0 found: YES 2.76.1
Run-time dependency libffi found: YES 3.3
Run-time dependency gobject-introspection-1.0 found: YES 1.76.1
Run-time dependency mozjs-102 found: YES 102.8.0
Run-time dependency cairo found: YES 1.16.0
Run-time dependency cairo-gobject found: YES 1.16.0
Run-time dependency cairo-xlib found: YES 1.16.0
Dependency sysprof-capture-4 skipped: feature profiler disabled
Library readline found: YES
Checking if "64-bit atomics built-in" : links: YES
Checking if "SpiderMonkey is a non-debug build" with dependency mozjs-102 compiles: YES
Checking if "printf() supports %I alternative int syntax" compiles: YES
Program dtrace found: NO
Program dbus-run-session found: YES (/usr/bin/dbus-run-session)
Program glib-compile-schemas found: YES (/usr/bin/glib-compile-schemas)
Check usable header "readline/readline.h" : YES
Check usable header "sys/syscall.h" : YES
Check usable header "unistd.h" : YES
Check usable header "signal.h" : YES
Configuring config.h using configuration
Configuring gjs.stp using configuration
Found pkg-config: /usr/bin/pkg-config (0.29.2)
Program glib-compile-resources found: YES (/usr/bin/glib-compile-resources)
Compiler for C++ supports link arguments -Wl,--version-script,/builddir/cjs-5.8.0/libgjs.map: YES
Compiler for C++ supports link arguments -Wl,-exported_symbols_list,/builddir/cjs-5.8.0/libgjs.symbols: NO
Dependency gobject-introspection-1.0 found: YES 1.76.1 (cached)
Dependency gobject-introspection-1.0 found: YES 1.76.1 (cached)
Program g-ir-scanner found: YES (///usr/bin/g-ir-scanner)
Dependency gobject-introspection-1.0 found: YES 1.76.1 (cached)
Program g-ir-compiler found: YES (///usr/bin/g-ir-compiler)
Configuring testCommandLine.sh.test using configuration
Configuring testCommandLineModules.sh.test using configuration
Configuring testWarnings.sh.test using configuration
Program glib-compile-resources found: YES (/usr/bin/glib-compile-resources)
Program glib-compile-schemas found: YES (/usr/bin/glib-compile-schemas)
Configuring testself.test using configuration
Configuring testByteArray.test using configuration
Configuring testExceptions.test using configuration
Configuring testFormat.test using configuration
Configuring testFundamental.test using configuration
Configuring testGettext.test using configuration
Configuring testGIMarshalling.test using configuration
Configuring testGio.test using configuration
Configuring testGLib.test using configuration
Configuring testGObject.test using configuration
Configuring testGObjectClass.test using configuration
Configuring testGObjectInterface.test using configuration
Configuring testGObjectValue.test using configuration
Configuring testGTypeClass.test using configuration
Configuring testImporter.test using configuration
Configuring testImporter2.test using configuration
Configuring testIntrospection.test using configuration
Configuring testLang.test using configuration
Configuring testLegacyByteArray.test using configuration
Configuring testLegacyClass.test using configuration
Configuring testLegacyGObject.test using configuration
Configuring testMainloop.test using configuration
Configuring testNamespace.test using configuration
Configuring testPackage.test using configuration
Configuring testParamSpec.test using configuration
Configuring testPrint.test using configuration
Configuring testPromise.test using configuration
Configuring testRegress.test using configuration
Configuring testSignals.test using configuration
Configuring testSystem.test using configuration
Configuring testTweener.test using configuration
Configuring testCairo.test using configuration
Configuring testGtk3.test using configuration
Configuring testGObjectDestructionAccess.test using configuration
Configuring testLegacyGtk.test using configuration
Configuring testWarnLib.test using configuration
Run-time dependency gtk4 found: YES 4.10.4
Configuring testGDBus.test using configuration
Configuring testGtk4.test using configuration
Configuring testAsync.test using configuration
Configuring testConsole.test using configuration
Configuring testESModules.test using configuration
Configuring testAsyncMainloop.test using configuration
Configuring testEncoding.test using configuration
Configuring testGLibLogWriter.test using configuration
Configuring testGlobal.test using configuration
Configuring testTimers.test using configuration
Configuring testCairoModule.test using configuration
Program debugger-test.sh found: YES (/builddir/cjs-5.8.0/installed-tests/debugger-test.sh)
Configuring backtrace.test using configuration
Configuring breakpoint.test using configuration
Configuring continue.test using configuration
Configuring delete.test using configuration
Configuring detach.test using configuration
Configuring down-up.test using configuration
Configuring finish.test using configuration
Configuring frame.test using configuration
Configuring keys.test using configuration
Configuring lastvalues.test using configuration
Configuring list.test using configuration
Configuring next.test using configuration
Configuring print.test using configuration
Configuring quit.test using configuration
Configuring return.test using configuration
Configuring set.test using configuration
Configuring step.test using configuration
Configuring throw.test using configuration
Configuring throw-ignored.test using configuration
Configuring until.test using configuration
Program glib-compile-resources found: YES (/usr/bin/glib-compile-resources)
meson.build:708: WARNING: Your libc does not have the C.UTF-8 locale and no other
suitable UTF-8 fallback locale could be found. You can still build GJS, but
some tests will fail.
Build targets in project: 29
NOTICE: Future-deprecated features used:
 * 0.55.0: {'gnome.generate_gir argument --warn-error'}
 * 0.56.0: {'meson.build_root'}
 * 0.61.0: {'"gnome.generate_gir" keyword argument "install_dir_gir" value "False"'}
 * 0.62.0: {'pkgconfig.generate variable for builtin directories'}

cjs 5.8.0

  Directories
    prefix                : /usr
    bindir                : /usr/bin
    libdir                : /usr/lib64
    datadir               : /usr/share

  Dependencies
    libffi                : 3.3 (in /usr)
    GLib                  : 2.76.1 (in /usr)
    GObject introspection : 1.76.1 (in /usr)
    SpiderMonkey          : 102.8.0 (in /usr, release build)
    Readline              : (library)

  Build options
    Build type            : plain
    Installed tests       : NO
    -Bsymbolic-functions  : YES
    Skip DBus tests       : NO
    Skip GTK tests        : NO
    Extra debug logs      : NO
    Precompiled headers   : YES

  Optional features
    Cairo module          : YES
    Use readline for input: YES
    Profiler (Linux only) : NO
    Dtrace debugging      : NO
    Systemtap debugging   : NO

  User defined options
    auto_features         : auto
    bindir                : /usr/bin
    buildtype             : plain
    datadir               : /usr/share
    includedir            : /usr/include
    infodir               : /usr/share/info
    libdir                : /usr/lib64
    libexecdir            : /usr/libexec
    localedir             : /usr/share/locale
    localstatedir         : /var
    mandir                : /usr/share/man
    prefix                : /usr
    sbindir               : /usr/bin
    sharedstatedir        : /var/lib
    sysconfdir            : /etc
    wrap_mode             : nodownload
    b_lto                 : true
    b_ndebug              : true
    b_staticpic           : true
    installed_tests       : false
    profiler              : disabled
    skip_dbus_tests       : false
    skip_gtk_tests        : false

Found ninja-1.11.1 at /usr/bin/ninja
=> cjs-5.8.0_1: running pre-build hook: 02-script-wrapper ...
=> cjs-5.8.0_1: running do_build ...
ninja: Entering directory `build'
[1/123] Generating js-resources_h with a custom command
[2/123] Generating js-resources_c with a custom command
[3/123] Precompiling header ../cjs/gjs_pch.hh
[4/123] Precompiling header ../cjs/gjs_pch.hh
[5/123] Compiling C++ object libcjs-jsapi.a.p/cjs_jsapi-dynamic-class.cpp.o
[6/123] Compiling C++ object libcjs-jsapi.a.p/cjs_jsapi-util-error.cpp.o
[7/123] Compiling C++ object libcjs-jsapi.a.p/cjs_jsapi-util-string.cpp.o
[8/123] Compiling C++ object libcjs-jsapi.a.p/cjs_jsapi-util.cpp.o
[9/123] Compiling C++ object libcjs-jsapi.a.p/util_console.cpp.o
[10/123] Compiling C++ object libcjs-jsapi.a.p/util_log.cpp.o
[11/123] Compiling C++ object libcjs-jsapi.a.p/util_misc.cpp.o
[12/123] Linking static target libcjs-jsapi.a
[13/123] Compiling C++ object libgjs-internal.a.p/gi_arg.cpp.o
[14/123] Compiling C++ object libgjs-internal.a.p/gi_boxed.cpp.o
[15/123] Compiling C++ object libgjs-internal.a.p/gi_arg-cache.cpp.o
[16/123] Compiling C++ object libgjs-internal.a.p/gi_cwrapper.cpp.o
[17/123] Compiling C++ object libgjs-internal.a.p/gi_closure.cpp.o
[18/123] Compiling C++ object libgjs-internal.a.p/gi_foreign.cpp.o
[19/123] Compiling C++ object libgjs-internal.a.p/gi_enumeration.cpp.o
[20/123] Compiling C++ object libgjs-internal.a.p/gi_fundamental.cpp.o
[21/123] Compiling C++ object libgjs-internal.a.p/gi_function.cpp.o
[22/123] Compiling C++ object libgjs-internal.a.p/gi_gerror.cpp.o
[23/123] Compiling C++ object libgjs-internal.a.p/gi_gobject.cpp.o
[24/123] Compiling C++ object libgjs-internal.a.p/gi_gtype.cpp.o
[25/123] Compiling C++ object libgjs-internal.a.p/gi_interface.cpp.o
[26/123] Compiling C++ object libgjs-internal.a.p/gi_ns.cpp.o
[27/123] Compiling C++ object libgjs-internal.a.p/gi_param.cpp.o
[28/123] Compiling C++ object libgjs-internal.a.p/gi_private.cpp.o
[29/123] Compiling C++ object libgjs-internal.a.p/gi_object.cpp.o
[30/123] Compiling C++ object libgjs-internal.a.p/gi_toggle.cpp.o
[31/123] Compiling C++ object libgjs-internal.a.p/gi_repo.cpp.o
[32/123] Compiling C++ object libgjs-internal.a.p/gi_union.cpp.o
[33/123] Compiling C++ object libgjs-internal.a.p/gi_value.cpp.o
[34/123] Compiling C++ object libgjs-internal.a.p/cjs_atoms.cpp.o
[35/123] Compiling C++ object libgjs-internal.a.p/gi_wrapperutils.cpp.o
[36/123] Compiling C++ object libgjs-internal.a.p/cjs_byteArray.cpp.o
[37/123] Compiling C++ object libgjs-internal.a.p/cjs_coverage.cpp.o
[38/123] Compiling C++ object libgjs-internal.a.p/cjs_context.cpp.o
[39/123] Compiling C++ object libgjs-internal.a.p/cjs_debugger.cpp.o
[40/123] Compiling C++ object libgjs-internal.a.p/cjs_engine.cpp.o
[41/123] Compiling C++ object libgjs-internal.a.p/cjs_deprecation.cpp.o
[42/123] Compiling C++ object libgjs-internal.a.p/cjs_error-types.cpp.o
[43/123] Compiling C++ object libgjs-internal.a.p/cjs_global.cpp.o
[44/123] Compiling C++ object libgjs-internal.a.p/cjs_internal.cpp.o
[45/123] Compiling C++ object libgjs-internal.a.p/cjs_importer.cpp.o
[46/123] Compiling C++ object libgjs-internal.a.p/cjs_mainloop.cpp.o
[47/123] Compiling C++ object libgjs-internal.a.p/cjs_mem.cpp.o
[48/123] Compiling C++ object libgjs-internal.a.p/cjs_native.cpp.o
[49/123] Compiling C++ object libgjs-internal.a.p/cjs_objectbox.cpp.o
[50/123] Compiling C++ object libgjs-internal.a.p/cjs_module.cpp.o
[51/123] Compiling C++ object libgjs-internal.a.p/cjs_profiler.cpp.o
[52/123] Compiling C++ object libgjs-internal.a.p/cjs_promise.cpp.o
[53/123] Compiling C++ object libgjs-internal.a.p/cjs_text-encoding.cpp.o
[54/123] Compiling C++ object libgjs-internal.a.p/cjs_stack.cpp.o
[55/123] Compiling C++ object libgjs-internal.a.p/modules_console.cpp.o
[56/123] Compiling C++ object libgjs-internal.a.p/modules_print.cpp.o
[57/123] Compiling C++ object libgjs-internal.a.p/modules_modules.cpp.o
[58/123] Compiling C++ object libgjs-internal.a.p/modules_system.cpp.o
[59/123] Compiling C++ object libgjs-internal.a.p/modules_cairo-region.cpp.o
[60/123] Compiling C++ object libgjs-internal.a.p/modules_cairo-path.cpp.o
[61/123] Compiling C++ object libgjs-internal.a.p/modules_cairo-context.cpp.o
[62/123] Compiling C++ object libgjs-internal.a.p/modules_cairo-image-surface.cpp.o
[63/123] Compiling C++ object libgjs-internal.a.p/modules_cairo-surface.cpp.o
[64/123] Compiling C++ object libgjs-internal.a.p/modules_cairo-ps-surface.cpp.o
[65/123] Compiling C++ object libgjs-internal.a.p/modules_cairo-pdf-surface.cpp.o
[66/123] Compiling C++ object libgjs-internal.a.p/modules_cairo-svg-surface.cpp.o
[67/123] Compiling C++ object libgjs-internal.a.p/modules_cairo-pattern.cpp.o
[68/123] Compiling C++ object libgjs-internal.a.p/modules_cairo-gradient.cpp.o
[69/123] Compiling C++ object libgjs-internal.a.p/modules_cairo-linear-gradient.cpp.o
[70/123] Compiling C++ object libgjs-internal.a.p/modules_cairo-radial-gradient.cpp.o
[71/123] Compiling C++ object libgjs-internal.a.p/modules_cairo-surface-pattern.cpp.o
[72/123] Compiling C++ object libgjs-internal.a.p/modules_cairo.cpp.o
[73/123] Compiling C++ object libgjs-internal.a.p/modules_cairo-solid-pattern.cpp.o
[74/123] Linking static target libgjs-internal.a
[75/123] Compiling C object libcjs.so.0.0.0.p/libgjs-private_gjs-gdbus-wrapper.c.o
[76/123] Compiling C object libcjs.so.0.0.0.p/libgjs-private_gjs-util.c.o
[77/123] Compiling C object libcjs.so.0.0.0.p/meson-generated_.._js-resources.c.o
[78/123] Compiling C++ object cjs-console.p/cjs_console.cpp.o
[79/123] Generating installed-tests/js/jsunit-resources_c with a custom command
[80/123] Generating installed-tests/js/jsunit-resources_h with a custom command
[81/123] Compiling C object installed-tests/js/minijasmine.p/meson-generated_.._jsunit-resources.c.o
[82/123] Compiling C++ object installed-tests/js/minijasmine.p/.._minijasmine.cpp.o
[83/123] Compiling C object installed-tests/js/libregress.so.p/___usr_share_gobject-introspection-1.0_tests_regress.c.o
/usr/share/gobject-introspection-1.0/tests/regress.c: In function 'regress_test_array_static_in_int':
/usr/share/gobject-introspection-1.0/tests/regress.c:873:39: warning: unused parameter 'x' [-Wunused-parameter]
  873 | regress_test_array_static_in_int (int x[static 10])
      |                                   ~~~~^~~~~~~~~~~~
[84/123] Linking target installed-tests/js/libregress.so
[85/123] Linking target libcjs.so.0.0.0
In function 'make_unique',
    inlined from 'initialize' at ../gi/arg-cache.cpp:1600:53,
    inlined from 'init' at ../gi/function.cpp:1295:32:
/usr/include/c++/12.2/bits/unique_ptr.h:1080:30: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=]
 1080 |     { return unique_ptr<_Tp>(new remove_extent_t<_Tp>[__num]()); }
      |                              ^
/usr/include/c++/12.2/new: In member function 'init':
/usr/include/c++/12.2/new:128:26: note: in a call to allocation function 'operator new []' declared here
  128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc)
      |                          ^
[86/123] Generating installed-tests/js/Regress-1.0.gir with a custom command (wrapped by meson to set env)
[87/123] Generating symbol file libcjs.so.0.0.0.p/libcjs.so.0.0.0.symbols
[88/123] Linking target cjs-console
[89/123] Generating CjsPrivate-1.0.gir with a custom command (wrapped by meson to set env)
[90/123] Linking target installed-tests/js/minijasmine
[91/123] Generating CjsPrivate-1.0.typelib with a custom command
[92/123] Generating installed-tests/js/Regress-1.0.typelib with a custom command
[93/123] Compiling C object installed-tests/js/libgimarshallingtests.so.p/___usr_share_gobject-introspection-1.0_tests_gimarshallingtests.c.o
[94/123] Compiling C object installed-tests/js/libwarnlib.so.p/___usr_share_gobject-introspection-1.0_tests_warnlib.c.o
[95/123] Linking target installed-tests/js/libwarnlib.so
[96/123] Linking target installed-tests/js/libgimarshallingtests.so
[97/123] Generating installed-tests/js/WarnLib-1.0.gir with a custom command (wrapped by meson to set env)
../../../usr/share/gobject-introspection-1.0/tests/warnlib.h:33: Warning: WarnLib: symbol='do_moo': missing parameter name; undocumentable
../../../usr/share/gobject-introspection-1.0/tests/warnlib.h:33: Warning: WarnLib: symbol='do_moo': missing parameter name; undocumentable
../../../usr/share/gobject-introspection-1.0/tests/warnlib.h:39: Warning: WarnLib: symbol='warnlib_whatever_do_moo': missing parameter name; undocumentable
../../../usr/share/gobject-introspection-1.0/tests/warnlib.h:39: Warning: WarnLib: symbol='warnlib_whatever_do_moo': missing parameter name; undocumentable
../../../usr/share/gobject-introspection-1.0/tests/warnlib.h:41: Warning: WarnLib: symbol='warnlib_whatever_do_boo': missing parameter name; undocumentable
../../../usr/share/gobject-introspection-1.0/tests/warnlib.h:41: Warning: WarnLib: symbol='warnlib_whatever_do_boo': missing parameter name; undocumentable
../../../usr/share/gobject-introspection-1.0/tests/warnlib.c:42: Warning: WarnLib: warnlib_whatever_do_boo: unknown parameter 'y' in documentation comment, should be one of 'arg1', 'arg2'
../../../usr/share/gobject-introspection-1.0/tests/warnlib.c:41: Warning: WarnLib: warnlib_whatever_do_boo: unknown parameter 'x' in documentation comment, should be one of 'arg1', 'arg2'
<unknown>:: Warning: WarnLib: (ErrorQuarkFunction)unpaired_error_quark: warnlib_unpaired_error_quark: Couldn't find corresponding enumeration
[98/123] Generating installed-tests/js/WarnLib-1.0.typelib with a custom command
[99/123] Generating installed-tests/js/GIMarshallingTests-1.0.gir with a custom command (wrapped by meson to set env)
[100/123] Generating installed-tests/js/GIMarshallingTests-1.0.typelib with a custom command
[101/123] Generating installed-tests/js/gsettings-compile-installed-tests_js with a custom command
[102/123] Generating test/mock-js-resources_c with a custom command
[103/123] Generating test/mock-js-resources_h with a custom command
[104/123] Compiling C++ object installed-tests/js/libgjstesttools/libgjstesttools.so.p/gjs-test-tools.cpp.o
[105/123] Compiling C++ object test/libgjs-tests-common.a.p/gjs-test-utils.cpp.o
[106/123] Linking target installed-tests/js/libgjstesttools/libgjstesttools.so
[107/123] Generating symbol file installed-tests/js/libgjstesttools/libgjstesttools.so.p/libgjstesttools.so.symbols
[108/123] Compiling C++ object test/libgjs-tests-common.a.p/gjs-test-common.cpp.o
[109/123] Linking static target test/libgjs-tests-common.a
[110/123] Generating installed-tests/js/libgjstesttools/GjsTestTools-1.0.gir with a custom command (wrapped by meson to set env)
[111/123] Compiling C object test/gjs-tests.p/meson-generated_.._mock-js-resources.c.o
[112/123] Generating installed-tests/js/libgjstesttools/GjsTestTools-1.0.typelib with a custom command
[113/123] Compiling C++ object test/gjs-tests.p/gjs-test-coverage.cpp.o
[114/123] Compiling C++ object test/gjs-tests.p/gjs-tests.cpp.o
[115/123] Compiling C++ object test/gjs-tests.p/gjs-test-no-introspection-object.cpp.o
[116/123] Compiling C object test/gjs-tests-internal.p/meson-generated_.._.._js-resources.c.o
[117/123] Linking target test/gjs-tests
[118/123] Compiling C++ object test/gjs-tests-internal.p/gjs-tests-internal.cpp.o
[119/123] Compiling C++ object test/gjs-tests-internal.p/gjs-test-call-args.cpp.o
[120/123] Compiling C++ object test/gjs-tests-internal.p/gjs-test-rooting.cpp.o
[121/123] Compiling C++ object test/gjs-tests-internal.p/gjs-test-jsapi-utils.cpp.o
[122/123] Compiling C++ object test/gjs-tests-internal.p/gjs-test-toggle-queue.cpp.o
[123/123] Linking target test/gjs-tests-internal
In function 'make_unique',
    inlined from 'initialize' at ../gi/arg-cache.cpp:1600:53,
    inlined from 'init' at ../gi/function.cpp:1295:32:
/usr/include/c++/12.2/bits/unique_ptr.h:1080:30: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=]
 1080 |     { return unique_ptr<_Tp>(new remove_extent_t<_Tp>[__num]()); }
      |                              ^
/usr/include/c++/12.2/new: In member function 'init':
/usr/include/c++/12.2/new:128:26: note: in a call to allocation function 'operator new []' declared here
  128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc)
      |                          ^
=> cjs-5.8.0_1: running do_check ...
ninja: Entering directory `build'
[0/1] Running all tests.
 1/72 cjs:Scripts / Warnings               OK              0.45s   3 subtests passed
 2/72 cjs:JS / self                        OK              0.49s   6 subtests passed
 3/72 cjs:JS / ByteArray                   OK              0.18s   13 subtests passed
 4/72 cjs:Scripts / CommandLineModules     OK              0.68s   3 subtests passed
 5/72 cjs:JS / Format                      OK              0.20s   12 subtests passed
 6/72 cjs:JS / Exceptions                  OK              0.35s   26 subtests passed
 7/72 cjs:JS / Fundamental                 OK              0.22s   10 subtests passed
 8/72 cjs:JS / Gettext                     OK              0.16s   1 subtests passed
 9/72 cjs:JS / GLib                        OK              0.22s   28 subtests passed
10/72 cjs:JS / Gio                         OK              0.47s   37 subtests passed
11/72 cjs:JS / GObject                     OK              0.20s   22 subtests passed
12/72 cjs:JS / GObjectInterface            OK              0.25s   37 subtests passed
13/72 cjs:JS / GIMarshalling               OK              0.89s   396 subtests passed
14/72 cjs:JS / GTypeClass                  OK              0.15s   8 subtests passed
15/72 cjs:JS / GObjectValue                OK              0.41s   137 subtests passed
16/72 cjs:JS / Importer                    OK              0.28s   38 subtests passed
17/72 cjs:JS / Importer2                   OK              0.17s   4 subtests passed
18/72 cjs:JS / Lang                        OK              0.16s   9 subtests passed
19/72 cjs:JS / LegacyByteArray             OK              0.14s   14 subtests passed
20/72 cjs:JS / LegacyClass                 OK              0.19s   62 subtests passed
21/72 cjs:JS / GObjectClass                OK              1.51s   127 subtests passed
22/72 cjs:JS / LegacyGObject               OK              0.28s   60 subtests passed
23/72 cjs:JS / Introspection               OK              0.95s   17 subtests passed
24/72 cjs:JS / Mainloop                    OK              0.32s   8 subtests passed
25/72 cjs:JS / Namespace                   OK              0.15s   1 subtests passed
26/72 cjs:JS / ParamSpec                   OK              0.21s   28 subtests passed
27/72 cjs:JS / Print                       OK              0.23s   29 subtests passed
28/72 cjs:JS / Package                     OK              0.27s   20 subtests passed
29/72 cjs:JS / Promise                     OK              0.15s   3 subtests passed
30/72 cjs:JS / Signals                     OK              0.22s   42 subtests passed
31/72 cjs:JS / System                      OK              0.18s   13 subtests passed
32/72 cjs:JS / Tweener                     OK              0.23s   17 subtests passed
33/72 cjs:JS / Regress                     OK              0.62s   272 subtests passed
34/72 cjs:JS / Cairo                       OK              0.46s   43 subtests passed
35/72 cjs:JS / Gtk3                        OK              0.33s   26 subtests passed
36/72 cjs:JS / WarnLib                     OK              0.16s   2 subtests passed
37/72 cjs:JS / LegacyGtk                   OK              0.26s   7 subtests passed
38/72 cjs:dbus / GDBus                     OK              0.44s   63 subtests passed
39/72 cjs:JS / Async                       OK              0.10s   10 subtests passed
40/72 cjs:JS / Console                     OK              0.38s   64 subtests passed
41/72 cjs:Scripts / CommandLine            OK              5.47s   46 subtests passed
42/72 cjs:JS / ESModules                   OK              0.20s   23 subtests passed
43/72 cjs:JS / AsyncMainloop               OK              0.19s   1 subtests passed
▶ 44/72 Text Encoding TextDecoder Single Byte Encoding Converter IBM866 can be decoded. FAIL
45/72 cjs:JS / GLibLogWriter               OK              0.12s   4 subtests passed
▶ 44/72 Text Encoding TextDecoder Single Byte Encoding Converter macintosh can be decoded. FAIL
▶ 44/72 Text Encoding TextDecoder Single Byte Encoding Converter windows-874 can be decoded. FAIL
▶ 44/72 Text Encoding TextDecoder Single Byte Encoding Converter x-mac-cyrillic can be decoded. FAIL
44/72 cjs:JS / Encoding                    FAIL            0.25s   51/55 subtests passed
>>> G_FILENAME_ENCODING=latin1 GSETTINGS_SCHEMA_DIR=/builddir/cjs-5.8.0/build/installed-tests/js TOP_BUILDDIR=/builddir/cjs-5.8.0/build MALLOC_PERTURB_=50 ASAN_OPTIONS=intercept_tls_get_addr=0 ENABLE_GTK=yes GJS_DEBUG_TOPICS='' NO_AT_BRIDGE=1 GJS_USE_UNINSTALLED_FILES=1 TSAN_OPTIONS=history_size=5,force_seq_cst_atomics=1,suppressions=/builddir/cjs-5.8.0/installed-tests/extra/tsan.supp GSETTINGS_BACKEND=memory GJS_DEBUG_OUTPUT=stderr LSAN_OPTIONS=fast_unwind_on_malloc=0,exitcode=23,suppressions=/builddir/cjs-5.8.0/installed-tests/extra/lsan.supp DYLD_FALLBACK_LIBRARY_PATH=/builddir/cjs-5.8.0/build:/builddir/cjs-5.8.0/build/installed-tests/js:/builddir/cjs-5.8.0/build/installed-tests/js/libgjstesttools GJS_PATH='' LD_LIBRARY_PATH=/builddir/cjs-5.8.0/build/:/builddir/cjs-5.8.0/build:/builddir/cjs-5.8.0/build/installed-tests/js:/builddir/cjs-5.8.0/build/installed-tests/js/libgjstesttools G_DEBUG=fatal-warnings,fatal-criticals GI_TYPELIB_PATH=/builddir/cjs-5.8.0/build:/builddir/cjs-5.8.0/build/installed-tests/js:/builddir/cjs-5.8.0/build/installed-tests/js/libgjstesttools /builddir/cjs-5.8.0/build/installed-tests/js/minijasmine /builddir/cjs-5.8.0/build/../installed-tests/js/testEncoding.js -m

46/72 cjs:JS / Global                      OK              0.15s   10 subtests passed
47/72 cjs:JS / CairoModule                 OK              0.10s   3 subtests passed
48/72 cjs:Debugger / backtrace command     OK              0.15s   1 subtests passed
49/72 cjs:Debugger / breakpoint command    OK              0.08s   1 subtests passed
50/72 cjs:Debugger / continue command      OK              0.08s   1 subtests passed
51/72 cjs:Debugger / delete command        OK              0.08s   1 subtests passed
52/72 cjs:Debugger / detach command        OK              0.07s   1 subtests passed
53/72 cjs:Debugger / down-up command       OK              0.12s   1 subtests passed
54/72 cjs:Debugger / finish command        OK              0.07s   1 subtests passed
55/72 cjs:Debugger / frame command         OK              0.61s   1 subtests passed
56/72 cjs:Debugger / keys command          OK              0.27s   1 subtests passed
57/72 cjs:Debugger / lastvalues command    OK              0.08s   1 subtests passed
58/72 cjs:Debugger / list command          OK              0.09s   1 subtests passed
59/72 cjs:Debugger / next command          OK              0.09s   1 subtests passed
60/72 cjs:dbus / Gtk4                      OK              3.42s   21 subtests passed
61/72 cjs:Debugger / print command         OK              0.11s   1 subtests passed
62/72 cjs:Debugger / quit command          OK              0.09s   1 subtests passed
63/72 cjs:Debugger / return command        OK              0.10s   1 subtests passed
64/72 cjs:Debugger / set command           OK              0.10s   1 subtests passed
65/72 cjs:Debugger / step command          OK              0.10s   1 subtests passed
66/72 cjs:Debugger / throw command         OK              0.12s   1 subtests passed
67/72 cjs:Debugger / throw-ignored command OK              0.14s   1 subtests passed
68/72 cjs:Debugger / until command         OK              0.14s   1 subtests passed
69/72 cjs:JS / Timers                      OK              3.02s   16 subtests passed
70/72 cjs:JS / GObjectDestructionAccess    OK              5.27s   54 subtests passed
71/72 cjs:C / API tests                    OK              3.36s   68 subtests passed
72/72 cjs:C / Internal API tests           OK              3.94s   113 subtests passed

Summary of Failures:

44/72 cjs:JS / Encoding                    FAIL            0.25s   51/55 subtests passed

Ok:                 71
Expected Fail:      0
Fail:               1
Unexpected Pass:    0
Skipped:            0
Timeout:            0

Full log written to /builddir/cjs-5.8.0/build/meson-logs/testlog.txt
FAILED: meson-internal__test
/usr/bin/meson test --no-rebuild --print-errorlogs
ninja: build stopped: subcommand failed.
=> ERROR: cjs-5.8.0_1: do_check: '${make_check_pre} ${make_cmd} -C ${meson_builddir} ${makejobs} ${make_check_args} ${make_check_target}' exited with 1
=> ERROR:   in do_check() at common/build-style/meson.sh:141

Passing a decimal value to realAlignment parameter of PopupMenu.PopupMenu._init causes repeating error, freezes panels in CJS 3.2.0

I am maintaining an applet that subclasses the PopupMenu.PopupMenu object, and I have been testing its compatibility with Cinnamon 3.2 in a VM, and there seems to be a breaking change I haven't been able to find anyone cover - if you pass a decimal value (in this case 0.4) to the third parameter to its _init function, in xsession-errors, cjs reports an error that it is NaN.

(cinnamon:2093): Cjs-WARNING **: JS ERROR: Error: can't convert NaN to an integer
Chrome.prototype.updateRegions@/usr/share/cinnamon/js/ui/layout.js:706

If I pass 0 or 1, it is okay and the extension loads, but it messes up the horizontal alignment of the thumbnail popup.

The documentation specifies a range of 0-1, so I am wondering if this is an intentional change, and I should work around it (not sure how yet), or a bug?

Thanks.

JS WARNING reported by the use of CJS 3.4.x on Cinnamon 3.4.x

Hello, everybody.

The following is a warning logged into the .xsession-errors file when using CJS 3.4.1 on Cinnamon 3.4.1.

Cjs-Message: JS WARNING: [resource:///org/cinnamon/cjs/modules/tweener/tweener.js 547]: reference to undefined property properties[istr].isSpecialProperty

System: Kernel: 4.4.0-21-generic x86_64 (64 bit gcc: 5.3.1)
Desktop: Cinnamon 3.4.1 (packages from ppa:gwendal-lebihan-dev/cinnamon-nightly built on 2017-06-11)
Distro: Linux Mint 18.1 Serena
Cjs: 3.4.1 (built from source on 2017-06-06)

gi.Notify fails (timeout)

Try this in Looking Glass:
Warning: You must wait some time, if you can reproduce this. Maybe you should use a virtual machine.

>>> Notify = imports.gi.Notify
 [object GIRepesitoryNamespace]
>>> Notify.init("looking-glass") //the string can be any else
 true
>>> n = Notify.Notification({summary: "foo", body: "bar", "icon-name": "dialog-information"})
 [<some other object>]
>>> n.show()
 - after some time (~25s) -
 <exception Gio.IOErrorEnum: timeout>
 <execution time> is something like 25000

The screen will freeze for this period.

Why does the timeout occur? Is there another Notification API for this in cjs?

building cjs 3.8.0 failed

Tested in a fresh installation of Slackware Current

make[1]: Entering directory '/tmp/csb/cjs-3.8.0'
  CXX      cjs/libcjs_la-byteArray.lo
  CXX      cjs/libcjs_la-context.lo
  CXX      cjs/libcjs_la-coverage.lo
  CXX      cjs/libcjs_la-engine.lo
  CXX      cjs/libcjs_la-global.lo
  CXX      cjs/libcjs_la-importer.lo
  CXX      cjs/libcjs_la-jsapi-dynamic-class.lo
  CXX      cjs/libcjs_la-jsapi-private.lo
  CXX      cjs/libcjs_la-jsapi-util.lo
  CXX      cjs/libcjs_la-jsapi-util-error.lo
  CXX      cjs/libcjs_la-jsapi-util-string.lo
  CXX      cjs/libcjs_la-mem.lo
  CXX      cjs/libcjs_la-module.lo
  CXX      cjs/libcjs_la-native.lo
  CXX      cjs/libcjs_la-stack.lo
  CXX      modules/libconsole_la-console.lo
  CXX      modules/libsystem_la-system.lo
  GEN      modules-resources.c
  CXX      modules/libcairoNative_la-cairo-region.lo
  CXX      modules/libcairoNative_la-cairo-context.lo
  CXX      modules/libcairoNative_la-cairo-path.lo
  CXX      modules/libcairoNative_la-cairo-surface.lo
  CXX      modules/libcairoNative_la-cairo-image-surface.lo
  CXX      modules/libcairoNative_la-cairo-ps-surface.lo
  CXX      modules/libcairoNative_la-cairo-pdf-surface.lo
  CXX      modules/libcairoNative_la-cairo-svg-surface.lo
  CXX      modules/libcairoNative_la-cairo-pattern.lo
  CXX      modules/libcairoNative_la-cairo-gradient.lo
  CXX      modules/libcairoNative_la-cairo-linear-gradient.lo
  CXX      modules/libcairoNative_la-cairo-radial-gradient.lo
  CXX      modules/libcairoNative_la-cairo-surface-pattern.lo
  CXX      modules/libcairoNative_la-cairo-solid-pattern.lo
  CXX      modules/libcairoNative_la-cairo.lo
  CXX      cjs/console-console.o
  CXX      gi/libcjs_la-arg.lo
  CXX      gi/libcjs_la-boxed.lo
  CXX      gi/libcjs_la-closure.lo
  CXX      gi/libcjs_la-enumeration.lo
  CXX      gi/libcjs_la-foreign.lo
  CXX      gi/libcjs_la-fundamental.lo
  CXX      gi/libcjs_la-function.lo
  CXX      gi/libcjs_la-gerror.lo
  CXX      gi/libcjs_la-gtype.lo
  CXX      gi/libcjs_la-interface.lo
  CXX      gi/libcjs_la-ns.lo
  CXX      gi/libcjs_la-object.lo
  CXX      gi/libcjs_la-param.lo
  CXX      gi/libcjs_la-proxyutils.lo
  CXX      gi/libcjs_la-repo.lo
  CXX      gi/libcjs_la-toggle.lo
  CXX      gi/libcjs_la-union.lo
  CXX      gi/libcjs_la-value.lo
  CXX      modules/libcjs_la-modules.lo
  CXX      util/libcjs_la-error.lo
  CXX      util/libcjs_la-glib.lo
  CXX      util/libcjs_la-hash-x32.lo
  CXX      util/libcjs_la-log.lo
  CXX      util/libcjs_la-misc.lo
  CXX      libgjs-private/libcjs_la-gjs-gdbus-wrapper.lo
  CXX      libgjs-private/libcjs_la-gjs-util.lo
  CC       libgjs-private/libcjs_la-gjs-gtk-util.lo
  CXXLD    libconsole.la
  CXXLD    libsystem.la
  CC       libmodules_resources_la-modules-resources.lo
  CXXLD    libcairoNative.la
  CC       installed-tests/libregress_la-regress.lo
  CC       installed-tests/libwarnlib_la-warnlib.lo
  CC       installed-tests/libgimarshallingtests_la-gimarshallingtests.lo
  CCLD     libmodules_resources.la
  CCLD     libregress.la
  CCLD     libwarnlib.la
  CXXLD    libcjs.la
  GISCAN   Regress-1.0.gir
  GISCAN   WarnLib-1.0.gir
  CCLD     libgimarshallingtests.la
  GISCAN   CjsPrivate-1.0.gir
  CXXLD    cjs-console
  GICOMP   Regress-1.0.gir
  GICOMP   WarnLib-1.0.gir
  GISCAN   GIMarshallingTests-1.0.gir
  GICOMP   GIMarshallingTests-1.0.gir
Command '[u'/tmp/csb/cjs-3.8.0/tmp-introspectPPQcP9/CjsPrivate-1.0', u'--introspect-dump=/tmp/csb/cjs-3.8.0/tmp-introspectPPQcP9/functions.txt,/tmp/csb/cjs-3.8.0/tmp-introspectPPQcP9/dump.xml']' returned non-zero exit status -11
make[1]: *** [/usr/share/gobject-introspection-1.0/Makefile.introspection:160: CjsPrivate-1.0.gir] Error 1
make[1]: Leaving directory '/tmp/csb/cjs-3.8.0'
make: *** [Makefile:1471: all] Error 2

GLib.get_user_special_dir always returns ~/Desktop

According to GLib documentation, GLib.get_user_special_dir is to be used to get Documents, Video or Picture home folder. However it seems that it always returns /home/<Username>/Desktop

Step to reproduce :

  • Open cinnamon looking glass
  • Type GLib.get_user_special_dir(GLib.UserDirectory.G_USER_DIRECTORY_DOCUMENTS)
  • Expected output : ~/Documents
  • Actual output : ~/Desktop
    (also test inside applets, same result)

Image proof https://i.imgur.com/b9xgcqb.png (nb: bureau is french for Desktop)

m4 warnings

When I compile from cjs from source I see these warnings:

libtoolize: Consider adding AC_CONFIG_MACRO_DIR([m4])' to configure.ac and libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree. libtoolize: Consider adding-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
configure.ac:26: installing './compile'
configure.ac:34: installing './config.guess'
configure.ac:34: installing './config.sub'
configure.ac:11: installing './install-sh'
configure.ac:11: installing './missing'
Makefile-test.am:219: warning: clean-local was already defined in condition TRUE, which includes condition ENABLE_COVERAGE ...
Makefile.am:210: 'Makefile-test.am' included from here
Makefile-test.am:166: ... 'clean-local' previously defined here
Makefile.am:210: 'Makefile-test.am' included from here
Makefile-test.am:221: warning: .PHONY was already defined in condition TRUE, which includes condition ENABLE_COVERAGE ...
Makefile.am:210: 'Makefile-test.am' included from here
Makefile-test.am:159: ... '.PHONY' previously defined here
Makefile.am:210: 'Makefile-test.am' included from here
Makefile-test.am:227: warning: .PHONY was already defined in condition TRUE, which includes condition !ENABLE_COVERAGE ...
Makefile.am:210: 'Makefile-test.am' included from here
Makefile-test.am:159: ... '.PHONY' previously defined here
Makefile.am:210: 'Makefile-test.am' included from here
Makefile.am:232: warning: shell echo $(VERSION: non-POSIX variable name
Makefile.am:232: (probably a GNU make extension)
Makefile.am: installing './depcomp'

Roelof

Port cjs to mozjs 115

Please consider porting to mozjs 115 which is used by the current Firefox ESR release.

Port cjs to mozjs60

gjs 1.54 was released this week as part of GNOME 3.30. It switches to mozjs60 since Firefox 52 ESR is no longer supported by Mozilla.

You may find Debian bug 906016 interesting with its list of blockers.

mozjs60 is currently in the Debian NEW queue.

I think the Ubuntu Desktop Team is interested in eventually porting GNOME Shell in Ubuntu 18.04 LTS to mozjs60 but no one is working on that yet.

js/GIMarshalling build failure on HEAD

Running with dbus: gtester --verbose gjs-tests jsunit with stderr to test_user_data/logs/stderr.log
TEST: gjs-tests... (pid=8530)
  /gjs/context/construct/destroy:                                      OK
  /gjs/context/construct/eval:                                         OK
  /gjs/jsapi/util/array:                                               OK
  /gjs/jsapi/util/error/throw:                                         OK
  /gjs/jsapi/util/string/js/string/utf8:                               OK
  /gjs/jsutil/strip_shebang/no_shebang:                                OK
  /gjs/jsutil/strip_shebang/have_shebang:                              OK
  /gjs/jsutil/strip_shebang/only_shebang:                              OK
  /gjs/stack/dump:                                                     OK
  /gjs/coverage/file_duplicated_into_output_path:                      OK
  /gjs/coverage/file_duplicated_full_resource_path:                    OK
  /gjs/coverage/contents_preserved_accumulate_mode:                    OK
  /gjs/coverage/new_contents_appended_accumulate_mode:                 OK
  /gjs/coverage/expected_source_file_name_written_to_coverage_data:    OK
  /gjs/coverage/entry_not_written_for_nonexistent_file:                OK
  /gjs/coverage/single_branch_coverage_written_to_coverage_data:       OK
  /gjs/coverage/multiple_branch_coverage_written_to_coverage_data:     OK
  /gjs/coverage/branches_for_multiple_case_statements_fallthrough:     OK
  /gjs/coverage/not_hit_branch_point_written_to_coverage_data:         OK
  /gjs/coverage/function_names_written_to_coverage_data:               OK
  /gjs/coverage/function_hit_counts_written_to_coverage_data:          OK
  /gjs/coverage/big_function_hit_counts_written_to_coverage_data:      OK
  /gjs/coverage/little_function_hit_counts_written_to_coverage_data:   OK
  /gjs/coverage/total_function_coverage_written_to_coverage_data:      OK
  /gjs/coverage/single_line_hit_written_to_coverage_data:              OK
  /gjs/coverage/full_line_tally_written_to_coverage_data:              OK
  /gjs/coverage/no_hits_for_unexecuted_file:                           OK
  /gjs/coverage/end_of_record_section_written_to_coverage_data:        OK
  /gjs/coverage/multiple_source_file_records_written_to_coverage_data: OK
  /gjs/coverage/correct_line_coverage_data_written_for_both_sections:  OK
  /util/glib/strv/concat/null:                                         OK
  /util/glib/strv/concat/pointers:                                     OK
PASS: gjs-tests
TEST: jsunit... (pid=8553)
  /js/0010basic:                                                       OK
  /js/0020importer:                                                    OK
  /js/0030basicBoxed:                                                  OK
  /js/0040mainloop:                                                    OK
  /js/ByteArray:                                                       OK
  /js/Cairo:                                                           OK
  /js/Class:                                                           OK
  /js/Coverage:                                                        OK
  /js/EverythingBasic:                                                 OK
  /js/EverythingEncapsulated:                                          OK
  /js/Format:                                                          OK
  /js/Fundamental:                                                     OK
  /js/GDBus:                                                           OK
  /js/GIMarshalling:                                                   FAIL
GTester: last random seed: R02S1a224300b7e6d6ce13af4c759feb9c03
killing message bus 8524
killing message bus 8527
./test/run-with-dbus: script "gtester" failed

Is anyone else encountering this? This is built in a trusty pbuilder instance, so it should be close to identical to official build habits.

Failing tests

On cjs 5.4.1, 4 of the tests are failing because of a TIMEOUT:

63/66 cjs:Scripts+thread-safe / CommandLine            TIMEOUT        30.04s   killed by signal 15 SIGTERM
64/66 cjs:JS+thread-safe / Introspection               TIMEOUT        30.02s   killed by signal 15 SIGTERM
65/66 cjs:C+thread-safe / Internal API tests           TIMEOUT        30.01s   killed by signal 15 SIGTERM
66/66 cjs:C / API tests                                TIMEOUT        60.02s   killed by signal 15 SIGTERM

I am building this on Artix Linux. Fails on both our build server and on my computer.

Applet - Desklet configure option not working

When right clicking on desklet. It shows option about, configure, remove. About and remove working but after recent update configure option not working.

~/.xsession-erros

Cjs-Message: 10:34:33.756: JS LOG: The property opacity doesn't seem to be a normal object property of [object Object delegate for 0x556cf0c627b0 StBoxLayout.info-osd workspace-osd:last-child ("Workspace 2")] or a registered special property
Cjs-Message: 10:34:35.686: JS LOG: The property opacity doesn't seem to be a normal object property of [object Object delegate for 0x556cf0c62b90 StBoxLayout.info-osd workspace-osd:last-child ("Workspace 1")] or a registered special property
Cinnamon warning: Log level 128: posix_spawn avoided (fd close requested) 
Cinnamon warning: Log level 128: posix_spawn avoided (fd close requested) 
Cinnamon warning: Log level 128: posix_spawn avoided (fd close requested) 
Cinnamon warning: Log level 128: posix_spawn avoided (fd close requested) 
Cinnamon warning: Log level 128: posix_spawn avoided (fd close requested) 
Cinnamon warning: Received a NET_CURRENT_DESKTOP message from a broken (outdated) client who sent a 0 timestamp
Cjs-Message: 10:34:58.368: JS LOG: The property opacity doesn't seem to be a normal object property of [object Object delegate for 0x556cf0c62f70 StBoxLayout.info-osd workspace-osd:last-child ("Workspace 2")] or a registered special property```

why not check if mozjs is compiled with the right parameters

If mozjs185 is compiled without --enable-threadsafe --use-system-nspr the build is failing with this :

uilding libcjs_la-byteArray.lo
CC libcjs_la-byteArray.lo
cjs/byteArray.c: In function 'gjs_byte_array_constructor':
cjs/byteArray.c:467:5: warning: passing argument 1 of 'JS_GetClass' from incompatible pointer type [enabled by default]
/nix/store/shccnsykqkyiampwica54srm942g70kf-spidermonkey-185-1.0.0/include/js/jsapi.h:2122:1: note: expected 'struct JSObject *' but argument is of type 'struct JSContext *'
cjs/byteArray.c:467:5: error: too many arguments to function 'JS_GetClass'
/nix/store/shccnsykqkyiampwica54srm942g70kf-spidermonkey-185-1.0.0/include/js/jsapi.h:2122:1: note: declared here
cjs/byteArray.c:468:5: warning: passing argument 1 of 'JS_GetClass' from incompatible pointer type [enabled by default]
/nix/store/shccnsykqkyiampwica54srm942g70kf-spidermonkey-185-1.0.0/include/js/jsapi.h:2122:1: note: expected 'struct JSObject *' but argument is of type 'struct JSContext *'
cjs/byteArray.c:468:5: error: too many arguments to function 'JS_GetClass'
/nix/store/shccnsykqkyiampwica54srm942g70kf-spidermonkey-185-1.0.0/include/js/jsapi.h:2122:1: note: declared here

Why not add a check for this at configure time so inexperienced users see a proper error message instead of a make error.

Roelof

cjs-5.6.1 fails to build with clang >=15 on gentoo linux (and elsewhere)

compiling cjs-5.6.1 with clang >=15 breaks the build and exits with an error like:
"/usr/include/c++/v1/__random/uniform_int_distribution.h:162:5: error: static assertion failed due to requirement '__libcpp_random_is_valid_inttype<char32_t>::value': IntType must be a supported integer type static_assert(__libcpp_random_is_valid_inttype<_IntType>::value, "IntType must be a supported integer type");"
the patch found here fixes the issue and the build goes through.
The issue is mentioned on the gjs gitlab page

Add compatibility for commonjs

I am wanting to use Lodash with my applet, but I am finding it difficult since the CJS environment doesn't have a browser or node environment. This makes it difficult to develop any Cinnamon extensions with a modern toolchain.

I could probably make a version of Lodash CJS compatible by taking it out of its IIFE among other changes, but in general I think that's too tedious. I'm not sure if this project intends to diverge from GJS too much, but I think it would give the Cinnamon ecosystem a unique benefit.

How to test js files?

I would like to write unit tests for the radio applet I am maintaining which I find very difficult as it is not possible to use standard testing libraries due to the different runtime environment. I have seen that there are some tests for js files in this repo but I don't understand how to use them. I am even not sure if it is even possible to apply this tests to an applet.

Any help in this regard is much appreciated.

Better Exception handling

I don't really know how cjs / gjs works, so this could be total wrong.
The fact is: unless I use a try - catch statement a exception can break whole cinnamon. I think it is really unnecessary and kind of annoying to always write

try {
    ...
catch(e){
    global.logError(e);
}

I mean, what should I else use instead of using global.logError?

Short Conclusion

I want that every exception is logged without needing a try-catch statement; for minor Exceptions maybe only a warning.

autogen fail in ver4.0

Makefile-test.am:263: error: CODE_COVERAGE_ENABLED does not appear in AM_CONDITIONAL
Makefile.am:158: 'Makefile-test.am' included from here
Makefile.am: installing './depcomp'
autoreconf: automake failed with exit status: 1

then I remove the CODE_COVERAGE_ENABLED from Makefile-test.am:263
./configure: line 16993: AX_COMPILER_FLAGS: command not found
./configure: line 16995: AX_CODE_COVERAGE: command not found
./configure: line 16996: syntax error near unexpected token -lgcov,,' ./configure: line 16996: AX_CHECK_LINK_FLAG(-lgcov,,'

autogen fail in ver4.0 of ubuntu/archlinux latest (even Linuxmint 19.1 failed)

error building for ubuntu focal on launchpad

As Ubuntu does not always provide the latest versions of Cinnamon, I build them for myself on Launchpad.
But the recent revisions of cinnamon prevents the build due to missing dependency debhelper-compat (= 13) (check log).
Is it possible to use debhelper-compat (= 12)?

Crash in gjs_define_private_gi_stuff

Hi,

I've experienced a crash in cinnamon process yesterday and here's some of the data about it.

Versions:

cjs 3.6.1
Cinnamon 3.6.7

Crash info:

[28363.790350] cinnamon[4089]: segfault at 7f4d39dfffe8 ip 00007f4d979b1735 sp 00007ffe4ae0f080 error 4 in libcjs.so.0.0.0[7f4d9797b000+c1000]

$ addr2line -e /usr/lib/libcjs.so.0.0.0 36735 -fCi
gjs_define_private_gi_stuff
??:?

Stack trace:

systemd-coredump[18560]: Process 4089 (cinnamon) of user 1000 dumped core.
                                                     
Stack trace of thread 4089:
#0  0x00007f4d979b1735 n/a (libcjs.so.0)
#1  0x00007f4d979b431d n/a (libcjs.so.0)
#2  0x00007f4d8fbcd6f3 n/a (libmozjs-38.so)
#3  0x00007f4d8fc28834 n/a (libmozjs-38.so)
#4  0x00007f4d8fbcea09 n/a (libmozjs-38.so)
#5  0x00007f4d8fbe5436 n/a (libmozjs-38.so)
#6  0x00007f4d8fbe5b78 n/a (libmozjs-38.so)
#7  0x00007f4d8fbe7d34 n/a (libmozjs-38.so)
#8  0x00007f4d8fbe8709 n/a (libmozjs-38.so)
#9  0x00007f4d8fbe8955 n/a (libmozjs-38.so)
#10 0x00007f4d979cc05a gjs_schedule_gc_if_needed (libcjs.so.0)
#11 0x00007f4d979cc0c7 gjs_call_function_value (libcjs.so.0)
#12 0x00007f4d979a3479 gjs_closure_invoke (libcjs.so.0)
#13 0x00007f4d979bdd00 n/a (libcjs.so.0)
#14 0x00007f4d985566f5 g_closure_invoke (libgobject-2.0.so.0)
#15 0x00007f4d98568c2e n/a (libgobject-2.0.so.0)
#16 0x00007f4d98284cb3 n/a (libglib-2.0.so.0)
#17 0x00007f4d982860be g_main_context_dispatch (libglib-2.0.so.0)
#18 0x00007f4d98287f69 n/a (libglib-2.0.so.0)
#19 0x00007f4d98288f42 g_main_loop_run (libglib-2.0.so.0)
#20 0x00007f4d996867da meta_run (libmuffin.so.0)
#21 0x0000558da79dd740 n/a (cinnamon)
#22 0x00007f4d97c65f4a __libc_start_main (libc.so.6)
#23 0x0000558da79dd83a n/a (cinnamon)

Stack trace of thread 4147:
#0  0x00007f4d9800a38d pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1  0x00007f4d89de3e59 PR_WaitCondVar (libnspr4.so)
#2  0x00007f4d8f8b0292 n/a (libmozjs-38.so)
#3  0x00007f4d89de9b23 n/a (libnspr4.so)
#4  0x00007f4d9800408a start_thread (libpthread.so.0)
#5  0x00007f4d97d3b42f __clone (libc.so.6)

Stack trace of thread 4090:
#0  0x00007f4d97d30f2b __poll (libc.so.6)
#1  0x00007f4d98287ed3 n/a (libglib-2.0.so.0)
#2  0x00007f4d98287fae g_main_context_iteration (libglib-2.0.so.0)
#3  0x00007f4d98288002 n/a (libglib-2.0.so.0)
#4  0x00007f4d9827c1eb n/a (libglib-2.0.so.0)
#5  0x00007f4d9800408a start_thread (libpthread.so.0)
#6  0x00007f4d97d3b42f __clone (libc.so.6)

Stack trace of thread 4150:
#0  0x00007f4d9800a38d pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1  0x00007f4d89de3e59 PR_WaitCondVar (libnspr4.so)
#2  0x00007f4d8f8b0292 n/a (libmozjs-38.so)
#3  0x00007f4d89de9b23 n/a (libnspr4.so)
#4  0x00007f4d9800408a start_thread (libpthread.so.0)
#5  0x00007f4d97d3b42f __clone (libc.so.6)
                                                     
Stack trace of thread 4149:
#0  0x00007f4d9800a38d pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1  0x00007f4d89de3e59 PR_WaitCondVar (libnspr4.so)
#2  0x00007f4d8f8b0292 n/a (libmozjs-38.so)
#3  0x00007f4d89de9b23 n/a (libnspr4.so)
#4  0x00007f4d9800408a start_thread (libpthread.so.0)
#5  0x00007f4d97d3b42f __clone (libc.so.6)

Stack trace of thread 4148:
#0  0x00007f4d9800a38d pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1  0x00007f4d89de3e59 PR_WaitCondVar (libnspr4.so)
#2  0x00007f4d8f8b0292 n/a (libmozjs-38.so)
#3  0x00007f4d89de9b23 n/a (libnspr4.so)
#4  0x00007f4d9800408a start_thread (libpthread.so.0)
#5  0x00007f4d97d3b42f __clone (libc.so.6)

Stack trace of thread 4091:
#0  0x00007f4d97d30f2b __poll (libc.so.6)
#1  0x00007f4d98287ed3 n/a (libglib-2.0.so.0)
#2  0x00007f4d98288f42 g_main_loop_run (libglib-2.0.so.0)
#3  0x00007f4d987f3208 n/a (libgio-2.0.so.0)
#4  0x00007f4d9827c1eb n/a (libglib-2.0.so.0)
#5  0x00007f4d9800408a start_thread (libpthread.so.0)
#6  0x00007f4d97d3b42f __clone (libc.so.6)

Stack trace of thread 4146:
#0  0x00007f4d9800a38d pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1  0x00007f4d89de3e59 PR_WaitCondVar (libnspr4.so)
#2  0x00007f4d8f8b0292 n/a (libmozjs-38.so)
#3  0x00007f4d89de9b23 n/a (libnspr4.so)
#4  0x00007f4d9800408a start_thread (libpthread.so.0)
#5  0x00007f4d97d3b42f __clone (libc.so.6)

Stack trace of thread 4145:
#0  0x00007f4d9800a38d pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1  0x00007f4d89de3e59 PR_WaitCondVar (libnspr4.so)
#2  0x00007f4d8f8b0292 n/a (libmozjs-38.so)
#3  0x00007f4d89de9b23 n/a (libnspr4.so)
#4  0x00007f4d9800408a start_thread (libpthread.so.0)
#5  0x00007f4d97d3b42f __clone (libc.so.6)

Stack trace of thread 4152:
#0  0x00007f4d9800a38d pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1  0x00007f4d89de3e59 PR_WaitCondVar (libnspr4.so)
#2  0x00007f4d8f8b0292 n/a (libmozjs-38.so)
#3  0x00007f4d89de9b23 n/a (libnspr4.so)
#4  0x00007f4d9800408a start_thread (libpthread.so.0)
#5  0x00007f4d97d3b42f __clone (libc.so.6)

Stack trace of thread 4151:
#0  0x00007f4d9800a38d pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0)
#1  0x00007f4d89de3e59 PR_WaitCondVar (libnspr4.so)
#2  0x00007f4d8f8b0292 n/a (libmozjs-38.so)
#3  0x00007f4d89de9b23 n/a (libnspr4.so)
#4  0x00007f4d9800408a start_thread (libpthread.so.0)
#5  0x00007f4d97d3b42f __clone (libc.so.6)

Stack trace of thread 4144:
#0  0x00007f4d97d30f2b __poll (libc.so.6)
#1  0x00007f4d98287ed3 n/a (libglib-2.0.so.0)
#2  0x00007f4d98287fae g_main_context_iteration (libglib-2.0.so.0)
#3  0x00007f4d8466bb0e n/a (libdconfsettings.so)
#4  0x00007f4d9827c1eb n/a (libglib-2.0.so.0)
#5  0x00007f4d9800408a start_thread (libpthread.so.0)
#6  0x00007f4d97d3b42f __clone (libc.so.6)
-- Subject: Process 4089 (cinnamon) dumped core

segfault libcjs.so.0.0.0

Cinnamon running in fallback mode after apt upgrade, segfault in dmesg.

shell$ dmesg
[   15.854776] cinnamon[2391]: segfault at 7f84a2e550d0 ip 00007f84a2e53404 sp 00007ffd443647a8 error 7 in libcjs.so.0.0.0[7f84a2e2b000+8c000]
[   15.854781] Code: 2f f2 fd ff f3 0f 1e fa 48 89 c7 e9 33 f2 fd ff 66 0f 1f 44 00 00 f3 0f 1e fa 83 07 01 c3 0f 1f 84 00 00 00 00 00 f3 0f 1e fa <83> 2f 01 75 67 55 48 89 fd 48 8b 7f 10 48 85 ff 74 0d 48 c7 45 10
shell$ 00007f84a2e53404 − 7f84a2e2b000 = 28404
shell$ addr2line -e /usr/lib/x86_64-linux-gnu/libcjs.so.0.0.0 28404 -fCi
??
??:0
shell$ apt list --installed | grep cjs
cjs/ulyssa,now 4.8.2+ulyssa amd64 [installed]
libcjs-dbg/ulyssa,now 4.8.2+ulyssa amd64 [installed]
libcjs0f/ulyssa,now 4.8.2+ulyssa amd64 [installed]
shell$ inxi -Fxz
System:    Kernel: 5.8.0-25-generic x86_64 bits: 64 compiler: N/A Desktop: Cinnamon 4.8.6 Distro: Linux Mint 20.1 Ulyssa 
           base: Ubuntu 20.04 focal 
Machine:   Type: Desktop Mobo: ASRock model: X370 Pro4 serial: <filter> UEFI [Legacy]: American Megatrends v: P6.40 
           date: 08/31/2020 
CPU:       Topology: Quad Core model: AMD Ryzen 3 3200G with Radeon Vega Graphics bits: 64 type: MCP arch: Zen+ rev: 1 
           L2 cache: 2048 KiB 
           flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm bogomips: 28746 
           Speed: 1397 MHz min/max: 1400/3600 MHz Core speeds (MHz): 1: 1417 2: 1318 3: 1323 4: 1797 
Graphics:  Device-1: Advanced Micro Devices [AMD/ATI] Picasso driver: amdgpu v: 5.9.15 bus ID: 0c:00.0 
           Display: x11 server: X.Org 1.20.9 driver: amdgpu,ati unloaded: fbdev,modesetting,vesa resolution: 1920x1080~60Hz 
           OpenGL: renderer: AMD RAVEN (DRM 3.40.0 5.8.0-25-generic LLVM 11.0.0) v: 4.6 Mesa 20.2.6 direct render: Yes 
Audio:     Device-1: Advanced Micro Devices [AMD/ATI] Raven/Raven2/Fenghuang HDMI/DP Audio driver: snd_hda_intel v: kernel 
           bus ID: 0c:00.1 
           Device-2: Advanced Micro Devices [AMD] Family 17h HD Audio vendor: ASRock driver: snd_hda_intel v: kernel 
           bus ID: 0c:00.6 
           Sound Server: ALSA v: k5.8.0-25-generic 
Network:   Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet vendor: ASRock driver: r8169 v: kernel port: d000 
           bus ID: 0a:00.0 
           IF: enp10s0 state: up speed: 100 Mbps duplex: full mac: <filter> 
           IF-ID-1: docker0 state: down mac: <filter> 
           IF-ID-2: docker_gwbridge state: up speed: 10000 Mbps duplex: unknown mac: <filter> 
           IF-ID-3: lxcbr0 state: down mac: <filter> 
           IF-ID-4: V10 state: up speed: 100 Mbps duplex: full mac: <filter> 
           IF-ID-5: V1000 state: up speed: 100 Mbps duplex: full mac: <filter> 
           IF-ID-6: V3 state: up speed: 100 Mbps duplex: full mac: <filter> 
           IF-ID-7: V333 state: up speed: 100 Mbps duplex: full mac: <filter> 
           IF-ID-8: V50 state: up speed: 100 Mbps duplex: full mac: <filter> 
           IF-ID-9: vethd79be05 state: up speed: 10000 Mbps duplex: full mac: <filter> 
Drives:    Local Storage: total: 3.87 TiB used: 22.34 GiB (0.6%) 
           ID-1: /dev/nvme0n1 vendor: A-Data model: SX6000PNP size: 238.47 GiB 
           ID-2: /dev/sda vendor: Western Digital model: WD40EFRX-68N32N0 size: 3.64 TiB temp: 30 C 
Partition: ID-1: / size: 29.40 GiB used: 22.34 GiB (76.0%) fs: ext4 dev: /dev/nvme0n1p3 
Sensors:   System Temperatures: cpu: 40.1 C mobo: N/A gpu: amdgpu temp: 40 C 
           Fan Speeds (RPM): N/A 
Info:      Processes: 246 Uptime: 1h 34m Memory: 5.73 GiB used: 2.14 GiB (37.3%) Init: systemd runlevel: 5 Compilers: 
           gcc: 10.2.0 Shell: bash v: 5.0.17 inxi: 3.0.38 
shell$ cinnamon --version
Cinnamon 4.8.6
shell$ cat .xsession-errors
dbus-update-activation-environment: setting DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
dbus-update-activation-environment: setting DISPLAY=:0
dbus-update-activation-environment: setting XAUTHORITY=/home/coc/.Xauthority
dbus-update-activation-environment: setting GTK_MODULES=gail:atk-bridge
dbus-update-activation-environment: setting QT_ACCESSIBILITY=1
dbus-update-activation-environment: setting SHELL=/bin/bash
dbus-update-activation-environment: setting QT_ACCESSIBILITY=1
dbus-update-activation-environment: setting XDG_CONFIG_DIRS=/etc/xdg/xdg-cinnamon:/etc/xdg
dbus-update-activation-environment: setting XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0
dbus-update-activation-environment: setting LANGUAGE=en_US
dbus-update-activation-environment: setting MANDATORY_PATH=/usr/share/gconf/cinnamon.mandatory.path
dbus-update-activation-environment: setting LC_ADDRESS=ru_RU.UTF-8
dbus-update-activation-environment: setting LC_NAME=ru_RU.UTF-8
dbus-update-activation-environment: setting DESKTOP_SESSION=cinnamon
dbus-update-activation-environment: setting LC_MONETARY=ru_RU.UTF-8
dbus-update-activation-environment: setting GTK_MODULES=gail:atk-bridge
dbus-update-activation-environment: setting PWD=/home/coc
dbus-update-activation-environment: setting XDG_SESSION_DESKTOP=cinnamon
dbus-update-activation-environment: setting LOGNAME=coc
dbus-update-activation-environment: setting XDG_SESSION_TYPE=x11
dbus-update-activation-environment: setting GPG_AGENT_INFO=/run/user/1000/gnupg/S.gpg-agent:0:1
dbus-update-activation-environment: setting XAUTHORITY=/home/coc/.Xauthority
dbus-update-activation-environment: setting XDG_GREETER_DATA_DIR=/var/lib/lightdm-data/coc
dbus-update-activation-environment: setting GDM_LANG=en_US
dbus-update-activation-environment: setting HOME=/home/coc
dbus-update-activation-environment: setting IM_CONFIG_PHASE=1
dbus-update-activation-environment: setting LANG=en_US.UTF-8
dbus-update-activation-environment: setting LC_PAPER=ru_RU.UTF-8
dbus-update-activation-environment: setting XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
dbus-update-activation-environment: setting XDG_SESSION_CLASS=user
dbus-update-activation-environment: setting LC_IDENTIFICATION=ru_RU.UTF-8
dbus-update-activation-environment: setting DEFAULTS_PATH=/usr/share/gconf/cinnamon.default.path
dbus-update-activation-environment: setting USER=coc
dbus-update-activation-environment: setting DISPLAY=:0
dbus-update-activation-environment: setting SHLVL=1
dbus-update-activation-environment: setting LC_TELEPHONE=ru_RU.UTF-8
dbus-update-activation-environment: setting LC_MEASUREMENT=ru_RU.UTF-8
dbus-update-activation-environment: setting XDG_RUNTIME_DIR=/run/user/1000
dbus-update-activation-environment: setting GTK3_MODULES=xapp-gtk3-module
dbus-update-activation-environment: setting XDG_DATA_DIRS=/usr/share/cinnamon:/usr/share/gnome:/home/coc/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share:/var/lib/snapd/desktop
dbus-update-activation-environment: setting NLSPATH=/opt/cprocsp/share/locale/%L/LC_MESSAGES/%N
dbus-update-activation-environment: setting PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
dbus-update-activation-environment: setting GDMSESSION=cinnamon
dbus-update-activation-environment: setting DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
dbus-update-activation-environment: setting LC_NUMERIC=ru_RU.UTF-8
dbus-update-activation-environment: setting _=/usr/bin/dbus-update-activation-environment
** Message: 14:59:36.543: Existing monitor config (/home/coc/.config/cinnamon-monitors.xml) not found at startup. Looking for legacy configuration (monitors.xml)
[cinnamon-settings-daemon-smartcard] Failed to start: no suitable smartcard driver could be found
[cinnamon-settings-daemon-smartcard] Failed to start: no suitable smartcard driver could be found
Cjs-Message: 14:59:37.268: Profiler is disabled. Not setting up signals.
Clutter-Message: 14:59:37.306: Sync method: PRESENTATION TIME

ERROR: Unable to load info from any available system

Cjs-Message: 14:59:37.524: JS LOG: About to start Cinnamon
Cjs-Message: 14:59:37.811: JS LOG: [LookingGlass/info] Cinnamon.AppSystem.get_default() started in 278 ms
Cjs-Message: 14:59:37.830: JS LOG: [LookingGlass/info] loading user theme: /usr/share/themes/Linux Mint/cinnamon/cinnamon.css
Cjs-Message: 14:59:37.869: JS LOG: [LookingGlass/info] added icon directory: /usr/share/themes/Linux Mint/cinnamon
** Message: 14:59:38.163: nemo-desktop: session is cinnamon, establishing proxy
Unable to open desktop file /usr/share/applications/caja-browser.desktop for panel launcher: No such file or directory
Unable to open desktop file /usr/share/applications/mate-terminal.desktop for panel launcher: No such file or directory

(nm-applet:2430): Gdk-CRITICAL **: 14:59:38.545: gdk_window_thaw_toplevel_updates: assertion 'window->update_and_descendants_freeze_count > 0' failed

** (nemo-desktop:2426): WARNING **: 14:59:42.975: nemo-desktop: Desktop failsafe timeout reached, applying fallback behavior
Nemo-Share-Message: 14:59:43.233: Called "net usershare info" but it failed: 'net usershare' returned error 255: net usershare: cannot open usershare directory /var/lib/samba/usershares. Error No such file or directory
Please ask your system administrator to enable user sharing.

cinnamon-session[2125]: WARNING: t+6,99743s: Detected that screensaver has appeared on the bus

** (xapp-sn-watcher:2412): CRITICAL **: 15:04:19.370: Could not get properties for :1.63: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: No such interface “org.freedesktop.DBus.Properties” on object at path /org/ayatana/NotificationItem/Skype1


(metacity:2591): metacity-WARNING **: 15:04:21.097: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x5a00011 (mintMenu.py)

(metacity:2591): metacity-WARNING **: 15:06:59.442: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x3a00003 (Authenticate)

(metacity:2591): metacity-WARNING **: 15:07:20.346: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x5a00011 (mintMenu.py)

(metacity:2591): metacity-WARNING **: 15:07:38.637: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x5a00011 (mintMenu.py)

(metacity:2591): metacity-WARNING **: 15:08:06.639: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x5a00011 (mintMenu.py)

(metacity:2591): metacity-WARNING **: 15:21:36.502: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x5a00011 (mintMenu.py)

(metacity:2591): metacity-WARNING **: 15:21:46.540: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x5a00011 (mintMenu.py)

(metacity:2591): metacity-WARNING **: 15:21:53.883: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x5a00011 (mintMenu.py)

(metacity:2591): metacity-WARNING **: 16:11:27.434: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x5a00011 (mintMenu.py)

###!!! [Parent][RunMessage] Error: Channel closing: too late to send/recv, messages will be lost


(metacity:2591): metacity-WARNING **: 16:18:12.352: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x5a00011 (mintMenu.py)

(metacity:2591): metacity-WARNING **: 16:20:41.318: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x5a00011 (mintMenu.py)

(metacity:2591): metacity-WARNING **: 16:24:59.654: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x5a00011 (mintMenu.py)

shell$ ls -al .config/cinnamon-monitors.xml 
-rw-rw-r-- 1 coc coc 1664 Aug  6  2020 .config/cinnamon-monitors.xml

What is doing the Garbage Collector? cinnamon --replace

I move this from here: linuxmint/cinnamon#3635

cinnamon --replace is eating the memory, and the garbage collector do not recover the memory, or just can recovered only a fraction...

I make this test with the default cinnamon configuration.

Windows list, cinnamon menu, and some applet need more memory, that others and with this applets you can see more clear any problem in memory. They need to use a lot of memory to show several things, but this memory need to be recover when garbage collector do a clean... This is not what happen...

This probably not occurs only in cinnamon 2.4 also possible in cinnamon 2.2.16, like this comment:
jake-phy/WindowIconList#62 or also possible with cinnamon 2.2.8 like this comment: lestcape/Configurable-Menu#58

Procedure to detect problems:
Open the procces monitor, then wait a while without do any thing. When the memory will be stable, open the menu, then wait a while and you will see that the memory usage will increase. This is normal...

Close the menu and repeat the process and you will see how always cinnamon --replace will use more and more memory...

If you do this procedure, waiting always some time between all actions, you can note when the garbage collector do a clean, and you can see that the garbage collector only removed a little fraction of all memory that will lost.

This is not the behavior that I expect to happen, the garbage collector need to return the memory that we lost, to can be used to other applications.

Could anyone verify that ?

This appear to be seriously:
https://bugzilla.gnome.org/buglist.cgi?quicksearch=product%3A%22gnome-shell%22++memory+leak
https://bugzilla.gnome.org/show_bug.cgi?id=685513
https://bugzilla.redhat.com/show_bug.cgi?id=977387
https://mail.gnome.org/archives/gtk-devel-list/2014-February/msg00027.html

More people reporting the same in differents cinnamon versions: http://forum.linuxmint.com/viewtopic.php?f=208&t=153281

If there are a fix, this will be here: https://bugzilla.gnome.org/show_bug.cgi?id=725099

Info spam in xsession-errors

This is in .xsession-errors every time Cinnamon is started, I assumed it's from cjs based on the messages. It would be nice if this could be turned off.

Cjs-Message: 23:04:16.198: JS LOG: About to start Cinnamon
Cjs-Message: 23:04:16.262: JS LOG: [LookingGlass/info] Cinnamon.AppSystem.get_default() started in 62 ms
Cjs-Message: 23:04:16.268: JS LOG: [LookingGlass/info] loading default theme
Cjs-Message: 23:04:16.344: JS LOG: [LookingGlass/info] PlacesManager: Updating devices
Cjs-Message: 23:04:16.348: JS LOG: [LookingGlass/info] loaded at Mon Feb 10 2020 23:04:16 GMT-0600 (CST)
Cjs-Message: 23:04:16.348: JS LOG: Cinnamon started at Mon Feb 10 2020 23:04:16 GMT-0600 (CST)
Cjs-Message: 23:04:16.358: JS LOG: [LookingGlass/info] ExtensionSystem started in 2 ms
Cjs-Message: 23:04:16.358: JS LOG: [LookingGlass/info] DeskletManager started in 0 ms
Cjs-Message: 23:04:16.358: JS LOG: [LookingGlass/info] SearchProviderManager started in 0 ms
openGL version 3.1 detected (GL3 Cogl Driver)
Cjs-Message: 23:04:16.397: JS LOG: [LookingGlass/info] Loaded applet [email protected] in 16 ms
St-Message: 23:04:16.397: cogl npot texture sizes SUPPORTED
Cjs-Message: 23:04:16.426: JS LOG: [LookingGlass/info] Loaded applet [email protected] in 30 ms
Cjs-Message: 23:04:16.442: JS LOG: [LookingGlass/info] Loaded applet [email protected] in 16 ms
Cjs-Message: 23:04:16.450: JS LOG: [LookingGlass/info] Role locked: tray
Cjs-Message: 23:04:16.451: JS LOG: [LookingGlass/info] Loaded applet [email protected] in 8 ms
Cjs-Message: 23:04:16.463: JS LOG: [LookingGlass/info] Loaded applet [email protected] in 12 ms
Cjs-Message: 23:04:16.511: JS LOG: [LookingGlass/info] Role locked: panellauncher
Cjs-Message: 23:04:16.518: JS LOG: [LookingGlass/info] Loaded applet [email protected] in 56 ms
Cjs-Message: 23:04:16.523: JS LOG: [LookingGlass/info] Role locked: notifications
Cjs-Message: 23:04:16.527: JS LOG: [LookingGlass/info] Loaded applet [email protected] in 8 ms
Cjs-Message: 23:04:16.542: JS LOG: [LookingGlass/info] Loaded applet [email protected] in 14 ms
Cjs-Message: 23:04:16.547: JS LOG: [LookingGlass/info] Loaded applet [email protected] in 4 ms
Cjs-Message: 23:04:16.581: JS LOG: [LookingGlass/info] Loaded applet [email protected] in 34 ms
Cjs-Message: 23:04:16.614: JS LOG: [LookingGlass/info] Loaded applet [email protected] in 34 ms
Cjs-Message: 23:04:16.699: JS LOG: [LookingGlass/info] Loaded applet [email protected] in 84 ms
Cjs-Message: 23:04:16.700: JS LOG: [LookingGlass/info] AppletManager started in 352 ms
Cjs-Message: 23:04:16.701: JS LOG: [LookingGlass/info] Cinnamon took 502 ms to start
Cjs-Message: 23:04:16.721: JS LOG: Unknown network device type, is 14
Cjs-Message: 23:04:16.726: JS LOG: Unknown network device type, is 17
Cjs-Message: 23:04:16.964: JS LOG: [LookingGlass/info] Hiding systray: network

Can CJS be used for desktop scripting?

How? All I can find is how to build a headless server using nodejs.

Seeking a standard ECMAscript interpreter that has a runtime that allows filesystem access etc. I can't stand BASH.

I've been looking for this for over a year. I've corresponded with folks who say, "Sure, you can do desktop scripting with javascript", then act real coy and won't tell me how.

Thanks for a push in the right direction.

Warm Regards,
Mark.

cjs fails to compile on debian testing

Hello,

I try to make cjs work on Debian testing but it fails with this message :

/js/EverythingBasic: OK
/js/EverythingEncapsulated: OK
/js/GDBus: OK
/js/GIMarshalling: OK
/js/Importer: OK
/js/JS1_8: OK
/js/JSDefault: OK
/js/Lang: OK
/js/Locale: FAIL
GTester: last random seed: R02Sb9bffc08e9fb53e08550568629b8cdb8
killing message bus 6534
killing message bus 6537
./test/run-with-dbus: script "gtester" failed
make[1]: *** [test] Fout 1

The only thibg I have changed is the rules file.
This one looks this way :

!/usr/bin/make -f

-- makefile --

Uncomment this to turn on verbose mode.

export DH_VERBOSE=1

%:
dh $@ --with autoreconf

And changed the compat file to 9 because Debian uses this now.

cjs-3.6.1 Compile Error

checking whether ln -s works... yes
checking for a sed that does not truncate output... (cached) /usr/bin/sed
checking for gawk... (cached) gawk
./configure: line 16391: AX_COMPILER_FLAGS: command not found
checking whether to build with code coverage support... no
./configure: line 16629: syntax error near unexpected token -lgcov,,' ./configure: line 16629:AX_CHECK_LINK_FLAG(-lgcov,,'

cjs-3.6.1.log

CJS 4.8.0 - can't compile with Clang (similar issue was fixed in GJS)

I cannot compile the latest version of CJS 4.8.0 using the Clang 11 compiler on OpenMandriva Cooker.

At build time I see this error:

../gi/gtype.cpp:58:1: error: an attribute list cannot appear here
DEBUG util.py:623:  GJS_DEFINE_PRIV_FROM_JS(void, gjs_gtype_class);
DEBUG util.py:623:  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DEBUG util.py:623:  ../cjs/jsapi-class.h:80:23: note: expanded from macro 'GJS_DEFINE_PRIV_FROM_JS'
DEBUG util.py:623:      GJS_ALWAYS_INLINE [[nodiscard]] [[maybe_unused]] static inline bool        \
DEBUG util.py:623:                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DEBUG util.py:623:  ../gi/gtype.cpp:58:1: error: an attribute list cannot appear here
DEBUG util.py:623:  GJS_DEFINE_PRIV_FROM_JS(void, gjs_gtype_class);
DEBUG util.py:623:  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DEBUG util.py:623:  ../cjs/jsapi-class.h:84:23: note: expanded from macro 'GJS_DEFINE_PRIV_FROM_JS'
DEBUG util.py:623:      GJS_ALWAYS_INLINE [[nodiscard]] static inline type* priv_from_js(          \
DEBUG util.py:623:                        ^~~~~~~~~~~~~
DEBUG util.py:623:  2 errors generated.

Full build log: https://file-store.openmandriva.org/api/v1/file_stores/6c2f1adb715237cc558714381fa856a5d913c2f2.log?show=true

Worth to add, everything compiles correctly when I use the GCC compiler. But the thing is, we try our best to compile everything that we can with Clang.

I would like to add that the same error (or a similar one) also appeared in the case of GJS 1.66 compiled with Clang. Here is a link to upstream issues and a link below to the fix for this problem.

GJS 1.66 upstream issue: https://gitlab.gnome.org/GNOME/gjs/-/issues/347
GJS 1.66 fix issue: https://gitlab.gnome.org/GNOME/gjs/-/merge_requests/499

And it looks like this problem has already been fixed in GJS 1.66.1.

gjs_coverage_enable with cjs

When trying to use cjs, you'll get this:
cjs: symbol lookup error: cjs: undefined symbol: gjs_coverage_enable

I even built this myself and installed the Debian experimental version; no luck.

I also tried fixing it myself; but it screwed up the tests and was a chain reaction essentially.

I'll try investigating but for now this is the problem.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.