On a longish bike ride just now I considered many new schemes for
gnx's, none of which have the slightest chance of working :-)  To
state my firm conclusion first: changing the form of gnx's would be a
very bad idea.

Here are the key ideas:

1. gnx's create immutable identity.  They are required to make clones
work reliably. Eliminating gnx's is equivalent to forbidding clones in
Leo.  That's not going to happen: clones simplify the user experience.

2. The present form of gnx's is similar to hard links in a file
system.  They are absolute, immutable links.  In contrast, "relative"
gnx's, based on tables or "base indices" are an exceedingly bad
idea.   Relative gnx's will not survive bzr merges.  Many thanks to
Ville for pointing this out.

Worse, relative gnx's are unreliable. For example, suppose we allocate
gnx's sequentially as follows.  We put the present max index in the
second line of .leoID.txt.  My first thought was: why didn't I think
of this before?  It avoids bzr conflicts because the gnx will be of
the form id.n, where both come from .leoID.txt.  In effect, .leoID.txt
becomes a "gnx server".  My second thought was, boy, am I glad I
didn't think of this before :-) Deleting .leoID.txt would cause chaos.

BTW, not only must gnx's be absolute, the components of each gnx must
also be absolute.  For example, we want an absolute timestamp.

3. Imo, "improving" gnx's is a fundamentally trivial problem.  Life is
too short to be spent improving something that is already good
enough.  I have no interest in incrementally "compacting" gnx's.  That
code is guaranteed to be complex.  It's also likely to be dangerous.
And no, I don't need Kent to remind me that some won't use Leo because
they don't like gnx's.

I am going to reject any scheme for compacting or otherwise altering
gnx's.  Imo, the way forward is to cloak gnx's by putting them far to
the right in the simplified sentinels scheme.  This keeps gnx's
robust, while mollifying gnx-haters.

Edward

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/leo-editor?hl=en.

Reply via email to