- 09 Sep, 2020 1 commit
-
-
Raul Tambre authored
Summary: VERSION_GREATER 3.18 also matches 3.18.2, which is wrong as the target argument was only added in 3.19. After noticing that folly requires an ancient CMake version I converted over from VERSION_GREATER_EQUAL and introduced the comparison error. Issue reported [here](https://github.com/facebook/folly/pull/1433#discussion_r484278801). Pull Request resolved: https://github.com/facebook/folly/pull/1439 Reviewed By: yfeldblum Differential Revision: D23564812 Pulled By: Orvid fbshipit-source-id: 19881876147ec73ad70610cf97c408740f998340
-
- 08 Sep, 2020 7 commits
-
-
Matt Ma authored
Summary: From Dwarf4 standard http://dwarfstd.org/doc/DWARF4.pdf#page=53 ```name=2.17.3 Non-Contiguous Address Ranges The applicable base address of a range list entry is determined by the closest preceding base address selection entry (see below) in the same range list. If there is no such selection entry, then the applicable base address defaults to the base address of the compilation unit (see Section 3.1.1). In the case of a compilation unit where all of the machine code is contained in a single contiguous section, no base address selection entry is needed. ``` http://dwarfstd.org/doc/DWARF4.pdf#page=58 ```name=3.1.1 Normal and Partial Compilation Unit Entries Compilation unit entries may have the following attributes: 1. Either a DW_AT_low_pc and DW_AT_high_pc pair of attributes or a DW_AT_ranges attribute whose values encode the contiguous or non-contiguous address ranges, respectively, of the machine instructions generated for the compilation unit (see Section 2.17). A DW_AT_low_pc attribute may also be specified in combination with DW_AT_ranges to specify the default base address for use in location lists (see Section 2.6.2) and range lists (see Section 2.17.3). ``` http://dwarfstd.org/doc/DWARF4.pdf#page=61 ```name=3.1.1 Normal and Partial Compilation Unit Entries The base address of a compilation unit is defined as the value of the DW_AT_low_pc attribute, if present; otherwise, it is undefined. If the base address is undefined, then any DWARF entry or structure defined in terms of the base address of that compilation unit is not valid. ``` http://dwarfstd.org/doc/DWARF4.pdf#page=52 ```name=2.17 Code Addresses and Ranges - 2.17.1 Single Address When there is a single address associated with an entity, such as a label or alternate entry point of a subprogram, the entry has a DW_AT_low_pc attribute whose value is the relocated address for the entity. While the DW_AT_entry_pc attribute might also seem appropriate for this purpose, historically the DW_AT_low_pc attribute was used before the DW_AT_entry_pc was introduced (in DWARF Version 3). There is insufficient reason to change this. ``` Reviewed By: luciang Differential Revision: D23422082 fbshipit-source-id: 4de79fa81e6c323095bb7c79faf87369998138c6
-
Giuseppe Ottaviano authored
Summary: Avoid an expensive `__vdso_getcpu` on every `get()`. Reviewed By: terrelln Differential Revision: D23469601 fbshipit-source-id: 6c7e62a136b7cd80baab6dcfb10cba13a2e472c0
-
Maged Michael authored
Summary: The function folly::get_cached_pid() saves and reuses the result of calling getpid(). At fork, the value is updated for the child process. It is thread-safe. The first call is async-signal-unsafe but subsequent calls are async-signal-safe. Reviewed By: yfeldblum, davidtgoldblatt Differential Revision: D23433702 fbshipit-source-id: a026300206c1726fc1c2c6a588828f2e6559c4e2
-
Lee Howes authored
Add getTry back into folly::Future, with blocking behaviour consistent with get() and with SemiFuture::getTry(). Summary: Formerly Future::getTry was non-blocking, and exhibited confusing behaviour of throwing on timeouts, but returning a try containing exceptions related to the workload of the future. This was inconsistent with Future::get, and thus surprising. An earlier change safely removed this broken version of the operation. Here we add it back in with consistent behaviour. Reviewed By: yfeldblum Differential Revision: D23477042 fbshipit-source-id: afda6b37c86531dab43ac31ec6d605cc6c5d670c
-
Yedidya Feldblum authored
Summary: [Folly] A few nits for `constexpr_strlen`, `constexpr_strcmp`. Reviewed By: ericniebler Differential Revision: D23547224 fbshipit-source-id: f232861f5cc4dbd5eb77c4bbe3b9766fd233e9f5
-
Robin Cheng authored
Summary: In the "Complex" test we can have nodes running at the same time. So appending to the same vector concurrency isn't safe. Protecting that with a mutex. Reviewed By: yfeldblum Differential Revision: D23545746 fbshipit-source-id: b6f6e8b7204cf63c7e8fbbd8fc5134cb66c8180a
-
Ivan Egorov authored
Summary: Variable length arrays are an extension to C++ standard that is not universally supported. Use a fixed size array instead. Differential Revision: D23563131 fbshipit-source-id: 743e65838e83286ea28d8de10cd9d4416e6e4e91
-
- 07 Sep, 2020 1 commit
-
-
Dan Melnic authored
Summary: Add the ability to specify the min number of threads without changing a gflag Reviewed By: stuclar Differential Revision: D23557854 fbshipit-source-id: d4394e979c123e7f312816b1dec2849d46b0de9a
-
- 06 Sep, 2020 2 commits
-
-
Ivan Egorov authored
Summary: This explains why the commonly used `int(*s1 - *s2)` was changed to a slightly less obvious alternative. Reviewed By: yfeldblum Differential Revision: D23537394 fbshipit-source-id: 152554bc9864cdf25c569216d21b0c04bea67e9d
-
Orvid King authored
Summary: This is used so needs to be included. MSVC 2019's STL exposes this. Reviewed By: yfeldblum Differential Revision: D23497796 fbshipit-source-id: 612e0fb91c5d5637c25d062a4b3afc0c67344012
-
- 05 Sep, 2020 1 commit
-
-
Yedidya Feldblum authored
Summary: [Folly] Fix `StaticSingletonManager::create_<true>` which is missing the `noexcept` specification. Reviewed By: Mizuchi, xavierd Differential Revision: D23552042 fbshipit-source-id: 629ad215602125a3e6322b36948df78c62fbef15
-
- 04 Sep, 2020 8 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] Limit `StaticSingletonManager` check functions to `StaticSingletonManager` calls. Reviewed By: Alfus Differential Revision: D23544598 fbshipit-source-id: 081d324064025d5fc86bb20b9b685c2591f01642
-
Yedidya Feldblum authored
Summary: [Folly] Let `noexcept` member function template `StaticSingletonManager::create` be outline to avoid pathological inline path behavior. Reviewed By: iahs Differential Revision: D23522488 fbshipit-source-id: 5ec9ed271b814f4496812e226e0f0929f65565a2
-
Yedidya Feldblum authored
Summary: [Folly] Add missing `< 0` tests for `constexpr_strcmp` to verify that the implementation is symmetric. Reviewed By: Mizuchi Differential Revision: D23482134 fbshipit-source-id: d3cb1fe8ce4690a34a12620eb57e7a8ff57ad8a1
-
Yedidya Feldblum authored
Summary: [Folly] Make `is_same` failures easier to diagnose in `constexpr_strlen` tests. Reviewed By: Mizuchi Differential Revision: D23481769 fbshipit-source-id: a990e1b96381f976feb7b4d3efda860f38fb6fe3
-
Andrew Huang authored
Summary: These tests pass in our build system, and fail on other platforms (Ubuntu, Darwin). Specifically, they cause our folly's CI to fail, since it's run on Ubuntu. The tests fail because TLS 1.3 is being enabled for these tests. In retrospect, that *should* cause session resumption to fail, since no additional reads are being done on the socket after the handshake. I'm not quite sure yet why they pass in our build system. Reviewed By: yfeldblum Differential Revision: D23513991 fbshipit-source-id: 0a401d19300d8ca7da3f9b5f8263959eac826f8c
-
Yedidya Feldblum authored
Summary: [Folly] Some machine code check functions for `terminate` and `terminate_with`. Demonstrates the impact of adding the extra argument. Reviewed By: magedm Differential Revision: D23523207 fbshipit-source-id: c37ae61e59ca060e7e370db425cb937341bd6e09
-
Robin Cheng authored
Summary: This is pretty self-explanatory. Reviewed By: yfeldblum Differential Revision: D23514563 fbshipit-source-id: 39b5796c742bfacc830c0154bf72bbd190501e33
-
Orvid King authored
Summary: Windows needs it Reviewed By: yfeldblum Differential Revision: D23497837 fbshipit-source-id: e4fa8fadb3a7ac26e602ff5fbddaef0976d47b0d
-
- 03 Sep, 2020 17 commits
-
-
Eric Niebler authored
Summary: Avoid a needless use of the preprocessor in FixedString.h by using `kIsDebug` instead of the `NDEBUG` preprocessor macro in `checkNullTerminated`. Reviewed By: yfeldblum Differential Revision: D23411248 fbshipit-source-id: 78990ade25bcfa3956f917b2b285c096b76ecb09
-
Eric Niebler authored
Summary: It's insufficient to infer support for `constexpr` `std::strlen` by merely testing that we're using libstdc++ on a compiler other than clang. Some other compilers besides gcc can be using libstdc++ that _don't_ have `constexpr` `std::strlen`. Rather, use the compiler itself to detect support for either (a) the builtins, or (b) a `constexpr` implementation of the stdlb function, falling back to a custom `constexpr` implementation otherwise. Also, handle MSVC, which supports `__builtin_strlen` but which doesn't support either `__has_feature` or `__has_builtin`. Give `constexpr_strcmp` the same handling, but leave MSVC out of the fun because it doesn't provide `__builtin_strcmp`. Also, remove the unnecessary include of `<type_traits>`. Finally, make these functions `noexcept` for good measure. Extra info: The overload sets in the `detail` namespace in this diff are a little magical. The first overload only compiles if (a) the string literal `"a"` can be `static_cast` to `const Char*` (that is, only if `Char` is `char`), and (b) if `FOLLY_DETAIL_STR???` yields a compile-time constant (so it can be used to initialize a non-type template parameter). If both of those things are true, that overload is preferred because the last argument requires no conversion. If either of those two conditions is false, that overload has a substitution failure and is removed from consideration. Then the second overload is selected. Reviewed By: yfeldblum Differential Revision: D23407997 fbshipit-source-id: f5838c578cb62b8fd777052223222882a6575429
-
Lee Howes authored
Summary: References the folly logo from within README.md. Reviewed By: yfeldblum Differential Revision: D23490077 fbshipit-source-id: 103c0a7838f9f9982c542e5a82e8382a45d8a0b7
-
Lee Howes authored
Summary: This adds the folly logo svg to the repo to make it available at a stable location. Reviewed By: yfeldblum Differential Revision: D23503775 fbshipit-source-id: 4ba0410c6f49d1ebc5b88c21c0ba8b60f9bf96d4
-
Yedidya Feldblum authored
Summary: [Folly] Revise `is_constexpr_default_constructible_v` as a variable and as eager, and `is_constexpr_default_constructible` as a type and as deferred. Reviewed By: Mizuchi Differential Revision: D23371343 fbshipit-source-id: 192b5df78053c89acadab285b6dfb9ab52b14528
-
Nathan Bronson authored
Reviewed By: yfeldblum, Mizuchi Differential Revision: D23436113 fbshipit-source-id: 940cdca0d1d674ab4929b8f88ce48438fa0e4b25
-
Dan Melnic authored
Summary: Check result against kBlockSize Reviewed By: kevin-vigor Differential Revision: D23501893 fbshipit-source-id: b6a43474422049c93f02e0b5defd300a471bccf5
-
Ivan Murashko authored
Summary: Pull Request resolved: https://github.com/facebook/folly/pull/1438 The file `folly/experimental/io/test/IoTestTempFileUtil.h` does not have `pragma once` and can be included several times. It produces compilation errors. Reviewed By: Orvid Differential Revision: D23496733 fbshipit-source-id: 0309847f60992b21d07b2377d49539d78570fb09
-
Raul Tambre authored
Summary: CMake's find modules may have target-based generator expressions, which get propagated to us when generating the pkg-config file. CMake 3.19 introduces the TARGET argument to file(GENERATE), which allows resolving such generator expressions and will avoid future issues. A workaround proposed by adriaandegroot is added for CMake 3.18. Additionally changed list->string conversion to use list(JOIN) instead of string replacement. Fixes https://github.com/facebook/folly/issues/1414. Pull Request resolved: https://github.com/facebook/folly/pull/1433 Reviewed By: yfeldblum Differential Revision: D23433365 Pulled By: Orvid fbshipit-source-id: 6ef5f180e13b41f0c92137f53fd8c19ba6355dd6
-
Yedidya Feldblum authored
Summary: [Folly] Fix possible UB in `constexpr_strcmp` since signed arithmetic wraparound is undefined. Differential Revision: D23435902 fbshipit-source-id: f71103f58f9a1a69dbc7fa462703605d1fc78348
-
Andrii Grynenko authored
Summary: Because of https://github.com/google/sanitizers/issues/1116, any races detected during pthread_atfork deadlock the process. For forks issued from folly we can use an instrumented fork version to minimize the amount of code running via pthread_atfork. Reviewed By: yfeldblum Differential Revision: D23281093 fbshipit-source-id: fd4d3bf06b7992ff314f631ed899854a8b3f6c4b
-
Yedidya Feldblum authored
Summary: [Folly] Cut `FOLLY_CREATE_HAS_MEMBER_TYPE_TRAITS` since its margin of utility is too small given `folly::is_detected`. Reviewed By: Mizuchi Differential Revision: D23371271 fbshipit-source-id: 6db49163d54ffd4d862bb98345d0e71b4d114674
-
Robin Cheng authored
Summary: When setting halt_on_error to 0 (which is the default setting now for TSAN in fbcode because we want to catch all bugs), a deadlock does not immediately cause an issue. So we include exit(0) as part of the death test to handle that case. Reviewed By: yfeldblum Differential Revision: D23493015 fbshipit-source-id: fb4910edddab11e1cd00e402b6b7350a6dc941a7
-
Katie Mancini authored
Summary: We use Re2 in D22877942 for parsing multiple path prefix data fetch logging, this introduces the dependency for eden's opensource builds. Reviewed By: chadaustin Differential Revision: D23431175 fbshipit-source-id: 44b399e92cb89ba1403295ecd10bc8f8d769b02c
-
Yedidya Feldblum authored
Summary: [Folly] Simplify the fallback implementations of `constexpr_strlen` and `constexpr_strcmp` by taking advantage of C++14 `constexpr` syntax. Differential Revision: D23416900 fbshipit-source-id: 93a969282faa61b3c9ff8e75519ad4e6edd71e4e
-
Robin Cheng authored
Summary: TSAN just needs more stack doing this... Reviewed By: yfeldblum Differential Revision: D23484864 fbshipit-source-id: e5412982349f73f8ead795403dfbde2830f4e5fd
-
Robin Cheng authored
Summary: Apparently the code says, being signal unsafe is OK because the signal is created with raise(). So let's just skip that test under TSAN. Reviewed By: yfeldblum Differential Revision: D23484012 fbshipit-source-id: 697234b9f57db97c6c6aaf8131058d3ecec3d059
-
- 02 Sep, 2020 3 commits
-
-
Shai Szulanski authored
Summary: To preserve void type in roundtrip Doing this generically is pretty gross (you need to check if awaiter_type<decltype(co_viaIfAsync({}, SemiAwaitable))> has a member await_resume_try), while the cost of adding explicit overloads is low as there are only two types we care about, so I chose to do it that way. Reviewed By: yfeldblum Differential Revision: D23407270 fbshipit-source-id: cc952e2d8fa4297dbe363e22e99192fdf858134f
-
Lewis Baker authored
Summary: The Timekeeper parameter can be used to pass in manually-controlled time-sources for testing purposes if required. Reviewed By: yfeldblum Differential Revision: D23386677 fbshipit-source-id: bea09292b00f6cd018568d26e5409d2c7ff01dbe
-
Yedidya Feldblum authored
Summary: [Folly] Test `constexpr_strlen`, `constexpr_strcmp` fallback implementations alongside the main implementations, since the main implementations may fall back to the fallback implementations on some platforms but not on others, and we may only be testing on the other platforms. Differential Revision: D23432301 fbshipit-source-id: 271705cb8c2b1ab6d11c1be20e2c3023cacab583
-