OK, added some info to the tracking page. GIO is part of Glib 2.16, so I just specified the version required for 0.47.
Jon A. Cruz wrote:
Oh, and remember one *huge* issue is that bytes != characters. Glib::ustring handles that, but most of other C-based libs do not. That's a big problem for us, since among other things GTK+ apps have to deal with three different encodings simultaneously: UTF-8, locale encoding, and filesystem encoding.
Yes, I know about the UTF-8 issue. The problem is that Inkscape uses UTF-8 filenames thorought the codebase rather than filenames in filename encoding, as required by Glib conventions. This causes a lot of fuss when working with Glib APIs - e.g. Inkscape::IO::file_test. When it comes to file contents the only problematic part is incremental reading of UTF-8 data, but it seems Inkscape doesn't do this.
I'll delve into the IO code some more and then I'll come up with what changes are necessary to transition to GIO, and what are the possible caveats. One I have identified so far is that MemoryOutputStream, needed to sanitize the import / export code, is only present in Glib 2.18 and not yet present in C++ bindings, but it's easy to reimplement.
Regards, Krzysztof Kosiński.