On 02/25/2011 10:00 PM, David Robillard wrote:
On Fri, 2011-02-25 at 21:09 +0100, Olivier
Guilyardi wrote:
That said
there is another big problem. This glib dependency, it's way too heavy
for mobile deployment.
Glib was the most effective route of getting the job done - rewriting
the few bits that are required is not an effective use of my time right
now (it's not exposed in the API, so it's not a compatibility issue, and
there's a ton of more pressing LV2 things that need doing).
I'm not a huge fan of wheel-reinventing, and on PCs glib is about as
unoffensive a dependency as they come. On mobile, I guess that meg or so
actually makes a difference.
Replacing glib will not be very difficult, very little of it is used:
just a balanced BST, dynamic array, and ideally a hash table or trie
other appropriate structure for string interning (the BST would do for
this part, with a bit of a performance cost). Good old-fashioned data
structure implementation is my favourite thing to do, but unfortunately
there is no shortage of more pragmatic things that need doing ;)
Perhaps Stefano's NASPRO core work will do, or using C++ internally, or
just tearing the required bits out of glib itself. Sqlite has an
in-memory hash table IIRC. Code abounds.
Present a viable alternative, and I'll switch sord/slv2 to it, but I
have no good reason to invest time in reinventing glib right now.
I will try and submit a patch to remove glib. It'll take some time because I
have dozens of other things to do, but I will work on this. I had a quick look
at sord, it seems it only needs glib's sequence and hash table. Is this correct,
or will you need some more utilities?
Overall I need sequence, hash table (or hash table like thing, I'll
probably use a radix tree), and module loading (currently still POSIX in
SLV2).
No rush, I may make the relevant lib myself soon if you don't beat me to
it, I just don't want to hold up the next release for it.
Cheers,
-dr