Thanks for the chance to "make a record". I don't like the word
"rejected", but it is less misleading than "resolved", so that is how I
am classing this ticket. Briefly, the Glib dependency could only be
eliminated with great effort, and by replacing it with something less
reliable, less portable, less useful and less flexible.
Imagine, as a "thought problem", that this ticket came with a patch.
Here is why I would probably be forced to reject the patch:
How could I assure myself, to the same level of confidence I can have in
Glib, that the patch was portable and thread-safe? Among other things,
Marpa::XS uses Glib for thread-safety, memory management, atomic
operation and error logging. For optimization, Marpa::XS "rolls its own"
for most of its data structures, but in certain cases where speed is
less of an issue Marpa::XS uses Glib's trees, hashes and arrays. How
could I assure myself, to the same level of confidence I can have in
Glib, that all these things in the patch worked portably, including in
threaded environments? As far as I can see, I simply could not.
An additional note: the use of Glib has advantages for maintainance.
Anything I'm not presently using that I end up needing (say, as a
example, random numbers) can be added without new code or an additional
dependency.