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