Re: [Circle] [Code] not for beginners..

From: Patrick Dughi (dughi@imaxx.net)
Date: 06/10/01


> Have I asked this before?  What advantage does using a balanced tree have
> over using a hash table as pertains to CircleMUD?  We have a large mostly
> static data set...  It seems like we should be able to hash based on any
> number of criteria and get an efficient and easy implementation of the
> world.  I don't think we need to be able to walk the data set in order, so
> I can't help but get the feeling trees are a bit overkill.

        To tell you the truth, I considered a hash table, but every hash
lookup system I've used seemed to scale...well...poorly.  Let's ignore
that for a moment though;

        I chose an AVL tree over a hash tree (or b-tree, which was in the
running), mostly because I have less experience with them (not none,
granted, just less).  Hashes, which I use quite alot, were getting boring.

        What I was really looking at was a less data-centric view of the
..well..data, and more of a data-system view.  Or, in simple terms,
abstraction to the point of having insertion,deletion,lookup, and
traversal systems which can be used without intimate knowledge of the
actual pieces of data being used.

        The underlying system that performs this doesn't matter to me,
just as long as the progammer who uses it really never has to worry about
it.  Avl's aren't that complicated either, and the whole tree mentality
seems - in my mind - to correspond very nicely with the zone based layout
of most text muds.

        Because I had already created such a system with a library but am
not allowed to distribute, I just wanted to make it sort of simliar to
reduce work later on.

>
> > If you're wondering why I wrote it, it's because all the good
> > libraries are licenced in such a way as to conflict with
> > CircleMUD/DikuMUD license.
>
> ...if and only if you distribute them in a combined form.  The patch to
> CircleMUD would not include any of the GPL'd code (only calls to it).
> The patch is not under the GPL simply because it calls functions in an
> LGPL library and neither is it under the CircleMUD license by virtue of
> its intended use or its eventual combination with CircleMUD.  Therefore
> your code is your code, which can be licensed however you wish.  Your
> patch is distributed separate libavl (or what have you), the appropriate
> version of libavl is provided on the FTP site for use with your patch,
> someone downloads both, installs both as necessary, and since the
> end-product is not being publically distributed, the GPL/LGPL never kicks
> in on it and we've circumvented the licensing restrictions.

        True, regarding the combined forms.  I think though, when
discussing the Diku & Circle licenses possibly changing with a few others
who were representing the GPL, there was concern that creation of a patch
involves inclusion of code from the thing being patched in, even if only
2-3 lines used for reference purposes.

        It was never made clear, either by gnu, or others what the 'legal'
limit on inclusion of code for reference such as is found in a patch
constitues that patch as a derivitive work and thus covered by the gpl
(and if the licenses were not compatible, it is non-distributable).

        This was listed as large source of future contention...so it
doesn't seem so black and white.

        It was suggested that the program with incompatible licenceing
should provide an inclusion mechanism so code modules could be
individually distributed and licenced, and I was given several examples of
how this was done (though I don't have them around....).

                                                PjD

--
   +---------------------------------------------------------------+
   | FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
   | Archives: http://post.queensu.ca/listserv/wwwarch/circle.html |
   +---------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/05/01 PST