glib 2.31.0



About GLib
==========

GLib is the low-level core library that forms the basis for projects
such as GTK+ and GNOME. It provides data structure handling for C,
portability wrappers, and interfaces for such runtime functionality as
an event loop, threads, dynamic loading, and an object system.

News
====

This release contains a huge number of changes (500 commits worth).  The
list below attempts to summarise, but not every change is listed.

* Major changes to threading and synchronisation
 - threading is now always enabled in GLib
 - support for custom thread implementations (including our own internal
   support for errorcheck mutexes) has been removed
 - a whole lot of dead code (to deal with the non-threaded case) has
   been ripped out.  This includes the racy path of GMainContext that
   caused deadlocks with respect to child process exits in
   single-threaded programs (such as gtester).
 - libgthread is now an empty shell and g_thread_init() is no longer
   required (and has been deprecated)
 - GMutex and GCond can now be statically allocated without explicit
   initialisation.  Dynamic allocation for these types is deprecated.
 - new types GRecMutex and GRWLock can also be statically allocated
   without explicit initialisation.
 - GPrivate can now be statically allocated and has an improved API.
   Dynamic allocation of GPrivate is deprecated.
 - GStaticMutex, GStaticRecMutex, GStaticRwLock, GStaticPrivate are
   deprecated.
 - GCond now uses monotonic time internally and a new API takes
   monotonic time for timed waits, deprecating the wallclock API
 - removal of the insane macro indirection used in the previous
   implementation of threading and synchronisation APIs
 - use SRWLock and CONDITION_VARIABLE APIs when available on Windows
   (Vista and later) and emulate them on XP
 - leaks of G(Static)Private-allocated data on some cases of thread exit
   have been fixed
 - simplified new thread creation API with the old API deprecated.  The
   concept of joinability has disappeared (all threads are joinable) as
   have priority levels, 'bound'ness (ie: kernel vs. userspace threads)
   and ability to manipulate the stack size.
 - GThread is now a refcounted type
 - other implementation details changed

* Move headers for some deprecated functionality to a separate
  deprecated/ directory.

* New support for attribute-based deprecations to issue compiler
  warnings instead of breaking the build and/or giving warnings about
  implicit declarations (and possibly miscompiling).

* GCache has been deprecated (after its last use was removed from our
  platform over a year ago).

* It is no longer possible to include individual headers (like
  "ghash.h") -- you must #include <glib.h>.

* The misguided experiment of allowing the program to stumble along with
  missing GSettings schemas is now over -- the abort is back.

* Clarify that fork() is not valid while using GMainContext.  This is
  because the internal resources of the GMainContext end up being shared
  by both processes.  We had an assert here but it was breaking existing
  (valid) use cases as well, so it has been removed for now.

* GApplication
  - add ::shutdown signal as logical dual to ::startup
  - don't use a GMainLoop: iterate the GMainContext directly (improves
    quit logic)

* Several portability fixes for Windows, OpenBSD, Solaris

* Add new GValue API to specifically deal in signed chars (in case the
  platform defines 'char' as unsigned)

* some new API to mitigate the problems associated with calling setenv()
  in a multi-threaded program

* Use CLOCK_MONOTONIC unconditionally if the libc has support at compile
  time (ie: stop checking for kernel support at runtime).

* pkg-config files:
  - drop -uninstalled variants
  - remove gobject dependency on gthread

* New macro G_ATOMIC_LOCK_FREE is defined if the atomic operations are
  implemented without use of a mutex.  Cleaned up atomic-related
  compilation issues with mingw compilers on win32 systems.

* SOCKS proxy and resolver improvements

* Fix the spelling of G_IO_FLAG_IS_WRITABLE (was WRITEABLE) and
  introduce a macro for backwards compatibility.

* GDBus:
  - many code generation updates and improvements
  - some race condition fixes, including testcase hangs

* GVariant:
  - new g_variant_new_from_fixed_array() API
  - substantial docs improvements/clarifications

* GKeyFile is now refcounted and boxed

* mount monitoring is now based on /proc/mounts (where available)
  instead of mtab

* new macros G_SOURCE_CONTINUE and G_SOURCE_REMOVE for returning from
  GSourceFunc (so you don't have to remember what TRUE and FALSE mean)

* use xlocale functions where available to avoid too much heavy lifting
  in functions like g_ascii_strtod()

* GMappedFile can now be created from an fd

* error message strings grammar/i18n fixes

* many docs updates

* Partial list of bugs closed:
 70598  Unify GStaticMutex and GMutex.
 320888 optimization for g_main_context_wakeup
 398418 GChildWatch race condition?
 527214 g_timer_elapsed() returns random values
 580505 add a way to set/get name for a thread
 583511 race condition means g_main_loop_quit() does not work
 590808 GKeyFile should have a refcount and a boxed type in GObject
 592715 Document that g_str_hash() and g_int_hash() are not NULL safe
 631413 Add macros for GSourceFunc return values
 632049 not immediately clear what g_variant_get_fixed_array expects
 640212 "Error stating file" is not a friendly message
 640293 Use xlocale functions to implement g_ascii_strtod()
 640975 Check that error exists before trying to set it
 643934 GApplication lacking a logical dual for the ::startup signal
 651268 assertion failed in GDBus worker thread
 653987 g_key_file_get_integer cannot interpret trailing spaces
 654412 Documentation for g_variant_get_child_value unclear
 654563 info capplet: Failed to calculate disk space
 655366 missing GSettings schemas lead to obscure crashes
 656621 g_spawn_*() calls executables in current directory
 656679 [gi] Add two annotations to gio
 657992 Add glib__private__() API to share between glib,gio
 658188 _set_as_last_used_for_type generates a broken mimeapps.list
 658206 gsocks5proxy.c has invalid gettext use
 658207 glib-compile-schemas says "can not"
 658558 simpleaction: Fix documentation of :enabled
 658683 clean up charset/language threading issues
 658692 add introspection annotations to g_time_val_from_iso8601()
 658715 Duplicite strings
 658769 Invalid reuse of GError in GThreadedResolver
 658806 sign error in string hash implementation
 658976 gdbus-codegen's C namespace option needs to support Ugly_Case
 659070 gdbus-codegen generated code segfaults when property changes
 659082 gdbus-codegen: Single letter namespaces get dropped from names
 659212 GMappedFile should fail on non-regular files
 659324 _SPLICE_CLOSE_TARGET doesn't mark the output stream as closed
 659423 Use adaptive mutexes when available
 659427 Move deprecated code to a separate directory
 659646 gdbus-codegen produce code that warnings at build
 659690 Possible build warning in code generated by gdbus-codegen
 659699 property name collision when generating code for "Connection"
 659754 Add API to GMappedFile that allows to pass FD
 659838 incorrect types in introspection for g_object_bind_property
 659866 pthread_rwlock_t requires defined __USE_UNIX98
 659870 gvalue: Fix signedness of g_value_get_char()
 659889 glib-2.29.92/gio-2.0.pc.in has a wrong line.
 659916 GObject size of 64K is not actively enforced
 659920 Missing setter for read/write property 'closed' of GIOStream
 659923 Add g_variant_new_fixed_array() function
 660013 Remove old g_atomic configure cruft
 660096 glib/rwlock tests failure (tests asserted)
 660130 Possible loss of user data when updating mimeapps.list

ChangeLog
=========
http://download.gnome.org/sources/glib/2.31/glib-2.31.0.changes  (12.3K)

Download
========

http://download.gnome.org/sources/glib/2.31/glib-2.31.0.tar.xz  (5.59M)
  sha256sum: 46fcaec884be7ce1b780feffb0da987b55e23850a870d94ed84356870532fe8c

http://download.gnome.org/sources/glib/2.31/glib-2.31.0.tar.bz2 (7.43M)
  sha256sum: 071886b70b19d75e09ad0222d4b0abb388f2b840ec1c973218209bc781a52087



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]