d702de9634c6de6196e995c0a390ed745b0d23c6
[platform/upstream/glib.git] / ChangeLog.pre-2-10
1 Tue Jan 31 12:33:48 2006  Tim Janik  <timj@imendio.com>
2
3         * configure.in: generate build/win32/vs8/Makefile, to fix build breakage.
4
5 2006-01-30  David Schleef  <ds@schleef.org>
6
7         * glib/grand.c: Update URL
8
9 2006-01-29  Sven Herzberg  <herzi@gnome-de.org>
10
11         * docs/reference/gobject/tmpl/param_value_types.sgml: tell how to
12         create container classes which are as flexible as a GValue is
13
14 2006-01-27  Matthias Clasen  <mclasen@redhat.com>
15
16         * configure.in: Bump version
17
18         * === Released 2.9.5 ===
19
20         * glib/glib.symbols: Add g_mem_gc_friendly as an exported
21         variable.
22
23         * NEWS: Updates
24
25 2006-01-26  Matthias Clasen  <mclasen@redhat.com>
26
27         * glib/gmem.c (g_mem_init_nomessage): Fix C99isms.  (#328705, 
28         Kazuki Iwamoto)
29
30 Wed Jan 25 19:16:57 2006  Tim Janik  <timj@imendio.com>
31
32         * fixed buglets reported by Jens Granseuer in #328254.
33
34         * configure.in: free the memory allocated in posix_memalign() tests.
35
36         * glib/gslice.c: spelling fixes.
37
38 Wed Jan 25 16:39:18 2006  Tim Janik  <timj@imendio.com>
39
40         * glib/gslice.c: honour g_mem_gc_friendly settings when freeing
41         slices, make sure g_mem_gc_friendly is properly initialized.
42
43         * gmem.[hc]: ensure g_mem_gc_friendly is initialized from G_DEBUG upon
44         the first allocation. applied some branching optimizations.
45
46         * docs/macros.txt: reflected --enable-gc-friendly change and
47         described ENABLE_GC_FRIENDLY_DEFAULT as well as G_DEBUG=gc-friendly.
48
49         * configure.in: changed --enable-gc-friendly=yes to define
50         ENABLE_GC_FRIENDLY_DEFAULT.
51
52         * glib/garray.c: changed ENABLE_GC_FRIENDLY macro #ifdef-s to
53         if (G_UNLIKELY (g_mem_gc_friendly)).
54
55         * glib/gtree.c:
56         * glib/ghash.c: removed ENABLE_GC_FRIENDLY code which is now taken
57         care of by g_slice_free1().
58
59         * tests/slice-test.c: fixed leaks, reported by Kjartan Maraas.
60
61 Tue Jan 24 17:49:36 2006  Tim Janik  <timj@imendio.com>
62
63         * glib/gslice.c: only use posix_memalign() if it's known to work,
64         revert to memalign() otherwise.
65
66         * configure.in: check for broken posix_memalign() implementations
67         to fix #328254.
68
69 2006-01-24  Matthias Clasen  <mclasen@redhat.com>
70
71         * tests/unicode-encoding.c: Use UTF-16LE as target encoding
72         on all little-endian systems.  (#143380, Marc Moorcroft)
73
74 2006-01-23  Matthias Clasen  <mclasen@redhat.com>
75
76         * configure.in: Change the shared libary extension for hpux-ia64
77         to so.  (#328253, The Written Word)
78
79 Mon Jan 23 17:30:33 2006  Tim Janik  <timj@imendio.com>
80
81         * glib/gutils.c (_g_getenv_nomalloc): wiped out all the wonderfull
82         G_OS_WIN32 code i wrote ;-[) after tml told me windows has getenv()
83         as well.
84
85 Mon Jan 23 16:46:20 2006  Tim Janik  <timj@imendio.com>
86
87         * glib/gslice.c (slice_config_init): initialize GSlice config from
88         G_SLICE environment variable. we support G_SLICE=always-malloc
89         currently, which forces all g_slice_*() allocations to use the system
90         malloc instead.
91
92         * glib/gutils.c: 
93         g_parse_debug_string(): added a note about not using g_malloc() here.
94         _g_getenv_nomalloc(): getenv() variant that doesn't use g_malloc or 
95         g_slice. contains only guesswork in the WIN32 branch.
96
97 2006-01-18  Matthias Clasen  <mclasen@redhat.com>
98
99         * Bump version
100         
101         * === Released 2.9.4 ===
102
103         * NEWS: Updates
104
105 2006-01-17  Matthias Clasen  <mclasen@redhat.com>
106
107         * glib/gkeyfile.c (g_key_file_get_groups): Correct a g_new0()
108         call.  (#327421, Morten Welinder)
109
110 2006-01-17  Sebastian Wilhelmi  <seppi@seppi.de>
111
112         * glib/gthreadpool.c: To avoid deadlocks get rid of the settings
113         G_LOCK. Use the unused_thread_queue lock instead. Change
114         g_thread_pool_thread_proxy such that threads only wait on
115         non-exlusive pools for at most a 1/2 second. Do not reorder tasks
116         due to superfluous tasks. Global tasks wait at most for
117         max-idle-time milliseconds. Make sure, that no task is woken up
118         twice for the same event via a wakeup_serial. This fixes #324228.
119
120         * tests/threadpool-test.c: Adapt test accordingly. Do not pass
121         invalid NULL into the thread pools. This as well fixes #327290.
122
123 2006-01-16  Matthias Clasen  <mclasen@redhat.com>
124
125         * configure.in: Bump version
126
127         * === Released 2.9.3 ===
128
129         * NEWS: Updates
130
131         * glib/gthread.h (g_static_mutex_get_mutex_impl_shortcut): 
132         Rework the strict aliasing fix to not break C++, pointed
133         out by Murray Cumming.
134         
135         * glib/gasyncqueue.c (g_async_queue_push_sorted_unlocked):
136         Signal waiting threads, problem noticed by Christian Kellner.
137
138 2006-01-16  Matthias Clasen  <mclasen@redhat.com>
139
140         Fix bug 326747, Alberto Ruiz:
141         
142         * glib/gconvert.c (make_valid_utf8): Change this function to
143         replace unknown characters by the Unicode replacement character
144         instead of '?', and don't append "(invalid encoding)".
145         (g_filename_display_name, g_filename_display_basename): Document
146         how to determine if the filename was in an invalid encoding.
147
148 2006-01-14  Matthias Clasen  <mclasen@redhat.com>
149
150         * glib/gtree.c: Replace the simple recursive implementation
151         by a nonrecursive, threaded implementation by Maurizio 
152         Monge.  (#169285)
153
154 2006-01-12  Matthias Clasen  <mclasen@redhat.com>
155
156         * tests/asyncqueue-test.c (main): Fix the
157         assert to not always trigger.  (#326558, 
158         Daichi Kawahata)
159
160 2006-01-11  Matthias Clasen  <mclasen@redhat.com>
161
162         * tests/convert-test.c: Don't test items_read and
163         items_written in error cases where it is not set.
164
165         * tests/asyncqueue-test.c: Set error to NULL.
166
167 2006-01-08  Matthias Clasen  <mclasen@redhat.com>
168
169         * glib/gtree.c: Break some long lines.
170
171         * tests/tree-test.c: Add more tests.
172
173         * glib/gslice.c: Include config.h first, pointed out
174         by Bogdan Nicula.
175
176 2005-12-20  Sven Herzberg  <herzi@gnome-de.org>
177
178         * docs/reference/gobject/tmpl/gtype.sgml: explain that
179         G_TYPE_INSTANCE_GET_CLASS() does behave different during
180         initialization
181
182 2006-01-06  Matthias Clasen  <mclasen@redhat.com>
183
184         * glib/gslice.c: Only define _XOPEN_SOURCE if we know
185         that we have posix_memalign().  (#323937, Bogdan Nicula)
186
187 2006-01-05  Matthias Clasen  <mclasen@redhat.com>
188
189         * configure.in: Bump version
190
191         * === Released 2.9.2 ===
192
193 2006-01-05  Hans Breuer  <hans@breuer.org>
194
195         * glib/makefile.msc.in : added gslice.obj
196
197 2006-01-05  Matthias Clasen  <mclasen@redhat.com>
198
199         * NEWS: Updates
200
201         * glib/gmain.c: Clarify the documentation of source ids
202         a bit.  (#325874, Dan Williams)
203
204         * configure.in: Fix another strict aliasing problem.
205
206         * glib/gthreadpool.c: Avoid use of varargs macro.  (#325864,
207         Kazuki IWAMOTO)
208
209 2006-01-04  Manish Singh  <yosh@gimp.org>
210
211         * glib/glib.symbols
212         * glib/gstdio.h: don't macroized g_access, g_chdir, and g_unlink
213         either, since they have the same issue as g_rmdir. (Related to
214         bug #325249)
215
216 Wed Jan  4 13:33:25 2006  Tim Janik  <timj@gtk.org>
217
218         * glib/gslice.c (magazine_cache_pop_magazine): don't reverse chunk 
219         order when creating magazines, so we hand out chunks with ascending
220         adresses.
221
222 2006-01-04  Abel Cheung  <maddog@linuxhall.org>
223
224         * configure.in: Added "ml" "zh_HK" to ALL_LINGUAS.
225
226 2006-01-03  Martyn Russell  <martyn@imendio.com>
227
228         * docs/reference/glib/glib-sections.txt:
229         * glib/glib.symbols:
230         * glib/gthreadpool.[ch]:
231         - Added new API g_thread_pool_get_idle_time() and
232         g_thread_pool_set_idle_time(). (#324228).
233         
234         * tests/threadpool-test.c: 
235         - Updated test case to do thread pool sorting, thread pool with
236         no sorting and a thread pool with idle thread timeouts.
237         
238 2006-01-03  Matthias Clasen  <mclasen@redhat.com>
239         
240         * glib/gmain.h: Add new functions here, too.
241
242         * glib/glib.symbols: Add new functions.
243
244 2005-12-20  Michael Meeks  <michael.meeks@novell.com>
245
246         * glib/gmain.c (g_main_context_is_owner): new method
247         to determine if the current thread is the owner of the
248         context.
249
250 2006-01-02  Matthias Clasen  <mclasen@redhat.com>
251
252         * glib/glib.symbols: 
253         * glib/gstdio.h: 
254         * glib/gstdio.c (g_rmdir): Don't provide g_rmdir() as a macro
255         expanding to rmdir, since rmdir is not declared in a portable
256         system header we can include in gstdio.h.  (#325249, Jani Monoses)
257
258 2006-01-01  Tor Lillqvist  <tml@novell.com>
259
260         * glib/gspawn-win32.c (g_spawn_sync_utf8): Set the GIOChannels for
261         stdout and stderr to unbuffered. Otherwise the giochannel layer
262         will try to read from them regardless whether the
263         g_io_channel_win32_poll() call here has indicated
264         readability or not. (#325310)
265
266 2005-12-29  Matthias Clasen  <mclasen@redhat.com>
267
268         * glib/gutils.c (glib_check_version): Fix a copy-and-paste error
269         in the docs.  (#325273, Declan Naughton)
270
271 2005-12-27  Manish Singh  <yosh@gimp.org>
272
273         * tests/run-collate-tests.sh: use LC_ALL instead of LC_COLLATE, to
274         make sure we really override things.
275
276 2005-12-27  Matthias Clasen  <mclasen@redhat.com>
277         
278         Fix #316221, Michal Benes, Stanislav Brabec;
279
280         * configure.in: Fix a strict aliasing problem in 
281         g_static_mutex_get_mutex(). 
282         * glib/gthread.h: ...and in 
283         g_static_mutex_get_mutex_impl_shortcut().
284
285         * glib/gdatasetprivate.h: Add a cast to silence compiler
286         warnings.  (#321978, Andrew Paprocki)
287
288         Partial fix for bug #323937, Bogdan Nicula.
289
290         * configure.in: Check for malloc.h
291         * glib/gslice.c: Don't include malloc.h unconditionally.
292
293 2005-12-27  Manish Singh  <yosh@gimp.org>
294
295         * tests/run-collate-tests.sh: export LC_COLLATE so it takes.
296         (#324950, Dan Yefimov)
297
298 2005-12-26  Matthias Clasen  <mclasen@redhat.com>
299
300         * glib/gslice.c: On Win32, include process.h  (#325015, Kazuki
301         Iwamoto)
302
303 2005-12-25  Matthias Clasen  <mclasen@redhat.com>
304
305         * AUTHORS: Update my email
306
307         * tests/slice-test.c: Fix C99isms.  (#324950, Dan Yefimov)
308
309 2005-12-21  Matthias Clasen  <mclasen@redhat.com>
310         
311         * README.in: Add some notes on when 'make check' may fail.
312
313 2005-12-20  Matthias Clasen  <mclasen@redhat.com>
314
315         * glib/glib.symbols: 
316         * glib/gthreadpool.h: 
317         * glib/gthreadpool.c (g_thread_pool_set_sort_function): New function
318         to sort tasks pushed into a threadpool.  (#324479, Martyn Russell)
319
320         * tests/threadpool-test.c: Test this.
321
322 Tue Dec 20 18:14:14 2005  Tim Janik  <timj@imendio.com>
323
324         * glib/gslice.[hc]: added mem_error() and mem_assert() to test and 
325         handle  errors without depending on gmessage.c which might not be
326         setup when the error occours.
327         removed G_SLICE_CONFIG_ALWAYS_FREE config option, fixed the code so
328         always freeing can be achieved by adjusting the working set time to
329         0 with G_SLICE_CONFIG_WORKING_SET_MSECS.
330         added G_SLICE_CONFIG_COLOR_INCREMENT to test different color increments
331         (mainly 0 and 1). reduced the minimum block size to 128 bytes, to
332         minimize wastage if small amounts of differently sized structrues are
333         allocated, this does come at a performance cost of roughly 5% though.
334         fixed up block alignment calculation, so it works for varying
335         block sizes. only use strerror() not g_strerror() since the latter
336         depends on working GQuark and GSlice.
337         mem_error(): implemented in terms of fprintf and vfprintf.
338
339         * tests/slice-color.c: new program to test cache colorization effects.
340
341         * tests/slice-test.c: trade G_SLICE_CONFIG_ALWAYS_FREE for 0 duration
342         G_SLICE_CONFIG_WORKING_SET_MSECS.
343
344 2005-12-17  Matthias Clasen  <mclasen@redhat.com>
345
346         * glib/goption.c (parse_short_option): Set an error in all
347         failure cases.  (#324332, Tim-Philipp Müller) 
348
349 2005-12-17  Sebastian Wilhelmi  <seppi@seppi.de>
350
351         * glib/gatomic.c: Fix memory barrier position in g_atomic_int_get
352         and g_atomic_pointer_get. Add g_atomic_int_set and
353         g_atomic_pointer_set implementations for the !DEFINE_WITH_MUTEXES &&
354         G_ATOMIC_OP_MEMORY_BARRIER_NEEDED case, as well as defining them
355         as functions (additionally to the macros in the header) for the 
356         !G_ATOMIC_OP_MEMORY_BARRIER_NEEDED case.
357
358 2005-12-16  Matthias Clasen  <mclasen@redhat.com>
359
360         *  glib/gmem.c (g_allocator_new): Don't return a pointer to
361         a const struct, since apps expect to be able to modify it. 
362         (#324179, J. Ali Harlow)
363
364 Tue Dec 13 10:13:32 2005  Tim Janik  <timj@imendio.com>
365
366         * glib/gatomic.h: added g_atomic_pointer_set() and g_atomic_int_set()
367         for systems where the initialization of atomic variables requires a
368         write memory barrier.
369
370 2005-12-09  Matthias Clasen  <mclasen@redhat.com>
371
372         * configure.in: Bump version
373
374         * === Released 2.9.1 ===
375
376 2005-12-09  Alexander Larsson  <alexl@redhat.com>
377
378         * glib/glist.h: 
379         * glib/gslist.h:
380         Use G_GNUC_WARN_UNUSED_RESULT on list functions that return
381         the whole list.
382
383 2005-12-08  Matthias Clasen  <mclasen@redhat.com>
384
385         * NEWS: Updates
386
387 2005-12-07  Martyn Russell  <martyn@imendio.com>
388
389         * glib/gasyncqueue.c:
390         - Call g_queue_insert_sorted() instead of duplicating the code.
391         - Call g_queue_sort() instead of duplicating the code.
392         - Invert sort function results to make sure the same sort function
393         gives the same results across glist, gslist, gqueue and
394         gasyncqueue.
395
396         * tests/asyncqueue-test.c:
397         - Updated the sort function to reflect the example in the
398         documentation for gasyncqueue.c.
399
400 2005-12-07  Martyn Russell  <martyn@imendio.com>
401
402         * docs/reference/glib/glib-sections.txt:
403         * docs/reference/glib/tmpl/linked_lists_double.sgml:
404         * docs/reference/glib/tmpl/linked_lists_single.sgml:
405         * glib/glist.[ch]: 
406         * glib/gslist.[ch]: 
407         - Added g_list_insert_sorted_with_data () and
408         g_slist_insert_sorted_with_data ().
409         - Removed the extra check in g_list_sort() and g_slist_sort() for
410         GCompareDataFunc vs. GCompareFunc.
411         
412 2005-12-07  Tor Lillqvist  <tml@novell.com>
413
414         * glib-gettextize.in: Look up prefix at run-time on Win32,
415         assuming the standard directory structure with glib-gettextize in
416         $prefix/bin.
417
418 2005-12-06  Matthias Clasen  <mclasen@redhat.com>
419
420         * glib/gmem.h: Exempt GTK+ from the mem chunk deprecation, since
421         we need GTK+ 2.8 to compile against GLib 2.10.
422
423 2005-12-05  Manish Singh  <yosh@gimp.org>
424
425         * tests/run-collate-test.sh: set LC_COLLATE, not LANG, to be sure
426         to override any user settings.
427
428 2005-12-05  Matthias Clasen  <mclasen@redhat.com>
429
430         * configure.in: Revert an accidential commit
431
432 2005-12-05  Matthias Clasen  <mclasen@redhat.com>
433
434         * glib/gutf8.c: Documentation updates.  (#323291, Morten Welinder)
435
436         * tests/Makefile.am (TESTS_ENVIRONMENT): 
437         * tests/gobject/Makefile.am (TESTS_ENVIRONMENT): Set
438         MALLOC_CHECK_ and MALLOC_PERTURB_
439
440         * tests/run-collate-tests.sh: Run the collation tests explicitly 
441         in en_US locale. (#320463)
442
443         * glib/gmem.h: Really deprecate GMemChunk.
444
445         * glib/gdate.c: 
446         * glib/gutils.c: 
447         * glib/gtree.c: 
448         * glib/gstring.c: 
449         * glib/giochannel.c: 
450         * glib/gstrfuncs.c: Add versioned deprecation docs. 
451
452 2005-12-05  Martyn Russell  <martyn@imendio.com>
453
454         * docs/reference/glib/glib-sections.txt:
455         * glib/gasyncqueue.[ch]:
456         - Added support for sorting async queues by with _push_sorted(),
457         _push_sorted_unlocked(), _sort() and _sort_unlocked() (#323047).
458         
459         * tests/Makefile.am:
460         * tests/asyncqueue-test.c:
461         - Added test case for gasyncqueue.c
462
463 Mon Dec  5 15:53:20 2005  Tim Janik  <timj@imendio.com>
464
465         * glib/gslice.c: implement chain walking for arbitrary ->next pointer
466         offsets in g_slice_free_chain_with_offset() based on a patch by behdad
467         in bug 323178. moved time consuming logic from g_slice_free() out of
468         the inner loop, so g_slice_free_chain_with_offset() provides a real
469         performance benefit over g_slice_free1() now.
470         
471         * glib/gslice.h: renamed g_slice_free_chain() to
472         g_slice_free_chain_with_offset(). implemented g_slice_free_chain() as
473         a type-safe macro as suggested in bug 323178.
474         simplified the macro implementation of g_slice_free() and implemented
475         it in a type safe manner for all compliers as suggested by Morten
476         Welinder <mortenw@gnome.org>.
477
478         * glib/gmain.c:
479         * glib/glist.c:
480         * glib/gslist.c:
481         * glib/glib.symbols: s/g_slice_free_chain/g_slice_free_chain_with_offset/
482
483 2005-12-05  Matthias Clasen  <mclasen@redhat.com>
484
485         * glib/gasyncqueue.c: Add some docs.
486
487         * tests/libmoduletestplugin_a.c: Fix compiler warnings.
488
489         * glib/gatomic.c: In the ia64 implementation, use
490         __sync builtin without _si or _di suffix.  (#321229,
491         Stanislav Brabec, patch by Andreas Schwab)
492
493 2005-12-04  Behdad Esfahbod  <behdad@gnome.org>
494
495         * glib/gslice.h: Remove comma at the end of enum.
496
497 2005-12-04  Matthias Clasen  <mclasen@redhat.com>
498
499         Handle multiple user names with the same UID better.
500         (#319535, Laszlo Peter)
501         
502         * glib/gutils.c (g_get_any_init_do): When determining user
503         data, first look up $LOGNAME. If the UID doesn't match
504         getuid(), fall back to the current behaviour of looking
505         up the user data based on getuid().
506
507 2005-12-04  Matthias Clasen  <mclasen@redhat.com>
508
509         * glib/gmacros.h (G_GNUC_WARN_UNUSED_RESULT): Add a macro
510         to make gcc warn if a function result is ignored.  (#145466,
511         Arjan van de Ven, Alex Larsson)
512
513         * glib/gmem.h: Add the new attribute to g_realloc and 
514         g_try_realloc.
515
516 2005-12-03  Matthias Clasen  <mclasen@redhat.com>
517
518         * glib/glib.symbols: 
519         * glib/gcache.h: Deprecate g_cache_value_foreach. (#322956,
520         Nicolas Caniart)
521
522         * glib/gmappedfile.c: Make mapping of empty files
523         work.  (#321530)
524         
525         * glib/gfileutils.c: Don't fork a new process just to 
526         fix the permissions of the created temp file.  (#321318,
527         Alexis S. L. Carvalho)
528
529 2005-12-02  Matthias Clasen  <mclasen@redhat.com>
530
531         * README.in: Add a note about Solaris threads.
532
533         * glib/gspawn.c:
534         * configure.in: Remove support for Solaris threads. 
535         (#136971, Sebastian Wilhelmi, patch by Andrew Paprocki)
536
537 2005-12-02  Matthias Clasen  <mclasen@redhat.com>
538
539         * configure.in: Define G_GUINT64_CONSTANT in analogy to
540         G_GINT64_CONSTANT.  (#322568, Andrew Paprocki)
541
542 2005-12-02  Matthias Clasen  <mclasen@redhat.com>
543
544         * glib/gslice.c: Win32 portability fixes and C99ism removal,
545         pointed out by Kazuki Iwamoto.  (#323052)
546         
547 2005-12-02  Matthias Clasen  <mclasen@redhat.com>
548
549         * glib/gatomic.c (g_atomic_int_add): Add a missing volatile for
550         the IA64 implementation.
551
552 Fri Dec  2 16:18:09 2005  Tim Janik  <timj@imendio.com>
553
554         * glib/gslice.c: some naming and type size fixups.
555
556 Fri Dec  2 13:08:58 2005  Tim Janik  <timj@gtk.org>
557
558         * glib/gslice.h (g_slice_free): reworked GCC-specific type-safe macro
559         variant into something less verbose, but digestible for gcc-3.4.
560
561 Fri Dec  2 10:55:07 2005  Tim Janik  <timj@imendio.com>
562
563         * tests/slice-test.c: extended to perform the benchmarking on the old
564         memchunk code if 'O' is selected.
565
566         * tests/memchunks.c: new file which contains the old GLib mem chunks
567         implementation with prefix old_mem_chunk_.
568
569         * tests/Makefile.am: added memchunks.c
570
571 Fri Dec  2 00:16:59 2005  Tim Janik  <timj@imendio.com>
572
573         * glib/gslice.c: improved gettimeofday() timer resolution by maintaining
574         acceptable load distribution of the syscall.
575         (allocator_get_magazine_threshold): reduce minimum/single-thread magazine
576         sizes to approximately page_size/2.5 to avoid excessive startup allocations.
577
578 2005-12-01  Matthias Clasen  <mclasen@redhat.com>
579
580         * tests/gobject/ifacecheck.c (test_iface_base_init): Don't
581         double-free base interface members.
582
583         * tests/Makefile.am: Remove duplicate variable.
584
585 Thu Dec  1 17:32:46 2005  Tim Janik  <timj@imendio.com>
586
587         * glib/gslice.[hc]: new slice allocator implementation.
588
589         * tests/slice-test.c: added random slice allocation test.
590
591         * glib/gthread.[hc]: removed newly added private thread mem API.
592
593         * glib/gthreadinit.h:
594         * glib/gmessages.c:
595         * glib/gthread.c:
596         * glib/gmem.c: divided glib threading initialisation into three phases,
597         initialisation where private keys and messaging are not available (only
598         needed by gmem.c), initialisation without messaging but private keys
599         available (gslice.c, gmessage.c), and full fledged initialisers that
600         server the rest of glib. initialisation functions got renamed to reflect
601         the limitations of their corresponding phases.
602
603         * glib/gmem.c: removed memchunk code, defer allocations to 
604         g_slice_* instead.
605
606         * glib/gmem.[hc]: removed g_slice_* skeletons.
607
608         * glib/glib.symbols: added g_slice_* symbols.
609
610         * configure.in: check for availability of posix_memalign(3), memalign(3)
611         and valloc(3). 
612
613         * glib/Makefile.am: added gslice.[hc].
614
615 2005-12-01  Tor Lillqvist  <tml@novell.com>
616
617         * glib/gstdio.c (g_stat): In the Win32 implementation, strip
618         trailing slash(es) for non-root folders. stat() fails if non-root
619         folders are specified with trailing slashes. It's too much hassle
620         to demand that callers strip such slashes themselves, especially
621         as it is easy to get it wrong and strip the slash of a root
622         folder.
623         (g_rename): On NT-based Windows, use MoveFileEx() with
624         MOVEFILE_REPLACE_EXISTING to better match Unix behaviour.
625
626 2005-11-28  Matthias Clasen  <mclasen@redhat.com>
627
628         Fix G_STMT_START / G_STMT_END on Solaris.  (#321972,
629         Andrew Paprocki)
630         
631         * configure.in: Check whether do { } while (0) works.
632
633         * glib/gmacros.h: Use do { } while (0) for G_STMT_START / 
634         G_STMT_END if it works.
635         
636 2005-11-28  Matthias Clasen  <mclasen@redhat.com>
637
638         * glib/gthread.c (g_static_rw_lock_wait, g_static_rw_lock_signal): 
639         * glib/gnode.c (g_node_depth_traverse_level): 
640         * glib/gmem.c (g_allocator_new): 
641         * glib/ghash.c (g_hash_table_unref, g_hash_table_destroy) 
642         (g_hash_table_foreach_remove_or_steal): Silence compiler
643         warnings.
644
645 2005-11-27  Matthias Clasen  <mclasen@redhat.com>
646
647         * glib/gunicollate.c (g_utf8_collate_key_for_filename): 
648         Don't read beyond len.  (#322520, Christian Persch)
649
650 Wed Nov 23 17:34:01 2005  Tim Janik  <timj@imendio.com>
651
652         * glib/gdataset.c: access datalist flags via atomic pointer access
653         functions, instead of acquiring the dataset lock. this is faster and
654         also matches the atomic pointer readouts in gdatalistprivate.h and
655         direct pointer modifications required by gobject.c.
656
657 Wed Nov 23 13:35:31 2005  Tim Janik  <timj@gtk.org>
658
659         * glib/gdataset.c: streamlined initialization code somewhat,
660         removed GData node cache.
661
662 2005-11-22  Matthias Clasen  <mclasen@redhat.com>
663
664         * glib/ghash.c (g_hash_table_ref): 
665         (g_hash_table_unref): Mark these as new API.
666
667         Avoid double locking in g_intern_string (#322133,
668         Benedikt Meurer)
669
670         * glib/gdataset.c (g_quark_from_string_internal): New 
671         internal function which factors out common parts of 
672         g_quark_from[_static]_string.
673         (g_quark_from_string, g_quark_from_static_string):
674         Use g_quark_from_string_internal.
675         (g_intern_string, g_intern_static_string): Use
676         g_quark_from_string_internal, and only take the
677         lock once.
678         (g_quark_new): Don't store the strings shifted by -1
679         in the g_quarks array.
680         (g_quark_to_string): Adapt to the previous change.
681
682 Tue Nov 22 14:04:26 2005  Tim Janik  <timj@imendio.com>
683
684         * glib/ghash.h: 
685         * glib/ghash.c: 
686         g_hash_table_new_full(): create hash tables with a ref count of 1.
687         g_hash_table_ref(): atomically ref_count+=1
688         g_hash_table_unref(): atomically ref_count-=1, destroys hash table
689         when refcount reaches 0.
690         g_hash_table_destroy(): just destroy keys and values, unref by 1.
691         g_hash_table_insert(): 
692         g_hash_table_replace(): assert ref_count>0.
693
694         * glib/gatomic.h: 
695         * glib/gatomic.c: added 'volatile' qualifier to all atomic pointer and
696         integer pointers.
697
698 2005-11-20  Behdad Esfahbod  <behdad@gnome.org>
699
700         * glib/guniprop.c (g_unichar_get_mirror_char): Remove unused
701         variables. (#321984, Andrew Paprocki)
702
703 2005-11-18  Matthias Clasen  <mclasen@redhat.com>
704
705         * configure.in: Bump version
706
707 2005-11-17  Matthias Clasen  <mclasen@redhat.com>
708
709         * === Released 2.9.0 ===
710
711         * glib/glib.symbols: Updates
712
713         * glib/gutf8.c (g_utf8_offset_to_pointer): Add some performance
714         hints to the docs. (Paolo Borelli)
715         
716         * NEWS: Updates
717
718         * glib/gthread.c (g_thread_foreach): Mark as new api.
719
720         * README.in: Updates.
721
722         * glib/glib.symbols: 
723         * glib/gdate.h: 
724         * glib/gdate.c (g_date_set_time_t): 
725         (g_date_set_time_val): Add functions to set a date from
726         a time_t and from a GTimeVal.
727         (g_date_set_time): Deprecate.  (#314067, Roger Leigh)
728         
729         * tests/Makefile.am:
730         * tests/utf8-pointer.c: Unit tests for g_utf8_pointer_to_offset
731         and g_utf8_offset_to_pointer.
732
733         * glib/gutf8.c (g_utf8_pointer_to_offset) 
734         (g_utf8_offset_to_pointer): Handle negative offsets, and use
735         "stutter stepping" for going backwards. (#320638, Larry
736         Ewing)
737
738         * glib/gbacktrace.c:
739         * glib/gdate.c:
740         * glib/gthread.c: const correctness fixes, found
741         by Arjan van de Ven and gcc.
742         
743 2005-11-16  Behdad Esfahbod  <behdad@gnome.org>
744
745         * docs/reference/glib/tmpl/unicode.sgml: Correct typo on mentioning
746         @G_UNICODE_BREAK_UNKNOWN that should be #G_UNICODE_BREAK_UNKNOWN.
747
748 2005-11-09  Behdad Esfahbod  <behdad@gnome.org>
749
750         * glib/guniprop.c: Use bit hacks instead when checking a general
751         category value against multiple values.
752
753         * glib/gutf8.c: Change ISO10646 to Unicode in docs.
754
755 2005-11-10  Simos Xenitellis  <simos@gnome.org>
756
757         * configure.in: Added tt (Tatar) to ALL_LINGUAS.
758
759 2005-11-05  Tor Lillqvist  <tml@novell.com>
760
761         * glib/giowin32.c (g_io_win32_set_flags): Don't call g_warning().
762         (#320688) Instead set error and return failure.
763
764 2005-11-07  Matthias Clasen  <mclasen@redhat.com>
765
766         * glib/gmain.c (g_main_dispatch): Don't call cb_funcs->unref
767         while holding the context lock.  (#320886, Andy Wingo)
768
769 2005-11-07  Billy Biggs <vektor@dumbterm.net>
770
771         * tests/refcount/Makefile.am: Add a missing reference to libglib
772         in the LDADD for this test.
773
774 2005-11-07  Matthias Clasen  <mclasen@redhat.com>
775
776         * glib/gmem.c (g_allocator_new): We need to set n_preallocs to a
777         nonzero value, otherwise GTK+ 2.8 breaks when compiled against
778         GLib 2.9.  (#320755, Luca Ferretti)
779
780 2005-11-04  Matthias Clasen  <mclasen@redhat.com>
781
782         * glib/Makefile.am: Apply a patch from Behdad Esfahbod to 
783         use a faster lookup table for g_unichar_get_mirror_char().
784         * glib/gmirroringtable.h: The new table.
785         * glib/gunichartables.h: Remove bidi_mirroring_table.
786         * glib/gen-unicode-tables.pl: Don't generate the mirroring
787         table.
788         * glib/glib-mirroring-tab/*: Sources for the program
789         which generated gmirroringtable.h.
790
791         * glib/glist.c: Avoid some code duplication.
792
793         * glib/gscanner.h: Include gdataset.h.  (#320322)
794
795         * glib/gdebug.h: add new GDebugFlag for fatal_criticals
796         * glib/gmessages.c: (_g_debug_init): handle G_DEBUG=fatal_criticals,
797         to help find critical warnings in applications.  (#320017,
798         Vincent Untz)
799
800 2005-11-02  Tor Lillqvist  <tml@novell.com>
801
802         * glib/glib.symbols: Remove large amount of trailing whitespace
803         from one line. Remove #ifdef G_UNDEFINED from around
804         g_hash_table_new and g_hash_table_new_full symbols, what was the
805         purpose of that? Add the g_slice functions.
806
807 Tue Nov  1 16:24:20 2005  Tim Janik  <timj@imendio.com>
808
809         * glib/gmem.[hc]: prepared deprecation of GMemChunk and GAllocator.
810         added g_slice_*() API to allocate and cache small bits of memory.
811         an actuall allocator implementation for g_slice_*() is still pending.
812
813         * glib/gthread.[hc]: changes from a patch by Matthias Clasen.
814         changed GRealThread list to use in-structure *next; fields instead
815         of GSList, in order for thread iteration to not depenend on g_slice_*()
816         indirectly.
817         _g_thread_mem_private_get():
818         _g_thread_mem_private_set(): added accessors for private memory,
819         needed because the ordinary GPrivate implementation relies on GArray
820         and GSList and therefore indirectly on working g_slice_*() allocations.
821
822         * glib/gthread.[hc]:
823         g_thread_foreach(): new public API function to loop over all existing threads.
824
825         * glib/gdataset.c:
826         * glib/gstring.c:
827         * glib/gcache.c:
828         * glib/garray.c: 
829         * glib/gqueue.c:
830         * glib/gslist.c:
831         * glib/glist.c:
832         * glib/ghash.c:
833         * glib/gtree.c:
834         * glib/ghook.c:
835         * glib/gmain.c:
836         * glib/gnode.c:
837         removed GAllocator and free list usages and accompanying locks.
838         use g_slice_*() API to allocate and cache small bits of memory.
839
840         * glib/ghook.h: removed GMemChunk field from public API.
841
842         * glib/gslist.h:
843         * glib/glist.h: deprecate allocator API, provide _free1() for consistency.
844
845         * glib/gnode.h: deprecate allocator API.
846
847         * glib/gmain.c: reordered GPollRec fields so g_slice_free_chain() can
848         be used for poll rec lists.
849
850         * glib/grel.c: removed mem chunk usage, and allocated tuples via g_slice_*().
851         g_relation_destroy(): free all tuples from the all_tuples hash table,
852         this effectively maintains the life time track keeping of tuples.
853         g_relation_delete_tuple(): free tuples which are removed from the
854         all_tuples hash table. this fixes a temporary leak that was present
855         in the memchunk code until the destruction of the relation.
856
857 2005-10-29  Matthias Clasen  <mclasen@redhat.com>
858
859         * tests/convert-test.c: Add some tests for conversions between
860         UTF-8, UCS-4 and UTF-16.
861
862         * glib/gutf8.c (g_utf8_to_ucs4, g_utf8_to_utf16): Fix handling
863         of len == -1, noticed by Morten Welinder.
864
865 2005-10-27  Erdal Ronahi  <erdal.ronahi@gmail.com>
866
867         * configure.in: Added ku (Kurdish) to ALL_LINGUAS
868
869 2005-10-26  Matthias Clasen  <mclasen@redhat.com>
870
871         * glib/gutf8.c (g_ucs4_to_utf8): Don't set items_read twice
872         in the error case, and add some documentation.  (#319806, Morten
873         Welinder)
874
875 2005-10-19  Manish Singh  <yosh@gimp.org>
876
877         * configure.in: Use AC_CHECK_FUNCS for _NSGetEnviron, to get the
878         config.h symbol automatically. Fixes bug #313731.
879
880 2005-10-19  Tor Lillqvist  <tml@novell.com>
881
882         * glib/gwin32.c (g_win32_get_package_installation_directory):
883         Return a g_strdup()ed copy of the value stored in the hash table,
884         so that it can be g_free()d without leaving a dangling pointer in
885         the hash table. (#319232)
886
887 2005-10-06  Matthias Clasen  <mclasen@redhat.com>
888
889         * glib/gunicollate.c (g_utf8_collate_key_for_filename): Handle
890         all-zero sequences correctly.  (#317930, Sebastien Bacher)
891
892 2005-10-05  Matthias Clasen  <mclasen@redhat.com>
893
894         * glib/gmarkup.c (g_markup_escape_text): Doc addition
895
896         * Makefile.am: Add Collation tests.
897
898         * tests/collate/*: Inputs and expected outputs for collation tests.
899
900         * tests/run-collate-tests.sh: Script to run collation tests.
901
902         * tests/unicode-collate.c (main): Rework slightly to make
903         it usable in unit tests. Also test g_utf8_collate_key_for_filename().
904
905 2005-10-01  Behdad Esfahbod  <behdad@gnome.org>
906
907         * docs/reference/glib/tmpl/unicode.sgml:
908         * glib/gen-unicode-tables.pl:
909         * glib/gunibreak.h:
910         * glib/gunichartables.h:
911         * glib/gunicode.h:
912         * tests/casefold.txt:
913         * tests/casemap.txt: Updated to Unicode 4.1.  There are five new
914         GUnicodeBreakType types.  That may break some applications, like
915         Pango <= 1.10.
916
917 2005-09-26  Matthias Clasen  <mclasen@redhat.com>
918
919         * glib/gstrfuncs.c (g_ascii_strtoull): Add details to the 
920         docs.  (#314393, Matthew F. Barnes)
921
922         * glib/glib.symbols:
923         * glib/gprintf.h: Remove g_snprintf() and g_vsnprintf(), since
924         they are already declared in glib.h. This doesn't break documented
925         use of gprintf.h, but should probably be pointed out in the 
926         release notes for 2.10. (#314232, Behdad Esfahbod)
927
928 Tue Sep 20 13:16:04 2005  Tim Janik  <timj@imendio.com>
929
930         * glib/gpattern.c (g_pattern_ph_match): applied significant recursion
931         complexity optimization, based on a patch from Matthias Clasen.
932
933         * tests/patterntest.c: more tests, mostly from matthias.
934
935 2005-09-20  Matthias Clasen  <mclasen@redhat.com>
936
937         * glib/gqueue.c (g_queue_insert_sorted): Correct the docs.
938         (#316703, Mark Drago)
939
940 Mon Sep 19 17:23:23 2005  Tim Janik  <timj@imendio.com>
941
942         * glib/gpattern.c: applied a patch from matthias which checks on the
943         upper bound of GPatternSpec length to optimize matches.
944         cosmetic fixups.
945
946         * tests/patterntest.c: added more match cases.
947
948 2005-09-16  Tor Lillqvist  <tml@novell.com>
949
950         * glib/gstrfuncs.c (g_ascii_strcasecmp, g_ascii_strncasecmp): Add
951         warning to doc comment that these functions should not be used on
952         encodings like CP932.
953
954 2005-09-14  Matthias Clasen  <mclasen@redhat.com>
955
956         * tests/keyfile-test.c: Add a test for grup names of length 1.
957
958         * glib/gkeyfile.c (g_key_file_line_is_group): Accept group names
959         of length 1.  (#316309)
960         
961 2005-09-12  Matthias Clasen  <mclasen@redhat.com>
962
963         * glib/gmarkup.c (g_markup_escape_text): Clarify docs.
964
965 2005-09-11  Sebastian Wilhelmi  <seppi@seppi.de>
966
967         * tests/refcount/Makefile.am (INCLUDES): Link the the refcount
968         tests to the system thread library $(G_THREAD_LIBS). Fixes #313744
969         and #314217.
970
971 2005-09-11  Kjartan Maraas  <kmaraas@gnome.org>
972
973         * glib/gmain.c: (g_child_watch_prepare), (g_child_watch_check),
974         (child_watch_helper_thread): Remove some dead code. Closes
975         bug #315278.
976
977 2005-09-07  Tor Lillqvist  <tml@novell.com>
978
979         * glib/Makefile.am: Create also a console version of the
980         gspawn-win32-helper program, gspawn-win32-helper-console.exe.
981         It's otherwise identical to gspawn-win32-helper.exe, except marked
982         as a console application (linked without the -mwindows option).
983         
984         * glib/gspawn-win32.c (do_spawn_directly, do_spawn_with_pipes):
985         Drop the dont_wait parameter. Its truth value correlated 100% with
986         the NULLness of the exit_status parameter anyway, so it's enough
987         to check whether exit_status is NULL. Invert the sense of the
988         dont_return_handle parameter and rename it to do_return_handle, to
989         make the code easier to read by avoiding double negations.
990
991         (g_spawn_sync_utf8, g_spawn_async_with_pipes_utf8): Modify calls
992         to do_spawn_with_pipes() accordingly.
993
994         (do_spawn_with_pipes): If we have a console, use the console
995         version of the helper program, otherwise use the GUI one. This
996         avoids extra console windows opening up in some situations. (In
997         case a console application uses the GUI gspawn-win32-helper.exe to
998         spawn another console application we would get a separate console
999         for the spawned console application).
1000
1001         * glib-zip.in: Distribute also gspawn-win32-helper-console.exe.
1002
1003 2005-09-05  Matthias Clasen  <mclasen@redhat.com>
1004
1005         * glib/gmappedfile.c (g_mapped_file_new): Report an error
1006         if the file is too large.  (#315275, Kjartan Maraas)
1007
1008         * glib/gkeyfile.c (g_key_file_load_from_fd): The return value
1009         of read() is signed.  (#315273, Kjartan Maraas)
1010         
1011 2005-08-31  Tor Lillqvist  <tml@novell.com>
1012
1013         * glib/gutils.h: Wrapping atexit() is a bad idea on Windows, where
1014         the EXE and each DLL have their own atexit function chains.
1015
1016         #define g_atexit as atexit instead. This means it has a
1017         better chance of doing what the caller wants. For instance,
1018         gtkhtml calls g_atexit() registering a function in gtkhtml
1019         itself. This caused a crash when g_atexit() was implemented as a
1020         function in the GLib DLL. The gtkhtml DLL was already unloaded by
1021         the time the GLib DLL got unloaded.
1022
1023         * glib/gutils.c: #undef the #define mentioned above, to also get a
1024         real g_atexit() into the DLL for backward compatibility. Document
1025         the Windows behaviour of g_atexit(), and document the varying ways
1026         atexit() can behave in the context of dynamically loaded modules
1027         on Unix.
1028
1029 2005-08-31  Matthias Clasen  <mclasen@redhat.com>
1030
1031         * glib/glib.symbols: 
1032         * glib/gquark.h: 
1033         * glib/gdataset.c: Add string interning functions.
1034
1035 2005-08-28  Matthias Clasen  <mclasen@redhat.com>
1036
1037         * glib/giochannel.c: Unify some near-duplicate strings. (#314654,
1038         Clytie Siddall)
1039         
1040 2005-08-26  Matthias Clasen  <mclasen@redhat.com>
1041
1042         * configure.in: Bump version to 2.9.0
1043
1044 2005-08-25  Tor Lillqvist  <tml@novell.com>
1045
1046         Make also the g_spawn*() functions take parameters in the GLib
1047         file name encoding, i.e. UTF-8, on Windows. Has no impact on Unix
1048         API or ABI. Like the other GLib API that was earlier changed to
1049         use UTF-8 on Windows, the names of the functions that take UTF-8
1050         have _utf8 suffixes added by using preprocessor macros in the
1051         header file. The old names are kept for functions with the old
1052         behaviour, taking parameters in the system codepage, for DLL ABI
1053         stability.
1054         
1055         * glib/gspawn.h: On Win32 add the suffix _utf8 to the names of the
1056         g_spawn*() functions.
1057         
1058         * glib/gspawn-win32.c: Use wide-char API on NT-based
1059         Windows. Convert parameters from UTF-8 to wide chars (NT) or
1060         system codepage (Win9x) and call the C library _wspawn*() or
1061         spawn*() functions respectvely. Add DLL ABI stability versions
1062         that take parameters in the system codepage.
1063
1064         * glib/gspawn-win32-helper.c: On NT-based Windows use the
1065         wide-char versions of argv and envp, and use wide-char API to
1066         change directory and spawn the program to run. Remove the verbose
1067         debugging output, it was too complex to modify for the wide-char
1068         features. (Just add temporary debugging printouts if needed, no
1069         need to have them permanently in the source.)
1070
1071         * glib/gspawn.c: Corresponding documentation updates.
1072
1073         * glib/glib.symbols: Corresponding changes: Mark the ABI stability
1074         symbols as PRIVATE, add the new _utf8-suffixed ones.
1075
1076 2005-08-24  Stepan Kasal  <kasal@ucw.cz>
1077
1078         * glib/gtypes.h (G_MININT64): Cast the constant to gint64; it is
1079         guint64 otherwise and that can produce warnings about comparison
1080         between signed and unsigned.
1081
1082 2005-08-23  Matthias Clasen  <mclasen@redhat.com>
1083
1084         * glib/gutils.c: Fix the crt_externs.h include.
1085
1086 2005-08-23  Stepan Kasal  <kasal@ucw.cz>
1087
1088         * NEWS: Fix spelling of my first name.
1089
1090 2005-08-23  Matthias Clasen  <mclasen@redhat.com>
1091
1092         * Bump version
1093
1094         * === Released 2.8.1 ===
1095
1096         * NEWS: Updates
1097
1098 2005-08-20  Hans Breuer  <hans@breuer.org>
1099
1100         * glib/makefile.msc.in : link with ws2_32.lib
1101
1102 2005-08-18  Tor Lillqvist  <tml@novell.com>
1103
1104         * configure.in: Check for <sys/wait.h>
1105
1106         * glib/gbacktrace.c: Include <sys/wait.h> on if HAVE_SYS_WAIT_H.
1107
1108 2005-08-18  Ross Burton  <ross@burtonini.com>
1109
1110         * glib/gstring.c:
1111         Optimise single-character insertions.
1112         
1113         * glib/gutf8.c:
1114         Note copied code.
1115         
1116         * tests/string-test.c:
1117         Add tests for new optimisation, and fix a leak.
1118
1119 2005-08-17  Matthias Clasen  <mclasen@redhat.com>
1120
1121         * configure.in: Check for crt_externs.h and _NSGetEnviron.
1122
1123         * glib/gutils.c: On Darwin, include crt-externs.h and
1124         define environ using _NSGetEnviron().  (#313731)
1125
1126 2005-08-16  Stepan Kasal  <kasal@ucw.cz>
1127
1128         * glib/gutils.c (g_get_any_init): Move the body of the big if...
1129         (g_get_any_init_do): ... to this new function.
1130         (g_get_any_init): Declare as inline.
1131         (g_get_any_init_locked): New inline function, does the locking.
1132         Make use of these two throughout the code.
1133
1134 2005-08-15  Matthias Clasen  <mclasen@redhat.com>
1135
1136         * glib/gbacktrace.c (g_on_error_stack_trace): Wait for
1137         the child process and then simply return. This makes 
1138         The "S" option work as documented in g_on_error_query().
1139         (#313125, Matthew F. Barnes)
1140
1141         * glib/gunicode.h: Update the link to Unicode category
1142         values.  (#313369, Behnam Esfahbod)
1143
1144         * glib/gqueue.c (g_queue_find_custom): Clarify docs
1145         a little.  (#311727, Tristan van Berkom)
1146
1147         * glib/abicheck.sh, gobject/abicheck.sh: Make the 
1148         check work on ia64 too, where some symbols ended up 
1149         in yet another section.
1150