Skip to content
Tags give the ability to mark specific points in history as being important
  • 1.49.91
    Version 1.49.91
    
    - Deprecation: The private "__name__" property on Lang.Class instances is
      now discouraged. Code should not have been using this anyway, but if it did
      then it should use the "name" property on the class (this.__name__ should
      become this.constructor.name), which is compatible with ES6 classes.
    
    - Closed bugs:
    
      * Use ES6 classes [#785652, Philip Chimento]
      * A few fixes for stack traces and error reporting [#786183, Philip Chimento]
      * /proc/self/stat is read for every frame if GC was not needed [#786017,
        Benjamin Berg]
    
    - Build fix [Philip Chimento]
  • 1.49.92
    Version 1.49.92
    
    - It's now possible to build GJS with sanitizers (ASan and UBSan) enabled; add
      "--enable-asan" and "--enable-ubsan" to your configure flags. This has
      already caught some memory leaks.
    
    - There's also a "make check-valgrind" target which will run GJS's test suite
      under Valgrind to catch memory leaks and threading races.
    
    - Many of the crashes in GNOME 3.24 were caused by GJS's closure invalidation
      code which had to change from the known-working state in 1.46 because of
      changes to SpiderMonkey's garbage collector. This code has been refactored to
      be less complicated, which will hopefully improve stability and debuggability.
    
    - Closed bugs:
    
      * Clean up the idle closure invalidation mess [#786668, Philip Chimento]
      * Add ASan and UBSan to GJS [#783220, Claudio André]
      * Run analysis tools on GJS to prepare for release [#786995, Philip Chimento]
      * Fix testLegacyGObject importing the GTK overrides [#787113, Philip Chimento]
    
    - Docs tweak [Philip Chimento]
  • 1.48.7
    Version 1.48.7
    
    - Backported some memory leak fixes from 1.49.92
    - Backported refactor of closure invalidation code from 1.49.92
  • 1.50.0
    Version 1.50.0
    
    - Closed bugs:
    
      * Relicense coverage.cpp and coverage.h to the same license as the rest of
        GJS [#787263, Philip Chimento; thanks to Dominique Leuenberger for pointing
        out the mistake]
  • 1.50.1
    Version 1.50.1
    
    - As a debugging aid, gjs_dumpstack() now works even during garbage
    collection.
    
    - Code coverage tools did not work so well in the last few 1.49 releases.
      The worst problems are now fixed, although even more improvements will
      be released in the next unstable version. Fixes include:
    
      * Specifing prefixes for code coverage files now works again
      * Code coverage now works on lines inside ES6 class definitions
      * The detection of which lines are executable has been improved a bit
  • 1.50.2
    Version 1.50.2
    
    - Closed bugs and merge requests:
    
      * tweener: Fix a couple of warnings [!5, Florian Müllner]
      * legacy: Allow ES6 classes to inherit from abstract Lang.Class class [!6,
        Florian Müllner]
    
    - Minor bugfixes [Philip Chimento]
  • 1.51.2
    Version 1.51.2
    
    - Version 1.51.1 was skipped.
    
    - The home of GJS is now at GNOME's GitLab instance:
      https://gitlab.gnome.org/GNOME/gjs
      From now on we'll be taking GitLab merge requests instead of Bugzilla
      patches. If you want to report a bug, please report it at GitLab.
    
    - Closed bugs and merge requests:
    
      * Allow throwing GErrors from JS virtual functions [#682701, Giovanni
        Campagna]
      * [RFC] bootstrap system [#777724, Jasper St. Pierre, Philip Chimento]
      * Fix code coverage (and refactor it to take advantage of mozjs52 features)
        [#788166, !1, !3, Philip Chimento]
      * Various maintenance [!2, Philip Chimento]
      * Get GitLab CI working and various improvements [#6, !7, !9, !11, !13,
        Claudio André]
      * Add build status badge to README [!8, Claudio André]
      * Use Docker images for CI [!12, Claudio André]
    
    - Some changes in progress to improve garbage collection when signals are
      disconnected. See bug #679688 for more information [Giovanni Campagna]
  • 1.51.3
    Version 1.51.3
    
    - This release was made from an earlier state of master, before a breaking
      change was merged, while we decide whether to revert that change or not.
    
    - Closed bugs and merge requests:
    
      * CI improvements on GitLab [!14, !15, !19, Claudio André]
      * Fix CI build on Ubuntu [#16, !18, !21, Claudio André, Philip Chimento]
  • 1.51.4
    Version 1.51.4
    
    - We welcomed code and documentation from several new contributors in this
      release!
    
    - GJS will now log a warning when a GObject is accessed in Javascript code
      after the underlying object has been freed in C. (This used to work most of
      the time, but crash unpredictably.) We now prevent this situation which, is
      usually caused by a memory management bug in the underlying C library.
    
    - APIs exposed through GObject Introspection that use the GdkAtom type are now
      usable from Javascript. Previously these did not work. On the Javascript side,
      a GdkAtom translates to a string, so there is no Gdk.Atom type that you can
      access. The special atom GDK_NONE translates to null in Javascript, and there
      is also no Gdk.NONE constant.
    
    - The GitLab CI tasks have continued to gradually become more and more
      sophisticated.
    
    - Closed bugs and merge requests:
    
      * Add checks for GObjects that have been finalized [#21, #23, !22, !27, Marco
        Trevisan]
      * Fail static analyzer if new warnings are found [!24, Claudio André]
      * Run code coverage on GitLab [!20, Claudio André]
      * Amend gtk.js and add gtk-application.js with suggestion [!32, Andy Holmes]
      * Improve GdkAtom support that is blocking clipboard APIs [#14, !29, makepost]
      * Test "Cairo context has methods when created from a C function" fails [#27,
        !35, Valentín Barros]
      * Various CI improvements [#6, !26, !34, Claudio André]
      * Various maintenance [!23, !36, Philip Chimento]
  • 1.50.3
    Version 1.50.3
    
    - GJS will now log a warning when a GObject is accessed in Javascript code
      after the underlying object has been freed in C. (This used to work most of
      the time, but crash unpredictably.) We now prevent this situation which, is
      usually caused by a memory management bug in the underlying C library.
    
    - Closed bugs and merge requests:
    
      * Add checks for GObjects that have been finalized [#21, #23, !25, !28, !33,
        Marco Trevisan]
      * Test "Cairo context has methods when created from a C function" fails [#27,
        !35, Valentín Barros]
      * Various fixes from the master branch for rare crashes [Philip Chimento]
  • 1.50.4
    Version 1.50.4
    
    - Closed bugs and merge requests:
    
      * Gnome Shell crash with places-status extension when you plug an USB device
        [#33, !38, Philip Chimento]
  • 1.51.90
    Version 1.51.90
    
    - Note that all the old Bugzilla bug reports have been migrated over to GitLab.
    
    - GJS now, once again, includes a profiler, which outputs files that can be
      read with sysprof. To use it, simply run your program with the environment
      variable GJS_ENABLE_PROFILER=1 set. If your program is a JS script that is
      executed with the interpreter, you can also pass --profile to the
      interpreter. See "gjs --help" for more info.
    
    - New API: For programs that want more control over when to start and stop
      profiling, there is new API for GjsContext. When you create your GjsContext
      there are two construct-only properties available, "profiler-enabled" and
      "profiler-sigusr2". If you set profiler-sigusr2 to TRUE, then the profiler
      can be started and stopped while the program is running by sending SIGUSR2 to
      the process. You can also use gjs_context_get_profiler(),
      gjs_profiler_set_filename(), gjs_profiler_start(), and gjs_profiler_stop()
      for more explicit control.
    
    - New API: GObject.signal_connect(), GObject.signal_disconnect(), and
      GObject.signal_emit_by_name() are now available in case a GObject-derived
      class has conflicting connect(), disconnect() or emit() methods.
    
    - Closed bugs and merge requests:
    
      * Handle 0-valued GType gracefully [#11, !10, Philip Chimento]
      * Profiler [#31, !37, Christian Hergert, Philip Chimento]
      * Various maintenance [!40, !59, Philip Chimento, Giovanni Campagna]
      * Rename GObject.Object.connect/disconnect? [#65, !47, Giovanni Campagna]
      * Better debugging output for uncatchable exceptions [!39, Simon McVittie]
      * Update Docker images and various CI maintenance [!54, !56, !57, !58,
        Claudio André]
      * Install GJS suppression file for Valgrind [#2, !55, Philip Chimento]
  • 1.51.91
    Version 1.51.91
    
    - Promises now resolve with a higher priority, so asynchronous code should be
      faster. [Jason Hicks]
    
    - Closed bugs and merge requests:
    
      * New build 'warnings' [#117, !62, !63, Claudio André, Philip Chimento]
      * Various CI maintenance [!64, !65, !66, Claudio André, Philip Chimento]
      * profiler: Don't include alloca.h when disabled [!69, Ting-Wei Lan]
      * GNOME crash with fatal error "Finalizing proxy for an object that's
        scheduled to be unrooted: Gio.Subprocess" in gjs [#26, !70, Philip Chimento]
  • 1.51.92
    Version 1.51.92
    
    - Closed bugs and merge requests:
    
      * abort if we are called back in a non-main thread [#75, !72, Philip Chimento]
      * 3.27.91 build failure on debian/Ubuntu [#122, !73, Tim Lunn]
      * Analyze project code quality with Code Climate inside CI [#10, !77, Claudio
        André]
      * Various CI improvements [!75, !76, !79, !80, !82, !83, Claudio André]
  • 1.52.0
    Version 1.52.0
    
    - No changes from 1.51.92 except for the continuous integration configuration.
    
    - Closed bugs and merge requests:
    
      * Various CI improvements [!84, !85, !86, !87, Claudio André]