Re: [PATCH 07/13] revert: Introduce struct to keep command-line options

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

 



Ramkumar Ramachandra wrote:

> The current code uses a set of file-scope static variables to tell the
> cherry-pick/ revert machinery how to replay the changes, and
> initializes them by parsing the command-line arguments.  In later
> steps in this series, we would like to introduce an API function that
> calls into this machinery directly and have a way to tell it what to
> do.  Hence, introduce a structure to group these variables, so that
> the API can take them as a single replay_options parameter.

The struct leaves out the variable "me".  A person might wonder why
the above rationale applies to the other variables but not that one. :)

> Unfortunately, parsing strategy-option violates a C89 rule:
> Initializers cannot refer to variables whose address is not known at
> compile time.

Reading this, one is led to wonder:

 - is this a regression?
 - is it a necessary consequence of the positive change?
 - will it matter --- i.e., does the rest of git follow that rule to
   be able to build on old-fashioned compilers, and is there any
   intention to?
 - how can I get my compiler to tell me about it?
 - is it fundamental or not?  i.e., is this a "we introduced this
   minor regression and expect it will be fixed later" or "this points
   to a flaw in the design and we hope someone comes up with a better
   design that doesn't have that problem"?

By the way, as a side note, here are a couple of patches about the
same subject that I use to test with "-std=c89 -pedantic" privately.

 http://repo.or.cz/w/git/jrn.git/commit/faa4b89731e5411fbdf6812f11748a20e664361d
 http://repo.or.cz/w/git/jrn.git/commit/92a0c179cb7690bdf6f8fbbfa2253b883d02bd17
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]