2000-05-30 Tor Lillqvist <tml@iki.fi>
* gutils.c (g_locale_get_codeset): Implement on Win32.
* glib.def: Add g_get_codeset.
* tests/Makefile.am (EXTRA_DIST): makefile.cygwin* has been
renamed to makefile.mingw*.
2000-05-13 Tor Lillqvist <tml@iki.fi>
* makefile.mingw.in
* tests/makefile.mingw.in
* build-dll: Rename makefile.cygwin(.in) to
makefile.mingw(.in), which better describes what it is. Move the
build of gmodule, gthread and gobject DLLs to makefiles in those
directories. Move resource file handling and build number bump to
build-dll, where it sits much cleaner.
* README.win32
* Makefile.am (EXTRA_DIST): Update accordingly.
* glib.h: Add G_PI, G_PI_2, G_PI_4, G_E, G_LN2, G_LN10 and
G_SQRT2. M_PI etc aren't necessarily in <math.h> in strict ISO C
implementations.
* glib.def: Add g_strcanon.
* gtree.c (g_tree_node_rotate_left): Remove unused variables.
* gwin32.c (g_win32_opendir): Remove unneeded statement.
gmodule:
* makefile.mingw.in: New file, with gmodule stuff
moved from ../makefile.mingw.in.
* Makefile.am: Add to EXTRA_DIST, and add rule to make makefile.mingw.
gobject:
* makefile.mingw.in
* gobject.def
* gobject.rc.in: New files, for Win32 (mingw) build.
* Makefile.am: Add to EXTRA_DIST. Add rules to produce the
corresponding non-*.in files.
* gtype.h: (Win32:) Mark _g_type_fundamental_last for
export/import from DLL.
gthread:
* makefile.mingw.in: New file, with gthread stuff moved from
../makefile.mingw.in.
* Makefile.am: Add to EXTRA_DIST, add rule to build makefile.mingw.
2000-05-04 Tor Lillqvist <tml@iki.fi>
* makefile.cygwin.in
* tests/makefile.cygwin.in: Include the common makefile snippet
from ../build/win32.
Maybe CVSROOT/modules should be changed so that the 'build' module
is included within the glib module (and gtk+, and gimp, and maybe
others later), in the same way as the 'macros' module is included
in lots of GNOME CVS modules?
2000-05-02 Tor Lillqvist <tml@iki.fi>
* glib.def: Add new functions.
* makefile.{cygwin,msc}.in (glib_OBJECTS): Add new object files.
* tests/makefile.{cygwin,msc}.in: Add threadpool-test.
* gmodule-win32.c: No need to include <psapi.h>
2000-04-28 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* gasyncqueue.c: New File implementing an asynchronous queue to be
used for asynchronous inter-thread communication.
* gthreadpool.c: New File implementing a thread pool to be used
for distributing work among several threads.
* glib.h: Added the type and function declarations for these two
types.
* tests/threadpool-test.c: New File implementing a test for the
thread pool. This also checks the asynchronous queue underlying
the thread pool.
* tests/Makefile.am: Changed accordingly.
2000-04-19 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib.h (G_TRYLOCK): Made the debugging G_TRYLOCK call also work
for compilers with funnt G_STMT_(START|END) macros.
* tests/thread-test.c: Implemented a check for that.
2000-04-17 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib.h, gqueue.c, tests/queue-test.c (main): Renamed
g_queue_create to g_queue_new in conformance to all other GLib
data types.
2000-03-24 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* Makefile.am, gthread/Makefile.am, gmodule/Makefile.am,
tests/Makefile.am: Added various win32 related *.in files to
EXTRA_DIST to let 'make distcheck' procude all the corresponding
files, which it silently fails to do currently.
2000-03-17 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in: Added the missing POSIX_NO_YIELD and
POSIX_NO_PRIORITIES warning messages.
* configure.in: Use AC_TRY_RUN instead of AC_TRY_LINK, to test for
real thread support. On solaris pthread_create can be linked to
even in -lc, but it doesn't work then.
* configure.in: Don't use priorities for threads, when the
minimal/maximal priorities couldn't be determined at configure
time.
* configure.in, gthread.c: Always define GSystemThread in
glibconfig.h to represent a system thread.
* configure.in: Do not use native recursive threads, when
possibe. We use some features, that they do not expose (namely the
depth counter).
* glib.h, gthread.c: Redefined GStaticRecMutex. The functions are
now implemented in a different way, which should be way
faster. Alsothere are now functions g_static_rec_mutex_unlock_full
and g_static_rec_mutex_lock_full to leave/enter a recursive mutex
completly.
* gthread.c (g_thread_self): Do not test the system_thread to be
non-zero to speed things up.
* gthread.c (g_mutex_init): Therefore set the system_thread of the
main thread here.
* tests/thread-test.c: Rerun all tests once again, but this time
we fool the system into thinking, that the available thread system
is not native, but userprovided.
* gthread/gthread-posix.c: Don't use priorities for threads,
when the minimal/maximal priorities couldn't be determined at
configure time.
* gthread/gthread-posix.c: Don't check for errors, when
setting the scope of a tread to system, as some posix
implementations can't do that and we don't want the thing to
fail because of that.
Wed Mar 1 10:39:39 2000 Tim Janik <timj@gtk.org>
* gslist.c (g_slist_reverse): minor optimization.
* testglib.c (g_node_test): added a couple of tests for
g_node_copy().
* glib.h:
* gnode.c (g_node_copy): new function to copy subtrees,
supplied by dbsears@ix.netcom.com.
changed iterator to walk the children list backwards, so
we get down from O(n^2) to O(n).
* gnode.c (g_node_first_sibling): applied patch from
dbsears@ix.netcom.com to optimize access if node->parent
is present.
* gutils.c (g_get_any_init): backed out HAVE_PW_GECOS check around
assignment of g_real_name, sicne HAVE_PW_GECOS is never defined and
thus breaks the original code.
* merged changes from 1.2.7.
Sat Feb 19 19:43:29 2000 Tim Janik <timj@gtk.org>
* testgmodule.c (main): added test to check that not yet bound symbols
in shared libraries of the main module are retrievable, from David Gero.
Fri Jan 28 11:37:41 2000 Owen Taylor <otaylor@redhat.com>
Bug #4156 - Changes vaguely modelled after Scott Gifford's patch
* gtimer.c (g_timer_elapsed): Never report negative times -
clip times to 0.
* gmain.c (g_timeout_prepare): Guard against unexpected
clock shifts by never setting a timeout of more than
data->interval msecs.
Thu Feb 17 12:53:44 2000 Tim Janik <timj@gtk.org>
* gstring.c: changed g_str_hash() to a 31 bit version based on
a submission by Karl Nelson and hand optimized ad absurdum by
various people ;)
* gstring.c: applied patch from havoc for new gstring functions,
added some more sanity checks, coding style fixups.
2000-02-13 Havoc Pennington <hp@pobox.com>
* tests/string-test.c (main): Add tests for the new GString
features
* testglib.c (main): Add tests for the new GString features
* gstring.c (g_string_insert_len): New function; insert
a given length of string at a given position.
(g_string_append): reimplement in terms of g_string_insert_len
(g_string_append_len): new function
(g_string_insert_c): accept -1 for "pos" arg to mean "append"
(g_string_append_c): reimplement in terms of g_string_insert_c
(g_string_prepend): reimplement in terms of g_string_insert_len
(g_string_prepend_len): new function
(g_string_prepend_c): reimplement in terms of g_string_insert_c
(g_string_insert): reimplement in terms of g_string_insert_len
* glib.h: Declare g_string_insert_len, g_string_append_len,
g_string_prepend_len
1999-11-01 Tor Lillqvist <tml@iki.fi>
* glib.h
* glib.def: Rename Win32-only functions from gwin_* to g_win32_*
to match the GLib naming conventions.
* gutils.c
* gwin32.c
* testglib.c
* makefile.{cygwin,msc}: Move the Win32-only functions to the new
file gwin32.c
1999-10-31 Tor Lillqvist <tml@iki.fi>
* gcache.c (g_cache_remove): Don't crash if removing a nonexistent
value.
* gutils.c (gwin_getlocale): New Win32-specific function, returns
a Unixish current locale string (en, zh_TW etc).
* glib.h: Declare it.
* glib.def: Export it.
* testglib.c: Test it.
* gmessages.c (Win32: ensure_stdout_valid): Some improvements,
make sure we don't call AllocConsole several times, which I think
has happened.
* glib.h
* gstrfuncs.c
* tests/strfunc-test.c: Rename g_strccpy to g_strcompress and
g_strecpy to g_strescape per Tim Janik's suggestion. Dropped the
destination parameter, always g_malloc a new string. Fix bug in
g_strcompress, octal digits were gobbled up without limit, should
use max three.
Sources that use g_strescape must have ifdefs to be compilable
both with GLib 1.2 and 1.3.
* gstrfuncs.c (g_strccpy, g_strecpy): New functions.
* glib.h: Declare and document them. Define the deprecated
g_strescape as a macro that calls g_strecpy.
* tests/strfunc-test.c (main): Test them.
* makefile.{cygwin,msc}.in
* tests/makefile.{cygwin,msc}.in: Remove gstack and its test
program.
* glib.def: Additions and removals.
* README.win32: Improve gcc build instructions.
* build-dll: Also build import library for MSVC.
Sat Jul 24 20:11:35 1999 Tim Janik <timj@gtk.org>
* merged GLib 1.3.0 with glib-1.2.3 from Fri Jul 16 22:18:36.
* incorporated proposed cleanups from gtk-devel-list.
* bumped version number to GLib-1.3.1
* glib.h:
* gqueue.c:
* gstring.c:
* glist.c:
removed string tokenisation (we got g_strsplit() and g_strjoin()
already) and readline functions.
s/g_list_delete/g_list_delete_link.
implemented g_slist_delete_link.
removed notion of g_ATEXIT() macro in glib.h, this is an *internal*
macro, g_atexit() is provided for public consumption.
added GTrashStack inline utility functions.
reimplement double eneded queues.
removed GStack implementation, people can use a queue or a (singly)
linked list for this task.
deprecated g_strescape(), we need the SunOS variants here.
* gdate.c: added DEBUG_MSG() macro to wrap old messages.
* *.*: CVS merges.
* upgrade to libtool 1.3.3.
compatibility with MSVC by using the switch -fnative-struct. No
longer build DLLs with .gcc in the name when using gcc.
* README.win32: Renew gcc build instructions.
* build-dll: Comments change, handle also .a files.
* makefile.cygwin.in
* tests/makefile.cygwin.in: Remove .gcc from DLL name.
* README.win32: Correct URL for mingw runtime sources.
* build-dll: Combine commands with &&.
* glib.h: Map also rmdir() and hypot() for MSVCRT library.
* makefile.cygwin.in
* tests/makefile.cygwin.in: New DLL naming style. GCC-compiled DLLs are
now called *.gcc.dll, to avoid binary incompatibilities with
MSVC-compiled versions.
* makefile.msc.in: Cosmetics.
* README.win32: Update the pthreads snapshot version we want.
Advice how to hand-expand the makefile.*.in files.
* config.h.win32.in: Define values needed by Sebastian Wilhelmi's
new thread stuff.
* glib.def: Add new functions.
* glibconfig.h.win32.in: Update the pthreads snapshot version.
Fix typo.
* gthread.c: Include config.h, guard inclusion of unistd.h. When
using gcc on Win32, g_thread_functions_for_glib_use must be marked
for export here, too.
* gtimer.c: Implement g_usleep on native Win32 using Sleep (which
only has millisecond granularity, though).
* makefile.cygwin.in
* makefile.msc.in: Update pthreads snapshot version. File
name changes. Remove testgthread.
* tests/makefile.cygwin.in
* tests/makefile.msc.in: Add thread-test. Link with gthread lib.
* gthread-posix.c: Guard pthread_attr_setscope call with test
for _POSIX_THREAD_PRIORITY_SCHEDULING, which should be defined
in a <pthread.h> that supports that feature.
1999-06-17 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* configure.in, acglib.m4, acconfig.h, glib.h, gthread.c:
Completed the thread support in GLib. Thread creation,
prioritizing threads, yielding, joining threads as well as
reader/writer locks and recursive mutexes are now in place. Please
test heavily on your platform. It is so far tested on
Linux/i386/pthreads, Solaris/Sparc/pthreads and
Solaris/Sparc/solaristhreads.
* gtimer.c, glib.h: Implement g_usleep (gulong microseconds) for
thread safe sleeping. (sleep() is not MT-safe at all!)
* gutils.c: Avoid compiler warning.
* tests/Makefile.am, tests/thread-test.c: New program to test some
aspects of the thread implementation.
* gthread.c, Makefile.am: Renamed from gmutex.c to reflect the
change of content.
* configure.in: Purged all appearances of nspr.
* gthread/gthread-posix.c, gthread-solaris.c: Added the native
implementations for the GLib's extended thread support.
* gthread/gthread-nspr.c: Removed for good. NSPR is nothing we
would want to build upon.
* gthread/gthread.c: Renamed to gthread-impl.c to avoid
confusion with ../gthread.c (Formerly known as the file called
gmutex.c)
* gthread/testgthread.c: Removed. The new and much extended
tests are in ../tests/thread-test.c.
* gthread/Makefile.am: Changed to reflect the changes above.
* Makefile.am tests/Makefile.am: Correct rules for making the
win32-related files that are made from corresponding .in files.
Is there a cleaner way than explicitly writing rules that invoke
config.status?
* makefile.msc.in makefile.cygwin.in glibconfig.h.win32.in
config.h.win32.in tests/makefile.msc.in tests/makefile.cygwin.in:
New files, used to generate corresponding non-.in files when
making a dist. This is just so the version numbers will be kept in
synch automatically.
* configure.in: Also substitute @GLIB_MAJOR_VERSION@,
@GLIB_MINOR_VERSION@, and @GLIB_INTERFACE_AGE@.
* Makefile.am tests/Makefile.am: Also distribute makefile.cygwin.
* gerror.c (g_on_error_query): On Win32, put up a MessageBox and
then exit.
* glib.def: Add a couple of functions.
i.e. gcc -mno-cygwin on cygwin (a.k.a. mingw32, using egcs-1.1.2).
* README.win32: Updated.
* build-dll makefile.cygwin tests/makefile.cygwin: New files.
* glib.h glib.def glibconfig.h.win32 makefile.msc: Slight updates.
* gmain.c: No need to include <fcntl.h> and <io.h> on Win32.
* gmain.c gutils.c testglib.c tests/string-test.c: Test for
NATIVE_WIN32, not _MSC_VER.
* gmutex.c: Must declare g_thread_functions_for_glib_use as
exported (using the GUTILS_C_VAR macro).
* gutils.c gmodule/libgplugin_[ab].c: LibMain not needed.
* gmodule/gmoduleconf.h.win32: Need underscore with gcc.
* gthread/gthread.c: With gcc on Win32, must use memcpy to assign
value of g_thread_functions_for_glib_use (?).
* makefile.msc tests/makefile.msc: Cosmetics.
* README.win32: Mention the tests directory.
* glib.def: Add the functions from grand.c.
* glibconfig.h.win32: Add unsigned max values, and the format
strings.
* makefile.msc: Add grand.
* tests/{date-test,node-test}.c: Include <stdlib.h> for exit().
* tests/makefile.msc: New file.
1999-04-12 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib.h: Moved struct declaration up. Style fixes.
* grand.c: Style fixes. Only try to open /dev/random once.
* tests/rand-test.c (main): New tests; Slight bug fix.
1999-04-09 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* grand.c, tests/rand-test.c: New files to implement the Mersenne
Twister Pseudo Random Number Generator.
* glib.h, AUTHORS, Makefile.am, tests/Makefile.am: Changed
accordingly.
1999-03-16 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* tests/type-test.c: Added a test for the
G_(U)?INT(16|32|64)_FORMAT and G_(MIN|MAX|MAXU)(SHORT|INT|LONG)
macros.
1999-03-14 Jeff Garzik <jgarzik@pobox.com>
* gdate.c:
Commented out debugging output.
* tests/Makefile.am, tests/date-test.c:
Added test of the GDate module, based closely on testgdate.c.
* tests/Makefile.am:
Bugfix - compile tests with @GLIB_DEBUG_FLAGS@.
Wed Feb 24 00:08:42 CST 1999 Shawn T. Amundson <amundson@gtk.org>
* *.[ch]: inserted additional note to look for ChangeLog and
AUTHORS file for a log of modifications.
Sun Jan 24 00:36:22 EST 1999 Jeff Garzik <jgarzik@pobox.com>
* ghash.c:
- Revert previous "fix" (which really just did things a
different way).
- (g_hash_table_remove): Don't need to support multiple values
for a single key.
* tests/hash-test.c:
Add test where hash function always returns a single value.
Add beginnings of tests for g_hash_table_foreach[_remove] and
g_hash_table_remove.
Sat Jan 23 22:45:59 1999 Jeff Garzik <jgarzik@pobox.com>
* ghash.c (g_hash_table_lookup_node, g_hash_table_lookup,
g_hash_table_insert, g_hash_table_remove,
g_hash_table_lookup_extended):
- Fixed bug that overwrote nodes in hash buckets instead of
adding them to the hash bucket node list.
Hash tables now work as advertised.
(g_hash_table_resize):
- Use g_new0 instead of manual init.
- Space out code a bit for readability.
(g_hash_nodes_destroy):
- Replaced "if (!hash_node) return;" with
"if (hash_node) {do stuff}".
Testing takes up less code space than explicit call to
'return' before end of function. (look at gcc -S)
Updated module header copyright to 1999.
New module macro G_HASH_BUCKET for (table,key)->bucket lookups.
* tests/hash-test.c:
- Add two new tests, one with strings as the keys and values, and
one with ints as the keys and values. Tests indirect (strings)
and direct (ints) hashing.
- Cleanup unused junk left over from testglib.c.
- Converted a g_print call to g_assert_not_reached.
- Updated copyright to 1999.
* testglib.c, tests/string-test.c:
- Init 'tmp_string' var to NULL, silencing uninit-var warning.
Sat Jan 23 02:14:28 1999 Tim Janik <timj@gtk.org>
* gutils.c (g_get_any_init): cleaned up the errno mess for
GETPWUID. we especially don't want to g_error() out here!
the warning for G_THREADS_ENABLED and !HAVE_GETPWUID_R isn't
gcc related.
if !HAVE_PWD_H and !NATIVE_WIN32, g_free the home dir before
resetting it to NULL, why are we doing this anyways?
reordered code a bit so we always provide defaults (except
for g_home_dir).
Thu Jan 21 12:40:11 EST 1999 Jeff Garzik <jgarzik@pobox.com>
* gmodule/gmodule-dl.c (_g_module_build_path):
Add braces to eliminate an ambiguous else warning.
* tests/{Makefile.am, string-test.c, strfunc-test.c}:
Separate string and strfunc tests, working towards goal of
having separate test for each of the GLib modules.
Add a couple GString length tests.
* testglib.c:
Make all aux functions static.
* tests/Makefile.am, tests/dirname-test.c, tests/type-test.c:
New tests dirname-test and type-test, from testglib.
* configure.in: ditch whitespace before GLIB_SYSDEFS #includes,
the # needs to be in column 1
* gthread/testgthread.c: cleanups
* tests/node-test.c: #include unistd.h for exit()
-Yosh
Mon Jan 4 14:38:11 1999 Tim Janik <timj@gtk.org>
* glib.h: adjusted the g_strdup_a, g_strndup_a and g_strconcat3_a macros
so their arguments get only evaluated once. changed g_strconcat3_a to
have the same semantics as g_strconcat, i.e. if a certain argument is
NULL, the rest of the parameter list is skipped.
* tests/alloca-test.c: removed #if/#endif G_HAVE_ALLOCA, we need to be
able to compile on all systems. added test for g_strconcat() semantics.
* we need a alloca() replacement for !G_HAVE_ALLOCA rsn!
Mon Jan 4 02:58:13 CST 1999 Shawn T. Amundson <amundson@gtk.org>
* Released GLib 1.1.12
* INSTALL:
NEWS:
README:
configure.in:
glib.spec:
docs/glib-config.1: version=1.1.12
* tests/Makefile.am: fixed so it works properly with
builddir and srcdir.