- 08 Mar, 2017 1 commit
-
-
David Renshaw authored
-
- 27 Feb, 2017 4 commits
-
-
Kenton Varda authored
Make sure to clear tag word when upgrading a struct list.
-
David Renshaw authored
-
Kenton Varda authored
Edit error message for the case where copyPointer() hits a FAR pointer.
-
David Renshaw authored
-
- 26 Feb, 2017 1 commit
-
-
David Renshaw authored
The existing error message suggests this case can only arise if there is a a bug in the library. However, malformed input can trigger the error too. In particular, the error gets thrown when a non-double far pointer resolves to another far pointer.
-
- 25 Feb, 2017 1 commit
-
-
David Renshaw authored
-
- 20 Feb, 2017 1 commit
-
-
Kenton Varda authored
fix bug in parsing of non-ascii constants
-
- 18 Feb, 2017 1 commit
-
-
David Renshaw authored
-
- 11 Feb, 2017 1 commit
-
-
Kenton Varda authored
-
- 03 Feb, 2017 1 commit
-
-
Kenton Varda authored
Fix MSVC build errors
-
- 02 Feb, 2017 2 commits
-
-
Harris Hancock authored
-
Harris Hancock authored
Closes #408. Perhaps the same bug as in commit cff9ba05?
-
- 27 Jan, 2017 8 commits
-
-
Kenton Varda authored
-
Kenton Varda authored
Add HTTP client and server implementation.
-
Kenton Varda authored
-
Kenton Varda authored
-
Kenton Varda authored
The old semantics were intended to allow more implementation freedom, but I find in my actual code it's very convenient to rely on the actual implementation details. Other implementations will just have to deal with it.
-
Kenton Varda authored
-
Kenton Varda authored
-
Kenton Varda authored
-
- 26 Jan, 2017 1 commit
-
-
Kenton Varda authored
-
- 24 Jan, 2017 18 commits
-
-
Kenton Varda authored
Let MSVC build without lite mode
-
Harris Hancock authored
-
Harris Hancock authored
-
Harris Hancock authored
Bootstrap regeneration commit to follow.
-
Harris Hancock authored
-
Harris Hancock authored
Although bootstrap regeneration will basically be a no-op (no bootstraps have deeply nested generics which this commit fixes), one will follow this commit for completeness.
-
Harris Hancock authored
-
Harris Hancock authored
-
Harris Hancock authored
MSVC cannot deduce sizes of arrays defined inside class templates. Bootstrap regeneration commit to follow.
-
Harris Hancock authored
-
Harris Hancock authored
-
Harris Hancock authored
MSVC erroneously refuses to compile code which calculates the address of objects of static storage duration at compile-time, despite this being legal. Work around this by changing `_capnpPrivate::brand` from constexpr pointers to static constexpr functions returning pointers. The compiler is then free to calculate it at compile-time if it can (gcc, clang), but can also defer it to run-time if it can't (MSVC). This change is split into three commits: 1. Changes to the code generator (this commit). 2. A bootstrap regeneration, after which the codebase will not compile. 3. Changes to the generated code support header, after which the codebase will again compile.
-
Harris Hancock authored
-
Harris Hancock authored
-
Harris Hancock authored
MSVC refuses the following code: struct Foo { Foo(Foo&) {} }; Foo foo; [foo] {}(); because it only seems to want to consider const copy constructors when capturing objects by value in lambda capture lists.
-
Harris Hancock authored
We could also port this by using the deprecated MSVC compiler intrinsics, but: 1) They're deprecated, 2) I've never used them, 3) We'd need to sprinkle some #if's in the code to support both MinGW and MSVC, increasing the maintenance burden.
-
Harris Hancock authored
-
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.
-