- 29 Jul, 2015 13 commits
-
-
Orvid King authored
Summary: Specifically, MSVC doesn't define `std::__ostream_insert`, so just write to the stream instead. Closes #270 Reviewed By: @yfeldblum Differential Revision: D2283960 Pulled By: @sgolemon
-
Orvid King authored
Summary: Because MSVC doesn't support `__thread`, and `FOLLY_TLS` is already setup to use the MSVC syntax when needed. Closes #269 Reviewed By: @yfeldblum Differential Revision: D2283919 Pulled By: @sgolemon
-
Orvid King authored
Summary: This adds `asm_volatile_memory`, which goes along with the same style used by `asm_volatile_pause`. This also switches the two places in `RWSpinLock.h` that were using inline assembly for this to use the new functions instead. Closes #260 Reviewed By: @yfeldblum Differential Revision: D2283541 Pulled By: @sgolemon
-
Orvid King authored
Summary: This adds `FOLLY_ALIGNED` to `Portability.h`, and adjusts the places that were previously using the raw aligned attribute to use this instead. Closes #262 Reviewed By: @yfeldblum Differential Revision: D2283639 Pulled By: @sgolemon
-
Orvid King authored
Summary: With MSVC, `seedData.begin()` does not return a `void*`, so get a pointer to the data, and explicitly cast that to a `void*` instead. Closes #251 Reviewed By: @yfeldblum Differential Revision: D2282929 Pulled By: @sgolemon
-
Orvid King authored
Summary: This implements it via a function called on startup. The mechanism used is roughly equivelent of `__attribute__((__constructor__))` in that it doesn't have the ability to set the order of invokation. Closes #249 Reviewed By: @yfeldblum Differential Revision: D2282860 Pulled By: @sgolemon
-
Andrey Goder authored
Summary: Before this change you would get an error like: "Expected to get greater than or equal to1 for value 0" Now it add in the space correctly: "Expected to get greater than or equal to 1 for value 0" Reviewed By: @snarkmaster Differential Revision: D2288454
-
Tudor Bosman authored
Summary: exit() is evil, let's make it easier for programs that want to exit successfully. Reviewed By: @meyering Differential Revision: D2290201
-
Alexander Shaposhnikov authored
Summary: This diff adds partial specializations of folly::hasher for enum types, std::pair and std::tuple. We also restrict the specialization for folly::Range to POD value types. Reviewed By: @ot, @ddrcoder Differential Revision: D2285554
-
Yedidya Feldblum authored
Summary: [Folly] Fix Build: FOLLY_SSE and preprocessor floats. Float values for preprocessor symbols are not a thing. Reviewed By: @fyan Differential Revision: D2289436
-
Alexander Shaposhnikov authored
Summary: This diff fixes the helper template ReturnValue to enable using of applyTuple with constant refs. Reviewed By: @ot, @ddrcoder Differential Revision: D2284733
-
Sara Golemon authored
Summary: Also fix URLs hand-modified by D2219135 which didn't quite update them enough. Point them at the new repo. Reviewed By: @yfeldblum Differential Revision: D2285053
-
Orvid King authored
Summary: MSVC will just produce syntax errors if these are left where they currently are. GCC and LLVM support them in either location with the same meaning. Closes #267 Reviewed By: @yfeldblum Differential Revision: D2283889 Pulled By: @sgolemon
-
- 28 Jul, 2015 10 commits
-
-
Orvid King authored
Summary: Closes #266 Reviewed By: @yfeldblum Differential Revision: D2283774 Pulled By: @sgolemon
-
Orvid King authored
Summary: Closes #261 Reviewed By: @yfeldblum Differential Revision: D2283554 Pulled By: @sgolemon
-
Orvid King authored
Summary: This adds MSVC support for `FOLLY_DEPRECATED`. Closes #257 Reviewed By: @yfeldblum Differential Revision: D2283484 Pulled By: @sgolemon
-
Orvid King authored
Summary: This unifies ways of detecting SSE support into the FOLLY_SSE define which is a numeric value from 0 to 4.2 depending on detected level. This also adds a `#define` for `__extension__` which is used in folly, but is GCC specific. Closes #259 Reviewed By: @yfeldblum Differential Revision: D2283522 Pulled By: @sgolemon
-
Orvid King authored
Summary: This adds MSVC support for `FOLLY_FINAL` and `FOLLY_OVERRIDE`. Closes #258 Reviewed By: @yfeldblum Differential Revision: D2283502 Pulled By: @sgolemon
-
Orvid King authored
Summary: This adds MSVC support to the detection of FOLLY_HAS_RTTI. Closes #255 Reviewed By: @yfeldblum Differential Revision: D2283036 Pulled By: @sgolemon
-
Jason Rahman authored
Summary: Update the internal lambda to mutable to support mutable lambdas as parameters to Future::ensure() Reviewed By: @yfeldblum Differential Revision: D2286097
-
Orvid King authored
Summary: MSVC complains if these are not there. Closes #248 Reviewed By: @yfeldblum Differential Revision: D2282845 Pulled By: @sgolemon
-
Orvid King authored
Summary: MSVC supports the intrinsics used by it without any issue other changes, so just make sure the error doesn't trigger on MSVC. Closes #252 Reviewed By: @yfeldblum Differential Revision: D2282942 Pulled By: @sgolemon
-
Orvid King authored
Summary: This implements support for `asm_volatile_pause` and `asm_pause`, as defined in `Portability.h`, for MSVC. This is needed because MSVC x64 doesn't support inline assembly. Closes #254 Reviewed By: @yfeldblum Differential Revision: D2283006 Pulled By: @sgolemon
-
- 27 Jul, 2015 7 commits
-
-
Orvid King authored
Summary: Noticed because of a warning emitted by MSVC, this fixees the literal for `kLockedPtr_` to correctly be 64-bits under MSVC, rather than 32-bit. Closes #245 Reviewed By: @yfeldblum Differential Revision: D2282806 Pulled By: @sgolemon
-
Orvid King authored
Summary: MSVC defaults enum sizes to int, so explicitly use `size_t` as the base to have it correctly sized. Closes #246 Reviewed By: @yfeldblum Differential Revision: D2282816 Pulled By: @sgolemon
-
Sophia Wang authored
Summary: fix a use after free bug. this line is stupid! Reviewed By: @siyengar Differential Revision: D2283041
-
James Sedgwick authored
Summary: she's gooooooone, oh why, oh why, i better learn how to face it... https://www.youtube.com/watch?v=bnVXIUyshng Reviewed By: @djwatson Differential Revision: D2219135
-
Sara Golemon authored
-
Alexey Spiridonov authored
Summary: We have this previously-unused "NOT STARTED" status, which I recently appropriated to denote moved-out `ProcessReturnCode`s. It's natural to also use this for default-constructed `ProcessReturnCodes`. Lacking a default constructor leads to a bunch of unnecessarily annoying use of `folly::Optional` in my upcoming diff, so I wanted to get rid of that, see e.g. differential/diff/7657906/ Reviewed By: @tudor Differential Revision: D2097368
-
Alexey Spiridonov authored
Summary: Using `checkUnixError` after `waitpid()` is confusing and useless, because the only two possible errors are `ECHILD` (some other part of the program waited for this process!?) and `EINVAL` (invalid options, which are hardcoded in both `Subprocess::wait()` and `poll()`). Neither of these are recoverable. Moreover, even if the caller catches the exception, `~Subprocess` is still booby-trapped to `abort()` since its status remains `RUNNING`. In short, just abort. Reviewed By: @yfeldblum Differential Revision: D2079415
-
- 25 Jul, 2015 1 commit
-
-
mwilliams authored
Summary: Remove a couple of unused variables, and move one that was only used inside an ifdef Reviewed By: @yfeldblum Differential Revision: D2279989
-
- 24 Jul, 2015 5 commits
-
-
Nathan Bronson authored
Summary: IndexedMemPool had one bare usage of std::atomic, rather than the templated type Atom. This doesn't affect any non-testing template instantiations, because those two are usually synonyms, but it could cause spurious failures of DeterministicSchedule tests. Found via inspection, not via failed tests. Reviewed By: @yfeldblum Differential Revision: D2277424
-
Misha Shneerson authored
Summary: As titled Trying to troubleshoot shutdown problems in HHVM and I see: EventBase::runAfterDelay() callback threw St13runtime_error exception: Raw pointer to a singleton requested after its destruction. Would be much easier to troubleshoot if I know what is it being requested. Reviewed By: @chipturner Differential Revision: D2274497
-
Nathan Bronson authored
Summary: This diff isolates the CacheLocality back end for DeterministicSchedule from one invocation to the next (the last one was deterministic across the entire program but not per-DeterministicSchedule instance), and makes it easy to do extensive tracing of memory accesses during a deterministic test. These changes were made while tracking down a bug, but don't fix any bugs on their own (and in fact don't affect any production code at all). Reviewed By: @yfeldblum Differential Revision: D1842390
-
Andre Pinto authored
Summary: Add program_options to fix oss build Reviewed By: @tudor Differential Revision: D2274863
-
Nick Terrell authored
Summary: This diff is not yet complete, I want to see the contbuild before I change the functions that return references to member functions. It is unsafe to return a pointer when the dynamic object is a rvalue, because if the pointer escapes the expression after the object is destroyed, we go into segfault / undefined behavior land. I have deleted these overloads. The amount of valid code that is now disallowed is minimal. The only valid case I can think of is returing a pointer and passing it to a function in the same expression that does not save the pointer. However, this case is also dangerous, because if the function you pass it to decides to save the pointer for later, we are in trouble, e.g. save_ptr(dynamic("str").c_str()) Since there are simple workarounds (naming the object), I think that is a small price to pay for the greatly increased safety. The next step is to overload all members that return a reference to a member to move the member out if the dynamic is a rvalue: const dynamic& at(dynamic const&) const&; dynamic& at(dynamic const&) &; dynamic at(dynamic const&) &&; // Move out I also need to go over the code more carefully to make sure that nothing went wrong. Reviewed By: @marcinpe Differential Revision: D2257914
-
- 23 Jul, 2015 2 commits
-
-
Tudor Bosman authored
Summary: Many command line apps are of the form "program [--global_options] command [--command_options] args..." Make writing such things less painful. +jdelong because smcc Reviewed By: @meyering Differential Revision: D2217248
-
Tudor Bosman authored
Summary: GFlags is useful for global program options. boost::program_options makes it easier to write command-line utilities. They don't, unfortunately, play very nicely with each other. Add a addGFlags() function to convert all GFlags to boost::program_options options; you can then use boost::program_options::parse_command_line() to parse all arguments, GFlags or not. Also add a helper function to make parsing nested command lines easier. Reviewed By: @fugalh Differential Revision: D2215285
-
- 22 Jul, 2015 2 commits
-
-
Nathan Bronson authored
Summary: SharedMutex purposely allows the inline reader count to underflow in some situations while preserving proper locking behavior (the inline reader count is only trusted if all deferred locks have been applied), but there was an additional way that this could occur that wasn't documented or allowed by the asserts. The effect was a false positive assert in rare conditions or the possibility of losing track of a deferred lock slot. This diff fixes both the over-aggressive assert and the potential loss of the shared slot. If the assert didn't fire for you then this diff won't change the correctness of your program. Reviewed By: @yfeldblum Differential Revision: D2269018
-
Tudor Bosman authored
Summary: Because I didn't want to write it again. Reviewed By: @yfeldblum Differential Revision: D2217246
-