Merging gio into glib



I talked a bit with Ryan and Matthias on irc about the possible plans
for merging gio into the glib module today. 

The original plan was to merge gio into glib as a separate library that
links to libgobject, then use that from gtk+. The idea behind this is
that by shipping it as part of glib we make it easier to build the stack
(no need for yet another module to be build before gtk+), and to make
the stack more unified and coherent (same namespace, not looking like a
grab-bag of different libraries). On the negative side, it will make
glib (the module, not libglib.so) larger, which some people don't like.

However, at this point Ryan brought up his work on GSettings. It would
also make sense to ship in a similar fashion as a separate shared object
in glib. I then started talking about some serialization APIs that I
worked on for use in gio. At that point its starts looking a bit weird
and inefficient with all these separate libraries in glib, and we
started considering uniting these things into a common library.

The idea is that this library would contain non-ui stuff that
applications want but that requires GObject, so they can't be in glib.
Various names for this library has been thrown about:
 gfoundation, gbase, gplatform

We also discussed moving parts of gio into libglib. These are the
functions I think make sense to move:

char *   g_format_file_size_for_display (goffset size);

This converts a file size to a translated human readable string.

char *   g_uri_unescape_string       (const char *escaped_string,
				      const char *illegal_characters);
char *   g_uri_unescape_segment      (const char *escaped_string,
				      const char *escaped_string_end,
				      const char *illegal_characters);
char *   g_uri_get_scheme            (const char *uri);
char *   g_uri_escape_string         (const char *unescaped,
				      const char *reserved_chars_allowed,
				      gboolean    allow_utf8);
GString *g_string_append_uri_escaped (GString    *string,
				      const char *unescaped,
				      const char *reserved_chars_allowed,
				      gboolean    allow_utf8);

These are functions related to escaping and unescaping strings in
uri-escaping-style.

What do people think about these ideas? Does it make sense? Can you
think of a good name for the new unified library?



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