You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@lucy.apache.org by "Marvin Humphrey (JIRA)" <ji...@apache.org> on 2011/05/16 02:57:47 UTC
[lucy-issues] [jira] [Created] (LUCY-146) Reduce iterator variable scopes
Reduce iterator variable scopes
-------------------------------
Key: LUCY-146
URL: https://issues.apache.org/jira/browse/LUCY-146
Project: Lucy
Issue Type: Sub-task
Reporter: Marvin Humphrey
Priority: Minor
C99 allows you to declare iterator variables within "for" loops, but C89 does
not:
{noformat}
// C99
for (int i = 0, max = 10; i < max; i++) {
// ...
}
/* C89 */
int i, max;
for (i = 0, max = 10; i < max; i++) {
/* ... */
}
{noformat}
The C99 idiom is superior because it limits the scope of the iterator
variable.
We have a number of C89-style iterator variables which should be switched
over. In some cases, the iterator variable is declared at the top of a scope
and then reused within several loops. That's the sort of pattern we'd like to
avoid.
The following crude grep command detects some candidates which ought to be
reviewed:
{noformat}
grep -r "for ([a-z] =" lucyalt | grep -v -e "svn\|charmonizer\|modules\|\.pm"
{noformat}
Care must be taken when performing this refactoring, because some code may
in fact be *relying* on iterator variables holding values across multiple
loops -- such as in PriorityQueue.c. It will be good when this refactoring
pass is finished because such code will stand out more.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[lucy-issues] [jira] [Assigned] (LUCY-146) Reduce iterator variable scopes
Posted by "Logan Bell (Assigned) (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/LUCY-146?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Logan Bell reassigned LUCY-146:
-------------------------------
Assignee: Logan Bell
> Reduce iterator variable scopes
> -------------------------------
>
> Key: LUCY-146
> URL: https://issues.apache.org/jira/browse/LUCY-146
> Project: Lucy
> Issue Type: Sub-task
> Reporter: Marvin Humphrey
> Assignee: Logan Bell
> Priority: Minor
>
> C99 allows you to declare iterator variables within "for" loops, but C89 does
> not:
> {noformat}
> // C99
> for (int i = 0, max = 10; i < max; i++) {
> // ...
> }
> /* C89 */
> int i, max;
> for (i = 0, max = 10; i < max; i++) {
> /* ... */
> }
> {noformat}
> The C99 idiom is superior because it limits the scope of the iterator
> variable.
> We have a number of C89-style iterator variables which should be switched
> over. In some cases, the iterator variable is declared at the top of a scope
> and then reused within several loops. That's the sort of pattern we'd like to
> avoid.
> The following crude grep command detects some candidates which ought to be
> reviewed:
> {noformat}
> grep -r "for ([a-z] =" lucyalt | grep -v -e "svn\|charmonizer\|modules\|\.pm"
> {noformat}
> Care must be taken when performing this refactoring, because some code may
> in fact be *relying* on iterator variables holding values across multiple
> loops -- such as in PriorityQueue.c. It will be good when this refactoring
> pass is finished because such code will stand out more.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
[lucy-issues] [jira] [Resolved] (LUCY-146) Reduce iterator variable scopes
Posted by "Logan Bell (Resolved) (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/LUCY-146?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Logan Bell resolved LUCY-146.
-----------------------------
Resolution: Fixed
Fix Version/s: 0.3.1 (incubating)
Everything should be updated with the exception of a large batch of unit tests.
> Reduce iterator variable scopes
> -------------------------------
>
> Key: LUCY-146
> URL: https://issues.apache.org/jira/browse/LUCY-146
> Project: Lucy
> Issue Type: Sub-task
> Reporter: Marvin Humphrey
> Assignee: Logan Bell
> Priority: Minor
> Fix For: 0.3.1 (incubating)
>
>
> C99 allows you to declare iterator variables within "for" loops, but C89 does
> not:
> {noformat}
> // C99
> for (int i = 0, max = 10; i < max; i++) {
> // ...
> }
> /* C89 */
> int i, max;
> for (i = 0, max = 10; i < max; i++) {
> /* ... */
> }
> {noformat}
> The C99 idiom is superior because it limits the scope of the iterator
> variable.
> We have a number of C89-style iterator variables which should be switched
> over. In some cases, the iterator variable is declared at the top of a scope
> and then reused within several loops. That's the sort of pattern we'd like to
> avoid.
> The following crude grep command detects some candidates which ought to be
> reviewed:
> {noformat}
> grep -r "for ([a-z] =" lucyalt | grep -v -e "svn\|charmonizer\|modules\|\.pm"
> {noformat}
> Care must be taken when performing this refactoring, because some code may
> in fact be *relying* on iterator variables holding values across multiple
> loops -- such as in PriorityQueue.c. It will be good when this refactoring
> pass is finished because such code will stand out more.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira