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