1. 09 Jun, 2017 1 commit
    • Neal Gompa's avatar
      Add versioning to the libraries in the CMake build · 7d7847b5
      Neal Gompa authored
      The Autotools and CMake builds are almost the same, except for
      the libraries not being generated as versioned libraries in CMake.
      
      Fixing this lets Linux CMake builds be on the same level as Autotools ones.
      7d7847b5
  2. 05 Jun, 2017 2 commits
  3. 29 May, 2017 3 commits
    • Harris Hancock's avatar
      Fix typo and formatting in comments · bd78705c
      Harris Hancock authored
      bd78705c
    • Harris Hancock's avatar
      Fix build error in MSVC · c4629e37
      Harris Hancock authored
      Closes #479.
      
      If T is a template instantiation and `List<T, kind<T>()>` is the return or
      parameter type of a function (notably get, set, init, adopt, and disown
      functions) defined out-of-line from its definition, MSVC fails to match
      the definition with its declaration. This seems to be another consequence
      of poor expression SFINAE / constexpr support.
      
      An easy workaround is to avoid using kind<T>() and instead manually
      instantiate Kind_<T>, as in lite mode. When I converted Kind_<T> to use
      VoidSfinae, I had thought this solved the problem, but clearly there are
      still edge cases.
      c4629e37
    • Harris Hancock's avatar
      Add MSVC build error to test.capnp · 02b7f5ad
      Harris Hancock authored
      02b7f5ad
  4. 26 May, 2017 1 commit
    • Kenton Varda's avatar
      Restore workaround for GCC 4.9.2. · d624d56e
      Kenton Varda authored
      This work-around had been removed in 75c7aaee.
      
      However, it turns out that many Debian Jessie systems still use 4.9.2 (not 4.9.4, which is fixed).
      
      I've changed the #if to more specifically target 4.9.x, which should cover all affected versions (in addition to some fixed versions).
      d624d56e
  5. 23 May, 2017 2 commits
  6. 22 May, 2017 2 commits
    • Kenton Varda's avatar
      Disable implicit conversion from string literal to ArrayPtr<const char>. · 97aae1bb
      Kenton Varda authored
      This conversion would end up including the NUL terminator in the array, which is almost never what you want.
      
      We can perhaps re-enable this in the future and have it automatically remove the NUL terminator, but we should do at least one release with it disabled to catch anyone who might be affected by the change in behavior.
      97aae1bb
    • Kenton Varda's avatar
      Encapsulate default type ID generation better. · 75845ceb
      Kenton Varda authored
      People see files named "md5" and get worried about security issues, even though we're using it only as a *non-cryptographic* PRNG. So, I renamed the files to type-id.*, encapsulated the code better to make clear that it's only used to generate type IDs, and added comments clarifying that we're not expecting it to be collision-proof.
      
      Fixes #482.
      75845ceb
  7. 21 May, 2017 1 commit
  8. 19 May, 2017 3 commits
  9. 03 May, 2017 1 commit
    • Ian Denhardt's avatar
      Remove references to obsolete isCallersFault · a901d43e
      Ian Denhardt authored
      At some point isCallersFault was marked as obsolete, but the description
      of abort still referenced it, suggesting particular usage. This patch
      removes said references.
      
      Since `git-diff` does *such* a good job with prose: This just removes
      the two parentheticals and re-flows the paragraph.
      a901d43e
  10. 30 Apr, 2017 1 commit
  11. 29 Apr, 2017 4 commits
    • Harris Hancock's avatar
      Use target_compile_features to request C++11 · 1d0d1c3b
      Harris Hancock authored
      Projects which use Cap'n Proto require C++11, because they must be able to
      compile our headers. Old gcc defaults to C++98, forcing users to manually
      specify the -std=gnu++11 flag in their CMake projects. CMake 3.1
      introduced the target_compile_features command which removes this
      necessity by automatically communicating the C++ standard level
      requirement to client projects.
      
      Specifically, if target `kj` requires a C++11 feature publicly, then all
      targets which link to `kj` will also require that C++11 feature, and get
      the -std=gnu++11 flag for free. If that target is a library, such as
      `kj-async`, and `kj-async` links publicly to `kj`, the requirement is also
      transitive to all targets which link to `kj-async`.
      
      Note that CMake's default behavior is to request compiler-specific
      extensions, such as those provided by the -std=gnu++11 flag. You must
      specifically opt out of these extensions. I'm not aware of any way to
      propagate this nuance in CMake, but added a check to at least prevent
      users from compiling Cap'n Proto without extensions.
      
      With this change, the c++/samples/CMakeLists.txt will build with MinGW
      with no change beyond requiring a later version of CMake.
      1d0d1c3b
    • Kenton Varda's avatar
      Revert "Punt some TODOs to next release." · ab5e35e4
      Kenton Varda authored
      This reverts commit f836a5fc.
      ab5e35e4
    • Kenton Varda's avatar
      Set mainlaine version to 0.7-dev. · 22e9f2a5
      Kenton Varda authored
      22e9f2a5
    • Kenton Varda's avatar
      Punt some TODOs to next release. · f836a5fc
      Kenton Varda authored
      f836a5fc
  12. 28 Apr, 2017 6 commits
  13. 26 Apr, 2017 2 commits
  14. 25 Apr, 2017 7 commits
  15. 24 Apr, 2017 2 commits
  16. 22 Apr, 2017 2 commits