Overview of changes in GLib 2.75.3, 2023-02-13
Drop the implementation of GSlice, and make the API use the system
malloc()
internally (#1079) (based on investigation work by multiple people)Use a thread-spawning thread to keep thread scheduler settings consistent;
fixes GThreadPool critical warnings due to failing to set scheduler settings
in some situations (#2769, work by Sebastian Dröge and others)GIR annotation improvements for multiple APIs (#2827, #2894, #2895, #2897,
!3198, !3234, !3236, !3238, !3245, !3266, work by multiple people)Optimise printing of nested maybes in
g_variant_print()
(#2862, work by Philip Withnall)Use
tap
test protocol within GLib, and support TAP 13/14 (!3140, work by Marco Trevisan)Fix a regression in glib-compile-schemas 2.75.2 causing schemas and override
files to be sorted incorrectly (!3188, spotted by John Wudrick, work by Philip Withnall)Support per-desktop overrides in
GSettingsAction
(!3193, work by Philip Withnall)Various optimisations to
GString
(!3199, work by Matthias Clasen and Marco Trevisan)Reduce allocations in message printing functions if there’s nothing to format (!3205, work by Marco Trevisan)
Add inline version of
g_strdup()
, allowing the compiler to doNULL
folding
and constant folding onstrlen()
calls (!3209, work by Marco Trevisan)Add a
GPathBuf
API for building and manipulating file paths (!3216, work by Emmanuele Bassi)Add
g_string_free_and_steal()
and use it to warn on unused results from
g_string_free (_, FALSE)
(!3219, !3226, work by Matthias Clasen and Sergey Bugaev)Add
g_free_sized()
andg_aligned_free_sized()
to mirror the upcoming
free_sized()
function in C23; use these if porting away fromg_slice_free()
(!3231, work by Philip Withnall)Fix underspecified dependencies on generated headers in
meson.build
, which
should reduce spurious build failures (!3260, work by Eli Schwartz)Bugs fixed:
- #1079 Investigate dropping or deprecating the GSlice allocator (Natanael
Copa)
- #2769 GThreadPool crashes with: Failed to set scheduler settings: Operation
not permitted (Sebastian Dröge)
- #2827 Callback parameters get wrong attributes in gir files
- #2862 fuzz_variant_text: Timeout in fuzz_variant_text when printing nested
maybes
- #2876 g_find_program_for_path is public ABI but not declared in a public
header (Philip Withnall)
- #2877 glib/tests/array-
test.c:1828:pointer_array_new_from_null_terminated_array_from_gstrv:
'g_ptr_array_index (gparray, 4)' should be NULL (Simon McVittie)
- #2881 Invalid read of size 4 in get_matched_substring_number (Philip
Withnall)
- #2883 g_file_set_contents fails on mingw64 with "no error" if file size >
INT_MAX (CCode)
- #2890 g_string_append() macro evaluates arguments multiple times (Marco
Trevisan (Treviño))
- #2891 Memory leak in "gio/win32/gwin32fsmonitorutils.c" (Philip Withnall)
- #2892 Memory leak in "gio/gwin32mount.c" (Philip Withnall)
- #2894 g_value_take_string: wrong ownership transfer info in GIR (Lukáš
Tyrychtr)
- #2895 g_io_channel_get_line_term: wrong GIR (Bart Jacobs)
- #2897 g_time_zone_adjust_time: GIR says gint64 but it's gint64* (Bart
Jacobs)
- #2898 g_print replaces non-ascii characters with question mark
- #2900 msys2-clang64: gspawn[a]sync() fails in clang builds when envp is
not NULL
- #2901 g_app_info_get_executable doesn't work well on latest Ubuntu with
Firefox installed as snap
- #2908 Crash when creating GtkTextView with G_DEBUG=gc-friendly (Marco
Trevisan (Treviño))
- #2914 Should GPathBuf split on both directions of slashes on Windows? (Simon
McVittie)
- GNOME/gimp#9094 devel: None of the extensions and plugins load in Clang
builds
- !3140 meson: Use 'tap' test protocol and support TAP 13/14
- !3184 build: Don't overwrite build variables
- !3185 Include gobject-visibility.h in glib-types.h
- !3187 tests/desktop-app-info: fix stack-use-after-scope
- !3188 glib-compile-schemas: Fix typo in comparison function
- !3189 docs: Fix return type in cmpint
- !3191 tests: Improve error message if setting max processes to 1 fails
- !3192 garray: Avoid calling memcpy with no items
- !3193 gsettings: Support per-desktop overrides in GSettingsAction
- !3196 gio/tests/file.c:Fix expectations when running as root
- !3198 Fix a couple of
closure
annotations
- !3199 Some GString optimizations
- !3203 GTask: Document issues
- !3205 gmessages: Avoid strings duplication if there's nothing to format
- !3206 tests: Add a test print to spawn-test on Windows
- !3207 tests: Fix a minor leak in the GString tests
- !3209 gstrfuncs: Add inline version of g_strdup()
- !3216 Add GPathBuf
- !3219 Add g_string_free_and_steal
- !3221 TAP: some further cleanups
- !3223 Add a few suppressions to glib.supp and fix a minor bug in
gapplication test
- !3224 gtestutils: Fix a potential NULL pointer dereference in g_test_log()
- !3225 tests: Temporarily disable socket test due to a kernel bug
- !3226 Make g_stringfree (, FALSE) warn on unused result
- !3231 gmem: Add g_free_sized() and g_aligned_free_sized()
- !3234 GMainContext: Use nullable context in docs (and in some missing code)
- !3236 g_regex_escape_string: bad GIR: utf8[] -> utf8
- !3238 Fix GIR: gunichar -> gunichar[]
- !3242 GAtomicArray: Ensure metadata does not misalign the payload
- !3243 Allow using msort_r CHERI-enabled architectures
- !3245 gio: converter: Forbid null out arguments
- !3246 tests: Fix a few minor leaks in gdbus-example-peer
- !3247 tests: Fix a minor leak in the cxx string append tests
- !3248 timezone: Fix a compiler warning
- !3249 gstring: Avoid warnings from inline functions
- !3250 ci: Temporarily only run the FreeBSD 13 CI on a schedule
- !3251 Revert "gtype: Use the system allocator on UNIX" and use g_free_sized
instead
- !3256 Remove n_preallocs field from InstanceData
- !3258 Revert "ci: Temporarily only run the FreeBSD 13 CI on a schedule"
- !3259 gmessages: use g_atomic_pointer to access handlers for
g_print()/g_printerr()
- !3260 fix underspecified dependencies on generated headers
- !3262 Add a (temporary) assertion that sizeof(gsize) == sizeof(guintptr)
- !3263 Revert "glib-init: Add more static assertions for gintptr, guintptr"
- !3265 fileutils: Make some sample code detect symlinks as intended
- !3266 Avoid some warnings from GObject-Introspection
- !3268 po: Add missing header file to POTFILES.in
- #1079 Investigate dropping or deprecating the GSlice allocator (Natanael
Translation updates:
- Belarusian (Vasil Pupkin)
- Galician (Fran Dieguez)
- Georgian (Ekaterine Papava)
- Hebrew (Yosef Or Boczko)
- Indonesian (Kukuh Syafaat)
- Portuguese (Hugo Carvalho)
- Russian (Aleksandr Melman)
- Turkish (Sabri Ünal, Emin Tufan Çetin)
- Ukrainian (Yuri Chornoivan)
- Belarusian (Vasil Pupkin)