Major change in API for creating sources to handle multiple main loops
[platform/upstream/glib.git] / NEWS
1 Overview of Changes in GLib 1.3.2:
2
3 GLib:
4
5 * Win32 build improvements  [Tor]
6 * Improvements to error reporting  
7   (g_critical(), g_return_if_reached()) [Darin]
8 * Add g_strlcpy/g_strlcat  [David Wheeler]
9 * New IO channel implementation for Win32  [Tor] 
10 * Make g_array_free, g_string_free return pointer to memory requested
11   not to be freed.  [Darin]
12 * Added GError based error reporting for thread functions.  [Sebastian]
13 * Moved reference docs into GLib distribution. [Owen]
14 * Added g_convert() for doing convenient character set conversions based
15   on iconv. (GLib now requires libiconv or a native iconv.) [Havoc/Owen]
16 * Various Unicode handling additions (g_ucs4_to_utf8, g_utf8_validate(),
17   g_{locale,filename}_{to,from}_utf8)  [Robert/Havoc/Owen]
18 * Portability fixes for threading.  [Sebastian]
19 * Added convenient functions for launching new processes (g_spawn_*),
20   and shell quoting/unquoting functions.  [Havoc]
21 * Split glib.h into many headers.  [Sebastian]
22 * Added a simple callback-based parser for XML-like files (GMarkup).  [Havoc]
23 * Fixed confusions between comparison functions that return <0, 0, >0
24   and equaility functions that return FALSE,TRUE.  [Sebastian]
25 * Added safe/portable temporary file manipulation functions.  [Tor]
26 * autoconf improvements.  [Raja]
27 * Many documentation improvements.
28 * Bug fixes.
29
30 GObject:
31
32 * Added boxed and pointer types.  [Tim/Jonathan]
33 * Added callback abstraction (GClosure)  [Tim]
34 * Added signal system (GSignal)  [Tim]
35 * Make GTypePlugin an interface  [Tim]
36 * Added GTypeModule - a simple GTypePlugin instantiation  [Owen]
37 * Bug fixes.
38
39 What's new in GLib 1.3.1:
40
41 * New GObject library added including object system based on
42   the GTK+ object system. 
43 * Functions for getting the properties of Unicode characters, 
44   computing the canonical decomposition and ordering combining
45   characters aand manipulating UTF-8 string manipulation based
46   on libunicode.
47 * GString now properly handles embedded nuls.
48 * Multiple fixes from the 1.2.x branch.
49 * Upgrade to libtool 1.3.3
50 * Full thread support (thread creation and destruction).
51 * BeOS port, BeOS dynamic modules.
52 * Many improvements to the Windows ports.
53 * Improvements to the OS/2 port, OS/2 module support.
54 * Double ended queue implementation.
55 * GLib macros for printf() formatting, e.g. G_GULONG_FORMAT = "lu"
56 * New configure option --enable-msg-prefix to prefix messages, warnings
57   et ceteri with the program name and the process id.
58 * New thread-safe random number generator Mersenne Twister.
59 * g_strcompress() added, g_strescape() had a slight API change, and
60   more tightly defined semantics.
61 * the g_string(x) macro has been removed, #x may be used instead.
62                                 
63 Overview of Changes in GLib 1.2.1:
64
65 * g_realloc() fix for SunOS (please report further problems).
66 * Continued the never ending fix vendetta regarding getpwuid(),
67   this time AIX has been the culprit.
68 * Upgrade to libtool 1.2f
69 * Miscellaneous other buglets fixed.
70
71 What's new in GLib 1.2.0 (since GLib 1.0.x):
72
73 * GLib is distributed seperatedly from Gtk+
74 * Win32 Portability
75 * Threading support
76 * GModule mechanism (implemented in an extra library) which wraps dynamic
77   object code loading facilities in a portable manner
78 * GIOChannel structure to encapsulate the IPC mechanism
79 * GQuarks and datasets
80 * GRelations for n-way mapping of certain data
81 * An n-way tree implementation
82 * GDate functionality for calendar date manipulations
83 * GAllocator type and associated functions
84 * Added generic callback maintenance functions (ghook)
85 * Generic functions for TAB completions
86 * Endian defines (G_*_ENDIAN)
87 * g_log() mechanism for logging of messages at different log levels
88 * Generic main-loop mechanism
89 * New glib-config helper script
90 * Many more API extensions
91
92 Overview of Changes in GLib 1.1.16:
93
94 * Allocate smaller pools of memory for glists, gslists, gnodes
95 * Bug Fixes
96
97 Overview of Changes in GLib 1.1.15:
98
99 * HPUX 11 thread system detection should now work
100 * Release the main loop lock around calls to prepare() and
101   check() so it is not held over user code
102 * A few Win32 fixups
103
104 Overview of Changes in GLib 1.1.14:
105
106 * Check for dlsym() in system libraries and -dl
107 * FreeBSD portability fixes
108 * Random bug fixes and autoconf/automake changes
109
110 Overview of Changes in GLib 1.1.13:
111
112 * Removed alloca() based function and macro variants again.
113 * Improved thread related configure tests.
114 * GSource destruction fixups.
115 * Fixed up idle function removal based on user_data pointer.
116 * Advanced Win32 portability.
117 * Enforced GSource's check(), prepare() and dispatch() constrains,
118   loop recursions may only happen from dispatch(), and check() as well
119   as prepare() are called while the main_loop lock is being held.
120 * GLib development now requires GNU autoconf 2.13, GNU automake 1.4
121   and GNU libtool 1.2d.
122 * Lots of random portability and bug fixes.
123
124 Overview of Changes in GLib 1.1.12:
125
126 * Added alloca functions/macros: g_strdup_a, g_strconcat3_a, g_alloca,
127   g_new_a, g_new0_a
128 * New tests structure.  Type 'make check' on your system to run them.
129 * Avoid unnecessary extra hook referencing in g_hook_list_marshal
130
131 Overview of Changes in GLib 1.1.11:
132
133 * provide defaults for POLL sysdefs
134 * g_main_is_running: new function to check whether a main loop has been quitted
135 * a few other enhancement/fixes
136
137 Overview of Changes in GLib 1.1.9:
138
139 * Check for pthread_attr_init in all cases, Digital Unix 4 requires this
140 * For G_LOCK_DECLARE_*, if !G_THREADS_ENABLED, eat trailing semicolon better
141 * Changed g_main_poll_(add|remove) to g_main_(add|remove)_poll
142
143 Overview of Changes in GLib 1.1.8:
144
145 * Added threading support
146   - The ability to specify a set of functions to be used for
147     locking at runtime.
148   - Default implementations of locking functions for pthreads,
149     Solaris threads, and (experimentally) NSPR.
150   - All static variables should now properly locked.
151   - Enhancements to the generic main-loop mechanism to be thread-safe.
152     (It is used for the main-loop in GTK+ as of GTK+-1.1.8)
153 * Portability fixes.
154
155 Overview of Changes in GLib 1.1.7:
156
157 * Removed multiple define from glibconfig.h
158
159 Overview of Changes in GLib 1.1.6:
160
161 * New GDate functionality for calendar date manipulations (g_date_*)
162 * New GAllocator type and associated functions
163 * New functions g_slist_copy and g_list_copy to duplicate a list with all
164   its data pointers.
165 * New function g_array_insert_vals and new macro g_array_insert_val to
166   insert elements at an arbitrary index
167 * GAllocators used for glist, gslist, gnode node allocations
168 * Incremental freezing in ghash
169 * New function g_hook_list_marshal_check to eventually destroy hooks after
170   they got marshalled
171 * Revised GIOChannel to provide generic virtual-function based interface
172 * Added generic main-loop abstraction
173 * Removed GListAllocator type and its g_*_allocator_*() function variants
174 * Bug fixes
175
176 Overview of Changes in GLib 1.1.5:
177
178 * Win32 portability
179 * GIOChannel structure to encapsulate the IPC mechanism 
180 * Reimplemented endian stuff, using inline asm for x86
181 * New functions:
182   - g_strescape: escapes backslashes
183   - g_path_is_absolute and g_path_skip_root
184   - g_getenv: expands environment variables that contain references 
185     to other environment variables
186   - g_scanner_sync_file_offset: rewind the filedescriptor to the current
187     buffer position and blow the file read ahead buffer
188   - g_array_remove_index: remove an entry, preserving the order
189   - g_array_remove_index_fast: remove an entry, order might be distorted
190   - g_ptr_array_remove: remove an entry, preserving the order 
191   - g_ptr_array_remove_fast: remove an entry, order might be distorted
192   - g_byte_array_remove_index: wrapper for g_array_remove_index
193   - g_byte_array_remove_index_fast: wrapper for g_array_remove_index_fast
194   - g_strncasecmp: modeled closely after g_strcasecmp
195   - g_list_sort, g_slist_sort: to merge sort GLists and GSLists
196 * New macros:
197   - G_DIR_SEPARATOR, G_DIR_SEPARATOR_S: platform-dependant file name
198     syntax elements
199   - G_SEARCHPATH_SEPARATOR, G_SEARCHPATH_SEPARATOR_S: platform-dependant
200     search path syntax conventions
201   - G_STRUCT_OFFSET, G_STRUCT_MEMBER_P, G_STRUCT_MEMBER: for handling
202     structure fields through their offsets
203 * Removed G_ENUM, G_FLAGS, G_NV, and G_SV macros
204 * Bug fixes
205
206 Overview of Changes in GLib 1.1.4:
207
208 * Added generic callback maintenance functions (ghook)
209 * New endian defines (G_*_ENDIAN)
210 * New string join/split/free routines 
211 * Fixes
212
213 Overview of Changes in GLib 1.1.3:
214
215 * New GModule mechanism (implemented in an extra library) which wraps dynamic
216   object code loading facilities in a portable manner.
217 * glib-config features extra "glib" (old behaviour remains) and "gmodule"
218   (add libgmodule.so to the --libs output) arguments now. this can also
219   be specified as fourth argument to the AM_PATH_GLIB() macro.
220 * Overhaul of the `inline' autoconfiguration stuff, so inlining should be
221   sufficiently supported on all systems that allow inlining now.
222 * New g_log() mechanism for logging of messages at different log levels,
223   associated with certain log domains (define -DG_LOG_DOMAIN for your library).
224 * New inline functions for bit masks tests.
225 * GNode macros (and functions) now return the newly allocated node.
226 * New macro G_VA_COPY() to work around va_list copying oddities on some
227   platforms. the non-static g_vsprintf() function vanished in favour of
228   a publically exported g_strdup_vprintf().
229   People that used the former g_vsprintf() would definitely want to read the
230   associated ChangeLog entries (grep for printf).
231 * New utility functions:
232   g_strndup(), g_on_error_query(), g_on_error_stack_trace(), g_strdup_printf(),
233   g_strdup_vprintf(), g_printf_string_upper_bound(), g_spaced_primes_closest(),
234   g_strnfill(), g_memdup(). 
235 * Overhaul of the array implementations, this contains some source incompatible
236   changes. Again, the ChangeLog is much more informative (grep for garray.c).
237 * The internals of the g_dataset mechanism are now exported through the
238   new g_datalist_* API (this is also the underlying implementation for the
239   keyed data of GtkObjects).
240 * New function g_atexit(), use of the ATEXIT() macro is discouraged.
241 * Better configure checks for ansi compliance.
242 * Libtool update to version 1.2b.
243 * Lotsa bug fixes and cleanups as always ;)
244
245 Overview of Changes in GLib 1.1.2:
246
247 * Fixed packaging mistake which occured in 1.1.1
248 * fix 64-bitness in g_prints in glibtest
249
250 What is new in GLib 1.1.1:
251
252 * An n-way tree implementation is provided now, based on the GNode structure.
253 * Bugfix for pointer arrays.
254
255 What is new in GLib 1.1.0:
256
257 * GLib is distributed seperatedly from Gtk+ now and uses a sophisticated
258   shared library versioning scheme to deal with interface and binary
259   incompatibilities.
260 * There is a glib-config helper script installed now.
261 * Fixups all over the place.
262 * gboolean is now a gint, not a gchar anymore.
263 * API extensions for GList and GSList.
264 * New g_str*() functions for simple string handling.
265 * GScanner extensions for scope, warning and error handling.
266 * Minor performance improvements for GMemChunks.
267 * Implementations of GQuarks and datasets (similar to GtkObjects data
268   mechansim, but works for generic memory locations).
269 * More convenience macros for GNU C function arguments.
270 * Const correction all over the place, including a new pointer type
271   gconstpointer.
272 * Generic functions for TAB completions.
273 * GRelations for n-way mapping of certain data.