1. 20 Apr, 2018 1 commit
    • Thomas Van Lenten's avatar
      Remove the iOS Test App. · b59da6d0
      Thomas Van Lenten authored
      The tests can run as what Apple calls a Logic Test (under xctest), which means
      it doesn't have to load an full UI App under the simulator, which speeds things
      up a fair amount.
      b59da6d0
  2. 06 Apr, 2018 1 commit
  3. 02 Apr, 2018 1 commit
    • Thomas Van Lenten's avatar
      Add compile test sources for to test include order. · e998b8ff
      Thomas Van Lenten authored
      To ensure all headers aren't dependent on other things being imported
      before/after them, make a source that just imports each header and add
      it to the unittesting target, that way we ensure it can be included on
      its own with ordering issues.
      
      Also do this testing with a few generated headers that aren't part of
      the library to help ensure the different generated imports needed are
      complete.
      e998b8ff
  4. 16 Nov, 2017 1 commit
  5. 03 Oct, 2017 1 commit
  6. 17 May, 2017 1 commit
    • Thomas Van Lenten's avatar
      Fix ExtensionRegistry copying and add tests. · 49e4ba60
      Thomas Van Lenten authored
      - Fix up -copyWithZone: to not leave the two registries sharing
        some of the storage by using -addExtensions:.
      - Improve -addExtensions: to clone the sub dict when there is
        nothing to merge into.
      - A ExtensionRegistry unittests.
      - Update project schemes to not have extra things in perf scheme.
      49e4ba60
  7. 05 Jan, 2017 1 commit
    • Thomas Van Lenten's avatar
      Minor fix for autocreated object repeated fields and maps. · 988ffe0a
      Thomas Van Lenten authored
      - If setting/clearing a repeated field/map that was objects, check the class
        before checking the autocreator.
      - Just to be paranoid, don’t mutate within copy/mutableCopy for the autocreated
        classes to ensure there is less chance of issues if someone does something
        really crazy threading wise.
      - Some more tests for the internal AutocreatedArray/AutocreatedDictionary
        classes to ensure things are working as expected.
      - Add Xcode 8.2 to the full_mac_build.sh supported list.
      988ffe0a
  8. 03 Oct, 2016 1 commit
    • Thomas Van Lenten's avatar
      Update the ObjC projects for Xcode 8 · 297449aa
      Thomas Van Lenten authored
      - Let Xcode 8 update settings on the projects/schemes.
      - Migrate Swift tests to Swift 3 syntax.
      - Update the build/test script:
        - Require Xcode 8 (because of the Swift 3 requirement for tests)
        - Update the devices to what Xcode 8 has (8.x simulator seem to fail even
          though they can be downloaded in Xcode 8)
      - Update the travis images to ones with Xcode 8.
      297449aa
  9. 08 Sep, 2016 1 commit
  10. 01 Sep, 2016 1 commit
    • Thomas Van Lenten's avatar
      Make Root's +extensionRegistry generation smarter. · 13a41246
      Thomas Van Lenten authored
      At generation time, walk the file's dependencies to see what really contains
      extensions so we can generate more minimal code that only links together the
      roots that provided extensions. Gets a bunch of otherwise noop code out of
      the call flow when the roots are +initialized.
      13a41246
  11. 08 Jul, 2016 1 commit
  12. 07 Jul, 2016 1 commit
    • Thomas Van Lenten's avatar
      Don't #import the .m files. · be0d7f66
      Thomas Van Lenten authored
      As bazel folks are looking at getting auto generation of module maps going and
      the importing of sources files causes issues there.  We were only do it to
      hack around some of the apple linker behaviors around objc classes and
      categories, but even that isn't complete and CocoaPods was already doing -ObjC,
      and developers not using pods could have still needed it to ensure everything
      was linked anyways; so drop the hack of importing sources.
      be0d7f66
  13. 29 Jun, 2016 1 commit
    • Thomas Van Lenten's avatar
      Xcode project cleanup/setup. · 6cfc19ed
      Thomas Van Lenten authored
      - Correct some cases sources were compiled into the static lib and the tests.
      - Enable Xcodes code coverage support on the unittests.  We aren't complete on
        coverage, but having the data always there should make it easier to chip away
        at this going forward.
      - Drop method in tests that isn't used, wire up a validator in another test.
      6cfc19ed
  14. 27 May, 2016 1 commit
  15. 25 May, 2016 1 commit
    • Thomas Van Lenten's avatar
      Add more warnings to for the ObjC runtime build · c8a440df
      Thomas Van Lenten authored
      Working on https://github.com/google/protobuf/issues/1599, specifically:
      - Turn on more warnings that the Xcode UI calls out with individual controls.
      - Manually add:
        -Wundef
        -Wswitch-enum
      - Manually add and then diable in the unittests because of XCTest's headers:
        -Wreserved-id-macro
        -Wdocumentation-unknown-command
      - Manually add -Wdirect-ivar-access, but disable it for the unittests and in
        the library code (via #pragmas to suppress it). This is done so proto users
        can enable the warning.
      c8a440df
  16. 17 Mar, 2016 1 commit
    • Thomas Van Lenten's avatar
      Shrink ObjC overhead (generated size and some runtime sizes) · 79a23c43
      Thomas Van Lenten authored
      NOTE: This is a binary breaking change as structure sizes have changed size
      and/or order.
      
      - Drop capturing field options, no other options were captured and other mobile
        targeted languages don't try to capture this sort information (saved 8
        bytes for every field defined (in static data and again in field descriptor
        instance size data).
      - No longer generate/compile in the messages/enums in descriptor.proto. If
        developers need it, they should generate it and compile it in. Reduced the
        overhead of the core library.
      - Compute the number of has_bits actually needs to avoid over reserving.
      - Let the boolean single fields store via a has_bit to avoid storage, makes
        the common cases of the instance size smaller.
      - Reorder some flags and down size the enums to contain the bits needed.
      - Reorder the items in the structures to manually ensure they are are packed
        better (especially when generating 64bit code - 8 bytes for every field,
        16 bytes for every extension, instance sizes 8 bytes also).
      - Split off the structure initialization so when the default is zero, the
        generated static storage doesn't need to reserve the space. This is batched
        at the message level, so all the fields for the message have to have zero
        defaults to get the saves. By definition all proto3 syntax  files fall into
        this case but it also saves space for the proto2 that use the standard
        defaults. (saves 8 bytes of static data for every field that had a zero
        default)
      - Don't track the enums defined by a message. Nothing in the runtime needs it
        and it was just generation and runtime overhead. (saves 8 bytes per enum)
      - Ensure EnumDescriptors are started up threadsafe in all cases.
      - Split some of the Descriptor initialization into multiple methods so the
        generated code isn't padded with lots of zero/nil args.
      - Change how oneof info is feed to the runtime enabling us to generate less
        static data (8 bytes saved per oneof for 64bit).
      - Change how enum value informat is capture to pack the data and only decode
        it if it ends up being needed. Avoids padding issues causing bloat of 64bit,
        and removes the needs for extra pointers in addition to the data (just the
        data and one pointer now).
      79a23c43
  17. 07 Mar, 2016 1 commit
  18. 07 Jan, 2016 1 commit
  19. 17 Dec, 2015 1 commit
  20. 10 Dec, 2015 1 commit
    • Thomas Van Lenten's avatar
      Update the min toolchain for iOS/OS X to be Xcode 7 · 938ba410
      Thomas Van Lenten authored
      - Let Xcode update the projects, schemes, and info.plists.
      - Add workaround for shallow analyzer issues in current Xcode versions (deep analyze gets things correct).
      - Tweak the Swift based tests to avoid warnings from Xcode 7's XCTest using optionals for autoenclosure results.
      - No longer tag the ObjC iOS travis test as flaky, xctool seems to manage the simulator pretty well.
      938ba410
  21. 07 Dec, 2015 1 commit
  22. 01 Oct, 2015 1 commit
  23. 08 Jun, 2015 1 commit
    • Thomas Van Lenten's avatar
      Beta quality drop of Objective C Support. · d846b0b0
      Thomas Van Lenten authored
      - Add more to the ObjC dir readme.
      - Merge the ExtensionField and ExtensionDescriptor to reduce overhead.
      - Fix an initialization race.
      - Clean up the Xcode schemes.
      - Remove the class/enum filter.
      - Remove some forced inline that were bloating things without proof of performance wins.
      - Rename some internal types to avoid conflicts with the well know types protos.
      - Drop the use of ApplyFunctions to the compiler/optimizer can do what it wants.
      - Better document some possible future improvements.
      - Add missing support for parsing repeated primitive fields in packed or unpacked forms.
      - Improve -hash.
      - Add *Count for repeated and map<> fields to avoid auto create when checking for them being set.
      d846b0b0
  24. 26 May, 2015 1 commit
    • Thomas Van Lenten's avatar
      ObjC fixup for the branch. · 58cd4a47
      Thomas Van Lenten authored
      - Shouldn't need SRCROOT in the project since Xcode should be setting the working directory to where the project lives.
      - Remove the packed/unpacked repeated enum field in the tests and update the code to handle the defaults.
      - Move up the ignore to cover .DS_Store files in src also.
      
      add starstar
      58cd4a47
  25. 25 May, 2015 1 commit
  26. 22 May, 2015 1 commit
    • Thomas Van Lenten's avatar
      Objective C Second Alpha Drop · 1dcc3294
      Thomas Van Lenten authored
      - Style fixups in the code.
      - map<> serialization fixes and more tests.
      - Autocreation of map<> fields (to match repeated fields).
      - @@protoc_insertion_point(global_scope|imports).
      - Fixup proto2 syntax extension support.
      - Move all startup code to +initialize so it happen on class usage and not app startup.
      - Have generated headers use forward declarations and move imports into generated code, reduces what is need at compile time to speed up compiled and avoid pointless rippling of rebuilds.
      1dcc3294
  27. 06 May, 2015 1 commit