- 24 Jan, 2017 1 commit
-
-
Harris Hancock authored
Reads and writes of volatile aligned words are automatically blessed with atomic acquire and release semantics at compile-time by MSVC, leaving only CPU operation reordering to worry about. x86 and x64 CPUs will not reorder the operations, but MSVC targets Xbox, which notably will reorder them, thus I added fences out of an abundance of caution. While Cap'n Proto likely will not compile for Xbox as-is, I would hate for someone to port it only to have to debug obscure atomic-operation-related crashes later. I implemented the fences using std::atomic_thread_fence rather than MemoryBarrier(), because including windows.h in raw-schema.h is a non-starter, and it would be silly to reimplement it with in-line assembly and intrinsics for every targeted CPU when <atomic> is available. Another possible implementation could have been to use the InterlockedXxx functions, however they present a few issues: 1. They're defined in windows.h. We could define them in terms of their underlying _InterlockedXxx intrinsics, but we'd need more #if blocks to handle both 32-bit and 64-bit pointers. If we go this route, it'd probably be better to go all-in and define some kj::atomic{Load,Store} functions. 2. We cannot implement atomic load-acquire semantics with them for const variables without const_casting.
-
- 12 Dec, 2014 1 commit
-
-
Kenton Varda authored
-
- 30 Nov, 2014 1 commit
-
-
Kenton Varda authored
-
- 29 Nov, 2014 1 commit
-
-
Kenton Varda authored
Add asBytes() and asChars() methods to array classes to reinterpret-cast to bytes / chars, since this happens all the time and is otherwise a huge pain. Use the new methods in a bunch of places.
-
- 26 Oct, 2014 1 commit
-
-
Kenton Varda authored
Extended discussion: https://groups.google.com/d/msg/capnproto/lRlWBOglQv4/8-Qo96AcZQIJ
-
- 25 Oct, 2014 2 commits
-
-
Kenton Varda authored
-
Kenton Varda authored
See changes to test.capnp for example. Currently only supported through generated code, not in the dynamic API. Not exactly sure how to expose this in the dynamic API...
-
- 23 Oct, 2014 1 commit
-
-
Kenton Varda authored
Note that embedded schema structures in generated code are still incorrect.
-
- 20 Oct, 2014 1 commit
-
-
Kenton Varda authored
-
- 17 Oct, 2014 2 commits
-
-
Kenton Varda authored
-
Kenton Varda authored
-
- 11 Oct, 2014 1 commit
-
-
Kenton Varda authored
-
- 20 Jun, 2014 1 commit
-
-
Kenton Varda authored
For portions currently copyright by Kenton (most of it), transfer copyright to Sandstorm Development Group, Inc. (Kenton's company). The license change is practically meaningless, as MIT and BSD 2-clause are legally equivalent. However, the BSD 2-clause license is sometimes confused for its ugly siblings, BSD 3-clause and BSD 4-clause. The MIT license is more immediately recognizeable for what it is. Rémy Blank and Jason Choy (the two non-trivial contributors) are on record as approving this change: https://groups.google.com/d/msg/capnproto/xXDd2HUOCcc/gbe_COIuXKYJ
-
- 06 Dec, 2013 1 commit
-
-
Kenton Varda authored
Extend totalSizeInWords() to also return a count of capabilities, which helps when a separate capability table needs to be allocated as well. Use this in the RPC system.
-
- 05 Dec, 2013 1 commit
-
-
Kenton Varda authored
-
- 14 Nov, 2013 1 commit
-
-
Kenton Varda authored
Remove 'has' for primitive fields. Dynamic version always returns true. This also means that primitives are always included in text format, even if they are default-valued.
-
- 02 Oct, 2013 1 commit
-
-
Kenton Varda authored
Interface code generation. Also update method grammar to allow multiple returns, and allow specifying request/response structs instead of parameter lists.
-
- 29 Sep, 2013 1 commit
-
-
Kenton Varda authored
Extend interface grammar to support inheritance, and update compiler to properly compile interfaces.
-
- 24 Sep, 2013 1 commit
-
-
Kenton Varda authored
Revamp generated interface to Object fields. Now there is an ObjectPointer::{Reader,Builder}. This will simplify the dynamic API (next change) and also makes it easier to delegate decisions about the object type to a function that doesn't know about the context where the object lives (i.e. by passing an ObjectPointer::Builder).
-
- 30 Aug, 2013 1 commit
-
-
Kenton Varda authored
-
- 28 Aug, 2013 2 commits
-
-
Kenton Varda authored
Rename non-group again, now to 'slot', which is much nicer. Also introduce fixed lists as a third kind of field (but not implemented yet).
-
Kenton Varda authored
-
- 27 Aug, 2013 1 commit
-
-
Kenton Varda authored
-
- 23 Aug, 2013 1 commit
-
-
Kenton Varda authored
-
- 22 Aug, 2013 4 commits
-
-
Kenton Varda authored
New method isFoo() exists for union fields only and returns true if foo is the active union field.
-
Kenton Varda authored
-
Kenton Varda authored
-
Kenton Varda authored
-
- 21 Aug, 2013 3 commits
-
-
Kenton Varda authored
-
Kenton Varda authored
-
Kenton Varda authored
-
- 20 Aug, 2013 1 commit
-
-
Kenton Varda authored
-
- 15 Aug, 2013 3 commits
-
-
Kenton Varda authored
-
Kenton Varda authored
-
Kenton Varda authored
Unnamed unions WIP. About to change MemberInfo format, which will require re-bootstrapping the code generator.
-
- 09 Aug, 2013 1 commit
-
-
Kenton Varda authored
-
- 20 Jul, 2013 1 commit
-
-
Kenton Varda authored
-
- 19 Jul, 2013 1 commit
-
-
Kenton Varda authored
-
- 18 Jul, 2013 2 commits
-
-
Kenton Varda authored
Allow SchemaLoader to use a callback to lazily load schema nodes, including dependencies of loaded nodes.
-
Kenton Varda authored
-