1. 23 Dec, 2017 5 commits
    • Kenton Varda's avatar
    • Kenton Varda's avatar
      Use KJ filesystem API in C++ code generator. · 6d1c3172
      Kenton Varda authored
      I got a little carried away here.
      6d1c3172
    • Kenton Varda's avatar
      Properly set PWD when executing code generator plugins. · 5c08829a
      Kenton Varda authored
      Otherwise, using kj::newDiskFilesystem() in the plugin complains.
      5c08829a
    • Kenton Varda's avatar
      Update SchemaParser to use KJ filesystem API. · c1fe2b03
      Kenton Varda authored
      This required some hairy backwards-compatibility hacks as the parseDiskFile() method is widely used.
      c1fe2b03
    • Kenton Varda's avatar
      Change capnp tool to use filesystem API. · e2a9467b
      Kenton Varda authored
      In addition to cleaner code, this has the effect of fixing a number of issues:
      - Fixes #494: Windows paths are now parsed and handled a lot better. On Windows, backslashes are handled appropriately, as are absolute paths with drive letters.
      - Fixes #288: Specifing a source path starting with ".." without an appropriate --src-prefix will no longer cause output files to be generated outside of the specified output directory. Instead, the output name will be based on the absolute path, and a warning will be written since this is probably not what anyone wants.
      - It's no longer necessary for --src-prefix to exactly match character-for-character. Instead, the prefix and source paths are canonicalized before matching. It even works if one is relative and the other absolute.
      - Relative paths are now consistently always evaluated in path space, so ".." always cancels the previous path component and the OS/filesystem never even sees that it was there. This used to be the case in some places but not others. This behavior is important for symlink-heavy source trees: the path "foo/some-symlink/.." is now always designates "foo", rather than designating the parent directory of the symlink's target.
      
      This change does not update the code generator plugins nor the SchemaParser API. Those will come in separate commits.
      e2a9467b
  2. 21 Dec, 2017 3 commits
  3. 20 Dec, 2017 5 commits
  4. 19 Dec, 2017 2 commits
  5. 14 Dec, 2017 6 commits
  6. 13 Dec, 2017 1 commit
    • Kenton Varda's avatar
      Add support for Own<void>. · 5f2172c6
      Kenton Varda authored
      Any Own<T> can be converted to Own<void> (or Own<const void>). The main purpose of this is to give someone a way to invoke an object's disposer without them having to know anything about the type.
      5f2172c6
  7. 11 Dec, 2017 18 commits