- Change formatting rules of braced initializers.
- Permit use of constexpr and allow constexpr global variables.
- Allow all C++11 features except for those that are specifically banned.
- Fix/add C99 format specifiers for ptrdiff_t and ssize_t.
- Add lambda expressions to the list of explicitly banned C++11 features.
- Relax "return type is always on the same line as the function name" rule.
- Allow unique_ptr, discourage ownership transfer. Allow noncopyable std::move.
- Allow system-specific includes after other includes.
- Add boost/math/distributions to the set of permitted Boost libraries.
Update Objective-C style guide to 2.59:
- Use instancetype as return type for example init methods.
- Remove invalid +stringWithInt: call.
- Remove reference to pre-Objective-C 2.0 declaration requirements.
- Remove reference to Objective-C exception macros.
- Remove reference to informal protocols as an alternative to optional methods.
- Class headers should include comments documenting non-trivial interfaces.
- Don't specify that blocks are preferable to methods as callbacks.
- Specify "strong" and "weak" as comments for non-Objective-C pointers.
- Replace improper reference to ownership of a retained object.
- Clarify some aspects of method ordering rules.
- Prefixes are required for shared code and optional for applications.
- Clarify that nil pointers are safe as receivers, not necessarily parameters.
- Clarify that delegate pointers should typically be zeroing weak pointers.
- Allow a 100-column limit, except for projects that choose to use 80.
Update Python style guide to 2.59:
- Add more examples of bad code to the default arguments section.
- Allow ''' when ' is used as the single quote within a file.
- Remove references to pychecker. Recommend pylint.
- Add more examples to the indentation section.
Update JavaScript style guide to 2.93:
- Add @nocompile.
- Fix a few typos.
- When wrapping lines, indent more deeply for child expressions.
- Document that @const can be used on a constructor.
- Update eval section to discourage using eval for RPC.
- Update an example to avoid encouraging using numbers as booleans.
- Allow for no indentation of @desc jsdoc tags.
- Add @public discussion.
Update shell style guide to 1.26:
- Add a section on style for case statements.
Update Common Lisp style guide to 1.23:
- fare-matcher was superseded by optima.
- Clarify wording regarding DYNAMIC-EXTENT.
- Add boost::bimap to the list of allowed Boost libraries.
- C++11: remove mention of constexpr.
- Remove noun/verb naming rules, and consolidate "General Naming Rules".
- C++11: allow variadic templates.
- Revise guidance on function definition comments.
- Clarify that one space is sufficient before trailing /* */ comments.
- C++11: allow alias templates.
- C++11: allow <array>, deprecate Boost array.
- C++11: allow unique_ptr, deprecate Boost pointer container.
- C++11: allow braced initializer lists.
Update Objective-C style guide to 2.56:
- Add details on constant declarations to clarify naming and scope issues.
- Update link to Apple's Objective-C guide.
- Allow left-aligning multi-block method invocation segments.
- Add section on container literals.
Update Python style guide to 2.54:
- Allow str.format in addition to the % operator.
- Allow #!/usr/bin/python2 and #!/usr/bin/python3.
- Move the closing brace example from column 4 to 0.
- Remove the requirement to use named parameters for arguments with defaults.
Update HTML/CSS style guide to 2.23:
- No changes.
Update JavaScript style guide to 2.82:
- Fix typos, whitespace, and character entities.
- Include property descriptions in the clause about omitting obvious comments.
- Make file overviews optional.
- Fix example in "HTML in JSDoc" section.
- Remove the semicolon-insertion language from the operators section.
- State that complete sentences are recommended but not required.
- Document usage of goog.scope to declare new classes.
Update Common Lisp style guide to 1.20:
- Indicate both variable and function predicates require a "p".
- Make the abbreviations rules consistent and in one location.
- Don't allow for the use of &AUX.
- Allow for "body" and "end" as exceptions to the suffix rule.
- Use the TODO convention to mark code that needs to be addressed.
- Remove file maintainership requirements, require a description.
- Change top-level form requirements to the length of a page.
- Remove "don't be clever".
- Relax the rule for sizeof(varname) vs. sizeof(type).
- Allow an exception for nonconst reference parameters where
convention dictates their use, such as for swap.
- C++11: allow static_assert.
- Require non-trivial fall-through between cases in switch
statements to be annotated. Trivial fall-through includes
consecutive case labels with no intervening code, and no comment
is required in these cases.
- C++11: allow constexpr.
- Revise the "Integer Types" section to note type-width problems.
- Clarify that the "arguments on subsequent lines" function call
style is acceptable even when the 80-column limit doesn't require
it.
- Boost: allow part of Polygon.
- C++11: allow <tuple>.
Update Objective-C style guide to 2.52:
- Fix ARC example to not imply the use of @private in .m files.
- Add an example to the "Category Names" section.
- Require that ARC-using files insert preprocessor directives that
generate an error when compiling without ARC.
- Fix spacing around the *s in the ARC example per the C++ style
guide.
Update Python style guide to 2.48:
- Allow comments with URLs to exceed 80 characters per line.
- Update outdated implicit-line-joining URLs.
Update HTML/CSS style guide to 2.21:
- Consistent use of title case.
- Add new "Declaration Block Separation" section.
- Add a CSS example to the "Capitalization" section.
- Minor fixes to whitespace.
Update JavaScript style to guide to 2.72:
- Make it clear that the injunction against aliasing namespaces only
applies to local aliases, not goog.scope.
- Clarify the style guide's recommendation on array/object literals.
- Add documentation on @private {type}, @protected {type}, and
@const {type}.
- Make JSDoc descriptions required only if not obvious.
- Clarify that only private properties and methods need a trailing
underscore.
- Fix spelling of arv's name.
Update Common Lisp style guide to 1.18:
- Macro-defining macros are harder to understand for everyone, not
just for the "uninitiated." There's no need to condescend.
In all of the above style guides:
- The guide source is now encoded as UTF-8. The numeric character
references have been replaced with raw UTF-8-encoded characters.