<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Changes to GLib</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="GLib Reference Manual">
<link rel="up" href="glib.html" title="GLib Overview">
<link rel="prev" href="glib-running.html" title="Running GLib Applications">
<link rel="next" href="glib-regex-syntax.html" title="Regular expression syntax">
<meta name="generator" content="GTK-Doc V1.14 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
<td><a accesskey="p" href="glib-running.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="glib.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">GLib Reference Manual</th>
<td><a accesskey="n" href="glib-regex-syntax.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry" title="Changes to GLib">
<a name="glib-changes"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle">Changes to GLib</span></h2>
<p>Changes to GLib — 
Incompatible changes made between successing versions of GLib
</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1" title="Incompatible changes from 2.0 to 2.2">
<a name="id471084"></a><h2>Incompatible changes from 2.0 to 2.2</h2>
<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
<p>
GLib changed the seeding algorithm for the pseudo-random number
generator Mersenne Twister, as used by <span class="structname">GRand</span>
and <span class="structname">GRandom</span>. This was necessary, because some
seeds would yield very bad pseudo-random streams. Also the
pseudo-random integers generated by
<code class="function">g_rand*_int_range()</code> will have a
slightly better equal distribution with the new version of GLib.
</p>
<p>
Further information can be found at the website of the Mersenne
Twister random number generator at <a class="ulink" href="http://www.math.keio.ac.jp/~matumoto/emt.html" target="_top">http://www.math.keio.ac.jp/~matumoto/emt.html</a>.
</p>
<p>
The original seeding and generation algorithms, as found in GLib
2.0.x, can be used instead of the new ones by setting the environment
variable <code class="envar">G_RANDOM_VERSION</code> to the value of '2.0'. Use
the GLib-2.0 algorithms only if you have sequences of numbers generated
with Glib-2.0 that you need to reproduce exactly.  
</p>
</li></ul></div>
</div>
<div class="refsect1" title="Incompatible changes from 1.2 to 2.0">
<a name="id465192"></a><h2>Incompatible changes from 1.2 to 2.0</h2>
<p>
The <a class="ulink" href="http://developer.gnome.org/dotplan/porting/" target="_top">GNOME 2.0
porting guide</a> on <a class="ulink" href="http://developer.gnome.org" target="_top">http://developer.gnome.org</a>
has some more detailed discussion of porting from 1.2 to 2.0.
See the section on GLib.
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
<p>
The event loop functionality <span class="structname">GMain</span> has extensively 
been revised to support multiple separate main loops in separate threads. 
All sources (timeouts, idle functions, etc.) are associated with a 
<span class="structname">GMainContext</span>.
</p>
<p>
Compatibility functions exist so that most application code dealing with
the main loop will continue to work. However, code that creates new custom 
types of sources will require modification.
</p>
<p>
The main changes here are:

  </p>
<div class="itemizedlist"><ul class="itemizedlist" type="circle">
<li class="listitem"><p>
   Sources are now exposed as <span class="type">GSource *</span>, rather than simply as 
   numeric ids.
  </p></li>
<li class="listitem"><p>
   New types of sources are created by structure "derivation" from 
   <span class="structname">GSource</span>, so the <code class="literal">source_data</code> 
   parameter to the <span class="structname">GSource</span> virtual functions has been
   replaced with a <span class="type">GSource *</span>.
  </p></li>
<li class="listitem"><p>
   Sources are first created, then later added to a specific 
   <span class="structname">GMainContext</span>. 
  </p></li>
<li class="listitem"><p>
   Dispatching has been modified so both the callback and data are passed
   in to the <code class="function">dispatch()</code> virtual function.
  </p></li>
</ul></div>
<p>
  To go along with this change, the vtable for 
  <span class="structname">GIOChannel</span> has changed and
  <code class="function">add_watch()</code> has been replaced by 
  <code class="function">create_watch()</code>.
</p>
</li>
<li class="listitem">
<p>
<code class="function">g_list_foreach()</code> and 
<code class="function">g_slist_foreach()</code> have been changed so they
are now safe against removal of the current item, not the next item.
</p>
<p>
It's not recommended to mutate the list in the callback to these
functions in any case.
</p>
</li>
<li class="listitem"><p>
<span class="structname">GDate</span> now works in UTF-8, not in the current locale. 
If you want to use it with the encoding of the locale, you need to convert 
strings using <code class="function">g_locale_to_utf8()</code> first.
</p></li>
<li class="listitem">
<p>
<code class="function">g_strsplit()</code> has been fixed to:

  </p>
<div class="itemizedlist"><ul class="itemizedlist" type="circle">
<li class="listitem"><p>
   include trailing empty tokens, rather than stripping them
  </p></li>
<li class="listitem"><p>
   split into a maximum of <code class="literal">max_tokens</code> tokens, rather 
   than <code class="literal">max_tokens + 1</code>
  </p></li>
</ul></div>
<p>

  Code depending on either of these bugs will need to be fixed.
</p>
</li>
<li class="listitem"><p>
Deprecated functions that got removed:
<code class="function">g_set_error_handler()</code>, 
<code class="function">g_set_warning_handler()</code>,
<code class="function">g_set_message_handler()</code>, use 
<code class="function">g_log_set_handler()</code> instead.
</p></li>
</ul></div>
</div>
</div>
<div class="footer">
<hr>
          Generated by GTK-Doc V1.14</div>
</body>
</html>