(original) (raw)


On 10/13/2014 03:04 PM, Nick Kledzik wrote:
I�d like to discuss revising the LLVM coding conventions to change the naming of variables to start with a lowercase letter. �This should not be a discussion on the pain of such a transition, or how to get from here to there, but rather, if there is a better place to be.�
+1, leaving aside all practicalities of migration

My arguments for the change are:

1\. No other popular C++ coding style uses capitalized variable names. �For instance here are other popular C++ conventions that use camelCase:

� �http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml
� �http://www.c-xx.com/ccc/ccc.php
� �http://geosoft.no/development/cppstyle.html

And, of course, the all-lower-case conventions (e.g. C++ ARM) don�t capitalize variable names. �In addition, all the common C derived languages don�t use capitalized variable names (e.g. Java, C#, Objective-C).


2\. Ambiguity. �Capitalizing type names is common across most C++ conventions. �But in LLVM variables are also capitalized which conflates types and variables. �Starting variable names with a lowercase letter disambiguates variables from types. For instance, the following are ambiguous using LLVM�s conventions:

Xxx Yyy(Zzz); �// function prototype or local object construction?
Aaa(Bbb); � � �// function call or cast?


3\. Allows name re-use. Since types and variables are both nouns, using different capitalization allows you to use the same simple name for types and variables, for instance:

Stream �stream;


4\. Dubious history. �Years ago the LLVM coding convention did not specify if variables were capitalized or not. �Different contributors used different styles. �Then in an effort to make the style more uniform, someone flipped a coin and updated the convention doc to say variables should be capitalized. �I never saw any on-list discussion about this.


5\. Momentum only. �When I�ve talked with various contributors privately, I have found no one who says they likes capitalized variables. �It seems like everyone thinks the conventions are carved in stone... �


My proposal is that we modify the LLVM Coding Conventions to have variable names start with a lowercase letter. �

Index: CodingStandards.rst
===================================================================
--- CodingStandards.rst (revision 219065)
+++ CodingStandards.rst (working copy)
@@ -1073,8 +1073,8 @@
� �nouns and start with an upper-case letter (e.g. \`\`TextFileReader\`\`).

�\* \*\*Variable names\*\* should be nouns (as they represent state).� The name should
-� be camel case, and start with an upper case letter (e.g. \`\`Leader\`\` or
-� \`\`Boats\`\`).
+� be camel case, and start with a lower case letter (e.g. \`\`leader\`\` or
+� \`\`boats\`\`).
� �
�\* \*\*Function names\*\* should be verb phrases (as they represent actions), and
�� command-like function should be imperative.� The name should be camel case,


\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_  
LLVM Developers mailing list  
LLVMdev@cs.uiuc.edu http://llvm.cs.uiuc.edu  
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev