1. 14 Aug, 2019 1 commit
    • Joshua Haberman's avatar
      Roll forward Ruby upb changes now that protobuf Ruby build is fixed (#5866) · 63f324a9
      Joshua Haberman authored
      * Rolled forward again with "Updated upb from defcleanup branch..."
      
      Revert "Revert "Updated upb from defcleanup branch and modified Ruby to use it (#5539)" (#5848)"
      
      This reverts commit 1568deab.
      
      * A few more merge fixes.
      
      * Updated for defcleanup2 branch.
      
      * Fixed upb to define upb_decode().
      
      * Fixed names of nested messages.
      
      * Revert submodule.
      
      * Set -std=gnu90 and fixed warnings/errors.
      
      Some of our Kokoro tests seem to run with this level of warnings,
      and the source strives to be gnu90 compatible.  Enforcing it for
      every build removes the possibility of some errors showing up in
      Kokoro/Travis tests only.
      
      * Fixed remaining warnings with gnu90 mode.
      
      I tried to match warning flags with what Ruby appears to do
      in our Kokoro tests.
      
      * Initialize values registered by rb_gc_register_address().
      
      * Fixed subtle GC bug.
      
      We need to initialize this marked value before creating the instance.
      
      * Truly fix the GC bug.
      
      * Updated upb for mktime() fix.
      
      * Removed XOPEN_SOURCE as we are not using strptime().
      
      * Removed fixed tests from the conformance failure list for Ruby.
      
      * Fixed memory error related to oneof def names.
      
      * Picked up new upb changes re: JSON printing.
      
      * Uncomment concurrent decoding test.
      63f324a9
  2. 13 Aug, 2019 1 commit
    • Joshua Haberman's avatar
      Optimized away the creation of empty string objects. · 1e37a94b
      Joshua Haberman authored
      Prior to this CL, creating an empty message object would create
      two empty string objects for every declared field.  First we
      created a unique string object for the field's default.  Then
      we created yet another string object when we assigned the
      default value into the message: we called #encode to ensure
      that the string would have the correct encoding and be frozen.
      
      I optimized these unnecessary objects away with two fixes:
      
      1. Memoize the empty string so that we don't create a new empty
         string for every field's default.
      2. If we are assigning a string to a message object, avoid creating
         a new string if the assigned string has the correct encoding and
         is already frozen.
      1e37a94b
  3. 09 Aug, 2019 1 commit
    • Jie Luo's avatar
      Merge 3.9.x 201908071359 to master (#6484) · 43156775
      Jie Luo authored
      * Add changelog for 3.9.x
      
      * Revert "Make php message class final to avoid mocking (#6277)" (#6324)
      
      This reverts commit 7f84a943.
      This is just temporary. Eventually, we still want to roll forward this
      change. Some users are complaining they need more time to clean up their
      code.
      
      * Update extract_includes.bat.in
      
      File io_win32.h is not in directory google\protobuf\stubs under directory google\protobuf\io
      
      * Set oneof case in array constructor (#6351)
      
      Forgot to set it previously.
      
      * Update protobuf version (#6366)
      
      * Drop building wheel for python 3.4 (#6406)
      
      https://github.com/matthew-brett/multibuild/pull/240
      
      * Fix binary compatibility in FieldCodec factory methods (#6380) (#6424)
      
      * Fix binary compatibility in FieldCodec factory messages
      
      * Make default value parameter for current factories required
      
      * Route old methods through default value overloads
      
      * Remove ExtensionRegistry.Add(params) overload
      
      * Rename ExtensionRegistry.Add(IEnumerable<Extension>) overload to AddRange
      
      * Edit naming of parameters in Extension classes
      
      * * Fix add API warnings to docs for extension APIs
      * Rename internal ExtensionSet.GetValue to TryGetValue
      
      * Disable javadoc error (#6371)
      
      * Disable javadoc error
      
      Actual fixes of the javadoc will be followed up
      
      * Remove duplicated configuration
      
      * Update javadoc plugin version
      
      * Updated Bazel test script to use most recent Bazel version (#6413) (#6433)
      
      I'm not exactly sure why, but this fixes the failing Bazel presubmit
      test. Using the most recent version seems like a good idea anyway so
      that we can make sure we're compatible with any new Bazel changes.
      
      * [bazel] Add fixes for --incompatible_load_{cc,java,proto}_rules_from_bzl
      
      * No need to update version in generated code (#6471)
      
      generate_descriptor will handle that
      
      * Update protobuf version (#6472)
      43156775
  4. 25 Jul, 2019 1 commit
  5. 23 Jul, 2019 1 commit
  6. 10 Jul, 2019 1 commit
    • Chris Gaffney's avatar
      ruby: Improve performance of Google::Protobuf::Timestamp#to_time (#6360) · 7da7bec4
      Chris Gaffney authored
      This changes to_time to use Ruby's built in Time.at with nanos support
      rather than calculating a float and passing it to Time.at. The new
      version runs about 3 times faster than the original version and
      allocates fewer objects.
      
      Warming up --------------------------------------
          protobuf#to_time    57.296k i/100ms
            faster#to_time   133.229k i/100ms
      Calculating -------------------------------------
          protobuf#to_time    635.361k (± 2.1%) i/s -      3.209M in   5.052169s
            faster#to_time      1.873M (± 3.3%) i/s -      9.459M in   5.055169s
      
      Comparison:
            faster#to_time:  1873368.8 i/s
          protobuf#to_time:   635361.4 i/s - 2.95x  slower
      
      Calculating -------------------------------------
          protobuf#to_time   326.000  memsize (   126.000  retained)
                               7.000  objects (     2.000  retained)
                               0.000  strings (     0.000  retained)
            faster#to_time    86.000  memsize (     0.000  retained)
                               1.000  objects (     0.000  retained)
                               0.000  strings (     0.000  retained)
      
      Comparison:
            faster#to_time:         86 allocated
          protobuf#to_time:        326 allocated - 3.79x more
      7da7bec4
  7. 17 Jun, 2019 2 commits
  8. 16 Jun, 2019 1 commit
  9. 22 May, 2019 1 commit
  10. 21 May, 2019 3 commits
  11. 14 May, 2019 1 commit
  12. 13 May, 2019 1 commit
  13. 10 May, 2019 2 commits
  14. 23 Apr, 2019 1 commit
  15. 28 Mar, 2019 3 commits
  16. 27 Mar, 2019 2 commits
  17. 26 Mar, 2019 3 commits
  18. 25 Mar, 2019 2 commits
  19. 20 Mar, 2019 1 commit
  20. 14 Mar, 2019 3 commits
  21. 12 Mar, 2019 1 commit
  22. 11 Mar, 2019 1 commit
  23. 08 Mar, 2019 2 commits
  24. 07 Mar, 2019 1 commit
  25. 06 Mar, 2019 3 commits