[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnu-arch-users] [BUG] feature plan -- version variables

From: Aaron Bentley
Subject: Re: [Gnu-arch-users] [BUG] feature plan -- version variables
Date: Tue, 25 May 2004 12:16:37 -0400
User-agent: Mozilla Thunderbird 0.5 (X11/20040309)

Tom Lord wrote:
Version variables are persistent variables associated with versions. At each revision within a version, all of the variables have a definate value. By default, each revision inherits the values from its immediate ancestor
but variable values can be changed by any revision.

Sounds pretty resonable. I worry a bit because patchlogs are not always guaranteed to be present, but maybe I worry too much.

* Range

  The value of a version variable must be a Pika Scheme s-expression
  satisfying certain constraints:

        1) Only cons pairs, booleans, small integers,
           nil, and strings containing only iso-8859-1
           characters may occur in the value.

Why iso-8859-1? Since we plan to make patchlogs utf-8, I'd imagine limiting it to ASCII until we make patchlogs utf-8.

One thing we could use this for is for version descriptions-- but only if people can use their own alphabets for the descriptions.

        2) Cons pairs may occur in the value only
           as part of a proper list.

* Domain

  The name of a version variable must consist entirely of ascii
numbers and letters, dash ('-'), and dot ('.').

* Representation

  Within a project tree, variable values are usually found by
reading the patch-log. The latest patch-log entry for the tree-version of the project tree may contain a header:

        set-in-version: (<name> <value>)*

Are those parentheses literal charaters or part of the definition syntax? (I'm wondering what the separator is. Personally, I'd probably do it one-var-per-line instead)

Are those map semantics? I'd imagine if the same name appears multiple times, only the last assignment is used? Or is it an error?

Care to specify a representation for lists, or do you think the list user should chooose it?

  Variables without an explicitly set value have the value false

  If the file ./{arch}/++variables exists then it should contain
  0 or more valid `set-in-version' log message headers -- these
  override the settings in the latest patch log entry.

Is this file immortal, or is it deleted by commit/import?

  % tla version-var name value
  [locally set the value of name to value]

  % tla version-var --unset name
  [remove any local setting for name]

Would this delete a version-var?
% tla version-var name #f

(Is there any difference between a false value and a missing value?)


Aaron Bentley
Director of Technology
Panometrics, Inc.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]