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.
