From 59fc8f8bb949f2b909d09021921433d6ad1d13b7 Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Wed, 16 Apr 2014 16:51:22 +1000 Subject: Add a README for my shared library idea. --- Bookie/README | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 Bookie/README diff --git a/Bookie/README b/Bookie/README new file mode 100644 index 0000000..1a49f27 --- /dev/null +++ b/Bookie/README @@ -0,0 +1,33 @@ +Shared dynamic libraries is a bit of an issue for cross platform code. +LL viewers deal with it by including their own copies of the libraries +they use. This bypasses the idea of sharing them, and thus uses too +much resources. On the other hand, it seems to be the Windows way of +doing things, lots of Windows packages I have seen include their own +copies of libraries. Mac Os X seems to do the same, each application is +installed as it's own directory, filled with it's own copies of +libraries. Not a lot of sharing going on. Linux and the BSDs do the +right thing, most libraries are actually shared. Except that LL viewers +STILL bring their own libraries. + +I think the main difference is having a proper package management +system. Apt, RPM, and portage (I think) can track dependencies on +libraries, install the libraries automatically, and even have different +versions of libraries installed side by side. Without this, the OS has +no official way of tracking library dependencies, so every one has to +supply their own. Sure Mac OS X has had a few package systems ported to +it, but none of them are the official one, so developers can't rely on +them. + +SledjHamr has to deal with this, and try to do so in some sort of smart +way. As usual, the right way to do things is generally to do the +opposite of what LL does. lol + +Bookie should be a sub system that probes the OS, trying to see if +there's some sort of OS store of libraries, and try to find reasonable +versions of the libraries needed in that. If not found, it could invoke +an OS specific method of installing a suitable library. If that fails, +it can download a SledjHamr specific version into the SledjHamr +installed directory. So it tries to do the right thing first, and +gradually fallsback to doing the wrong thing like LL does. + +That's the theory, in practice, gonna be a pain. -- cgit v1.1