<commit_before>2015-05-25 version 3.0.0-alpha-3 (Objective-C/C#):
  General
  * Introduced two new language implementations (Objective-C, C#) to proto3.
  * Disallowed "optional" keyword in proto3 syntax.
  * Removed groups fields in proto3 syntax.
  * Changed repeated primitive fields to use packed serialization by default in
    proto3 (implemented for C++, Java, Python in this release).  The user can
    still disable packed serialization by setting packed to false for now.
  * Added well-known type protos (any.proto, empty.proto, timestamp.proto,
    duration.proto, etc.). Users can import and use these protos just like
    regular proto files. Addtional runtime support will be added for them in
    future releases (in the form of utility helper functions, or having them
    replaced by language specific types in generated code).
  * Added a "reserved" keyword in both proto2 and proto3 syntax. User can use
    this keyword to declare reserved field numbers and names to prevent them
    from being reused by other fields in the same message.

    To reserve field numbers, add a reserved declaration in your message:

      message TestMessage {
        reserved 2, 15, 9 to 11, 3;
      }<commit_msg>Modify change log<commit_after>2015-05-25 version 3.0.0-alpha-3 (Objective-C/C#):
  General
  * Introduced two new language implementations (Objective-C, C#) to proto3.
  * Explicit "optional" keyword are disallowed in proto3 syntax, as fields are
    optional by default.
  * Group fields are no longer supported in proto3 syntax.
  * Changed repeated primitive fields to use packed serialization by default in
    proto3 (implemented for C++, Java, Python in this release).  The user can
    still disable packed serialization by setting packed to false for now.
  * Added well-known type protos (any.proto, empty.proto, timestamp.proto,
    duration.proto, etc.). Users can import and use these protos just like
    regular proto files. Addtional runtime support will be added for them in
    future releases (in the form of utility helper functions, or having them
    replaced by language specific types in generated code).
  * Added a "reserved" keyword in both proto2 and proto3 syntax. User can use
    this keyword to declare reserved field numbers and names to prevent them
    from being reused by other fields in the same message.

    To reserve field numbers, add a reserved declaration in your message:

      message TestMessage {
        reserved 2, 15, 9 to 11, 3;
      }
{'fraction_non_alphanumeric': 0.055400557991231565, 'fraction_numerical': 0.01992825827022718, 'mean_word_length': 3.4982078853046596, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5161283', 'n_tokens_mistral': 672, 'n_tokens_neox': 630, 'n_words': 343}