- 02 Apr, 2020 1 commit
-
-
Luca Niccolini authored
Summary: https://www.openssl.org/source/openssl-1.1.1b.tar.gz is gone changelog: https://www.openssl.org/news/openssl-1.1.1-notes.html Reviewed By: udippant Differential Revision: D20810020 fbshipit-source-id: 0ed385f49b2187ec149defd79feb86e2c8b492d2
-
- 01 Apr, 2020 9 commits
-
-
Lee Howes authored
Summary: Change to SemiFuture returning collect, which checks for nullptr passed to via, breaks this test which produced a default nullptr. Instead remove default and force passing of a valid executor. Reviewed By: yfeldblum Differential Revision: D20795552 fbshipit-source-id: 5411fea910d9f85eb5a4ba825a1cfd48a72b8a44
-
Dan Melnic authored
Summary: Add support for specifying which fatal signals to handle Reviewed By: simpkins Differential Revision: D20672281 fbshipit-source-id: 16696abcf551efcd932f5b56b336d6c5bc0d7a55
-
Dan Melnic authored
Summary: io_uring backend error handling Reviewed By: kevin-vigor Differential Revision: D20737416 fbshipit-source-id: 23eebc98326bcd07ee308e8f71f972c7374f6108
-
Wez Furlong authored
Summary: I was testing vs2019 vs vs2017 and realized that we weren't reconfiguring when the toolchain was changed; this resolves that. Reviewed By: genevievehelsel Differential Revision: D20795118 fbshipit-source-id: db80f090367cacfcc6b53887b77cf949f9cef0e6
-
Wez Furlong authored
Summary: We see flakey builds to conflicting writes to .pdb files; the error message suggests enabling `/FS` which is already enabled. Some serious internet research reveals that we can put the debug info into `.obj` files instead of having everyone contend with the same `.pdb` file. ``` C:\PROGRA~2\MIB055~1\2017\BUILDT~1\VC\Tools\MSVC\1416~1.270\bin\Hostx64\x64\cl.exe /nologo /TP -DBOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE -DGFLAGS_IS_A_DLL=1 -DWIN32_LEAN_AND_MEAN -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS -D_ENABLE_EXTENDED_ALIGNED_STORAGE -D_SCL_SECURE_NO_WARNINGS -D_STL_EXTRA_DISABLED_WARNINGS="4774 4987" -IZ:\shipit\folly -I. -IZ:\installed\boost-6XBjAEHS6zoZVAY7uQHhSxYamF-vUNWngO1YaEIiiko\include\boost-1_69 -IZ:\installed\double-conversion-8uX8TcZDEz7gXyY70bMXqPUF2uLqH2OTWBffkLfU7FU\include -IZ:\installed\gflags-Md0yNU5drHUQ6MCdsB6iC0WS5YX-RFZk_eTHNKjkcPs\include -IZ:\installed\glog-_3NtzkcZDkkSFkgC70vwofqrnao05-mPxEa0E546a9g\include -IZ:\installed\libevent-TIUwVyvnVZZVHDsesjdIidM_iH4er-_6pEE0X4dzuL4\include -IZ:\installed\openssl-0G_glZ7y5BplM752sREIHKuam0GcoPqw7m6yjEGefyE\include -IZ:\installed\zlib-lxujVMVR4hhdh4-S0SCxkb55DAWh5ISCLWbfL7m7hwg\include -IZ:\installed\zstd-M8csiME1A2X7ZGECWeSGmWbqM1glHd6xoskhyPHgpaw\include -IZ:\installed\snappy-Z3WzzGXxgX1-6zSn4NdRg8Z3coQaz7Gob3gGoomN95E\include -IZ:\installed\fmt-W9-akKzyOlf4GoHcFsw1_rCxt3y0ghyjO3gb5Xve1Gc\include /DWIN32 /D_WINDOWS /W3 /GR /MD /Zi /O2 /Ob1 /DNDEBUG /EHs /GF /Zc:referenceBinding /Zc:rvalueCast /Zc:implicitNoexcept /Zc:strictStrings /Zc:threadSafeInit /Zc:throwingNew /permissive- /std:c++latest /bigobj /favor:blend /Zc:inline /Wall /MP /Gw /Gy /Qpar /Oi /Ot /wd4191 /wd4291 /wd4309 /wd4310 /wd4366 /wd4587 /wd4592 /wd4628 /wd4723 /wd4724 /wd4868 /wd4996 /wd4068 /wd4091 /wd4146 /wd4800 /wd4018 /wd4365 /wd4388 /wd4389 /wd4100 /wd4459 /wd4505 /wd4701 /wd4702 /wd4061 /wd4127 /wd4200 /wd4201 /wd4296 /wd4316 /wd4324 /wd4355 /wd4371 /wd4435 /wd4514 /wd4548 /wd4571 /wd4574 /wd4582 /wd4583 /wd4619 /wd4623 /wd4625 /wd4626 /wd4643 /wd4647 /wd4668 /wd4706 /wd4710 /wd4711 /wd4714 /wd4820 /wd5026 /wd5027 /wd5031 /wd5045 /we4099 /we4129 /we4566 /showIncludes /FoCMakeFiles\folly_base.dir\folly\Format.cpp.obj /FdCMakeFiles\folly_base.dir\ /FS -c Z:\shipit\folly\folly\Format.cpp Z:\shipit\folly\folly\Format.cpp: fatal error C1041: cannot open program database 'Z:\build\folly\CMakeFiles\folly_base.dir\vc140.pdb'; if multiple CL.EXE write to the same .PDB file, please use /FS ninja: build stopped: subcommand failed. ``` Reviewed By: yfeldblum Differential Revision: D20752325 fbshipit-source-id: 4f20871d54cc0973b3d025734dd0886c202c839b
-
Nathan Bronson authored
Summary: This diff exposes the maximum number of internal stripes supported by the AccessSpreader, increases that value from 128 to 256 for server platforms, and uses bulk string operations to speed up the internal initialization. This change only affects the spreading results on machines with more than 128 hardware threads. (Note: this ignores all push blocking failures!) Reviewed By: yfeldblum Differential Revision: D20772443 fbshipit-source-id: 5c7142efb2bb9ba07cc423195074fc33aeea6dcb
-
Andrii Grynenko authored
Summary: This helps avoid TSAN false positives. Reviewed By: yfeldblum Differential Revision: D20787056 fbshipit-source-id: e62537235e3ad876e3ec5266f9c449d0d8340330
-
Lee Howes authored
Summary: Detach by destruction is common, and for SemiFutures drops the continuation. We can instead make detach an explicit operation, parameterised optionally by an executor, and phase out implicit detach on destruction of SemiFuture. Reviewed By: yfeldblum, andriigrynenko Differential Revision: D20683652 fbshipit-source-id: 909d2ffcadbe71501edcddbf0847a9cb12aa3cce
-
Lee Howes authored
Summary: Migration from Future-returning executor-erasing collectX forms to SemiFuture-returning forms, that are less risky in particular with coroutines. Earlier changes added collectXSemiFuture and collectXUnsafe as a migration path. This diff changes the behaviour of collectX to return SemiFuture. Reviewed By: yfeldblum Differential Revision: D20260537 fbshipit-source-id: 9e01536e4d9af68ff429f9fcd10aea4881d62041
-
- 31 Mar, 2020 4 commits
-
-
Denis Glazachev authored
Summary: Currently `folly/memory/UninitializedMemoryHacks.h`'s `resizeWithoutInitialization()` is able to do its job for `std::vector<T>` and `std::string` only. This PR extends it to support `std::basic_string<T>`. Effectively, replicated the machinery pattern used to achieve the same for any `std::vector<T>`. Added test cases too, however the test executable is not being built by the `CMakeLists.txt` (had to enable it locally for testing.) Is there any particular reason why these tests for `folly/memory/UninitializedMemoryHacks.h` are not built/run by default? `folly/memory/test/UninitializedMemoryHacksODR.cpp` `folly/memory/test/UninitializedMemoryHacksTest.cpp` Pull Request resolved: https://github.com/facebook/folly/pull/1339 Reviewed By: Mizuchi Differential Revision: D20603510 Pulled By: yfeldblum fbshipit-source-id: dc92ca71cab6a76e2d93c2bbcb4a325bcd70468c
-
Adam Simpkins authored
Summary: On Windows the build artifacts cannot be easily run directly from the build output directory without installing them. The `$PATH` environment variable needs to be set correctly so that the runtime library dependencies can be found. This updates the builder code to emit a `run.ps1` wrapper script in the build output directory that sets `$PATH` to support running build artifacts directly from the build directory. Additionally, this updates the CMake-specific builder to set properly when running the tests with `ctest`. Reviewed By: wez Differential Revision: D20688290 fbshipit-source-id: 5d0f4d685692bca7e37370bd88309cf7634d87f0
-
Wez Furlong authored
Summary: This still requires support from EdenFS in order to do much of use, but it takes us a step closer: * Pull in cpptoml when building with Eden support * On Windows, when we locate the `.eden` directory, load and parse the config file in order to determine the socket path * If the EdenView constructor throws, treat it as a terminal error so that we don't fallback to the regular filesystem watcher. This is important because current EdenFS builds don't implement the journal thrift API endpoint yet. Reviewed By: pkaush Differential Revision: D20504752 fbshipit-source-id: 48bbad49f1641698aa7d7b85674e3ddf4d4e617d
-
Wez Furlong authored
Summary: We have a global `--install-prefix` argument that can be used to set the prefix for all projects, but that is only suitable if you are running with sufficient privileges to install each of the deps to that location during the build. Cmake dependency resolution won't work from the build directory in that situation; it can only see the final installed location and it will error out if those files are not present, or link against the currently installed version instead of the version we just built; not great! This commit adds a project specific `--project-install-prefix` that can be used on just the leaf project in a set of deps. That sidesteps the dependency concern because only the last stage is built in that mode. This option can technically be applied to an arbitrary set of projects, but in light of the above, in practice it only makes sense to use it for the final cmake project. Only the CMakeBuilder respects this option. In the watchman repo, this commit adjusts the autogen.sh script to allow specifying the installation prefix; it defaults to `/usr/local` as you might expect. refs: https://github.com/facebook/watchman/issues/760 Reviewed By: yfeldblum Differential Revision: D20674439 fbshipit-source-id: 52799dbd47f3c295e2d6469ee2b74cedeaa20138
-
- 30 Mar, 2020 3 commits
-
-
Mat Hostetter authored
Summary: The math that figures out the biggest possible formatted number, for a stack buffer size, computed 65 bytes for "binary" format: ``` // #b: 0b prefix + 64 bytes = 65 bytes ``` But with that 2-byte "0b" prefix this of course sums to 66 bytes. This turns out to be harmless, rather than causing a buffer overrun, because the buffer size additionally reserves two more bytes for "prefix shenanigans", which are redundant with the two prefix bytes explicitly reserved for "0b" (but in this case were covering up the off-by-one error). I cleaned up a few things while I was there: - I fixed the size computation for binary buffers, including making it use kMaxBinaryLength, which is based on `sizeof(uintmax_t)`, rather than hardcoding `64`. - I removed the redundant prefix shenanigans reservation. - I fixed the places that were reserving two bytes for a prefix (like "0x") right after asserting that no prefix is allowed, e.g. for chars and decimal numbers. - I stopped reserving a byte for NUL, because these days this code uses folly::StringPiece and never NUL-terminates. Reviewed By: yfeldblum Differential Revision: D20694395 fbshipit-source-id: 6658675d9993d2fe223675db55c8040ddee143a8
-
Wez Furlong authored
Summary: Not sure if this is a transient issue, but the URL we've been using to obtain boost has started to return 403 errors. Switch to a sourceforge download link instead. Refs: https://github.com/facebook/watchman/pull/797 Reviewed By: chadaustin Differential Revision: D20739351 fbshipit-source-id: 47483c675d59201a410c9d2a8f6db0f63ea5da69
-
Wez Furlong authored
Summary: My recent change to ensure that we were using python3 to launch everything failed on windows: the GH actions environment has `python.exe` in the path and it is python version 3. There is no such thing as `python3` in that environment, although there is a `python2`. Refs: https://github.com/facebook/watchman/pull/797 Reviewed By: chadaustin Differential Revision: D20740411 fbshipit-source-id: 0e40590ccedc18e327ebb84901e2509588fdd0ff
-
- 28 Mar, 2020 2 commits
-
-
Nathan Bronson authored
Summary: This diff is a more complete fix for the problem addressed by D19561643, in which private inheritance caused an incorrect inaccessibility error for a type that was derived via an alternate construction from a template param. Reviewed By: lnicco Differential Revision: D20718329 fbshipit-source-id: 778d246d07030f6abb9e08e127a98d48c736a7d7
-
Eric Niebler authored
Summary: Upstream range-v3 has changed in accordance with C++20's standard ranges such that view types now need to explicitly opt-in to the `view` concept. This diff adds the hook needed so that the latest version of the range library will recognize `folly::Range` as a view. Reviewed By: yfeldblum Differential Revision: D20569727 fbshipit-source-id: 2f8bca017b2f8036b02568997a0b7c76d9c41646
-
- 27 Mar, 2020 5 commits
-
-
Dan Melnic authored
Summary: Fix broken oss build Reviewed By: simpkins Differential Revision: D20689035 fbshipit-source-id: 1d287f59fb35cf88482a471dfdf63e89d579e6fc
-
Andrew Gallagher authored
Summary: Avoid a forward declaration mismatch between `libiberty.h` and `libgen.h` that dirs in modular builds (likely related to T35368090). This defines `HAVE_DECL_BASENAME`, which is normally defined in the `config.h` generated during the binutils build, to prevent this conflicting declaration. Reviewed By: igorsugak Differential Revision: D20600924 fbshipit-source-id: 0fb6287719abb3cf52d7eda457efbe567985d1d4
-
Lee Howes authored
Summary: SemiFuture::delayed should pass the SemiFuture all the way through. Reviewed By: yfeldblum Differential Revision: D20684503 fbshipit-source-id: e7d1299a177d347cb5b92e9e700c607fc9f7c4c3
-
Lukas Piatkowski authored
Summary: This diff makes it possible to relay on the thrift structures from configerator in OSS. Reviewed By: ahornby Differential Revision: D20279457 fbshipit-source-id: 39df1c7a6f78b10a0a5bdeeebe476249ab674cc8
-
Shai Szulanski authored
Reviewed By: vitaut Differential Revision: D20650610 fbshipit-source-id: add9ff42c7c35696767c0c4d004235885fcd1565
-
- 26 Mar, 2020 11 commits
-
-
Adam Retter authored
Summary: We are using Folly inside RocksDB, and we noticed a build failure due to cache line sizing on s390x. I fixed it in our copy of Folly, and am sending you the changes upstream. CC pdillinger Pull Request resolved: https://github.com/facebook/folly/pull/1340 Reviewed By: WillerZ Differential Revision: D20628323 Pulled By: Orvid fbshipit-source-id: 03ea68b023fa1fdf7fae2e283687530ab5b6ead3
-
Dan Melnic authored
Summary: Add signal handling support for the PollIoBackend derived backends Reviewed By: kevin-vigor Differential Revision: D20612200 fbshipit-source-id: 5a92e2b46a9fa102bfc02958058679bac6c22269
-
Wez Furlong authored
Summary: This takes some pressure off both cpu and memory on a laptop. Reviewed By: pkaush Differential Revision: D20562474 fbshipit-source-id: a058c71c47f25c3a2b3c1e34a0d0caf83e642021
-
Wez Furlong authored
Summary: On linux we didn't account for the `--final-install-prefix` argument which meant that the binaries would always be rewritten to be relative to the destdir. This commit fixes that. Refs: https://github.com/facebook/watchman/issues/760 (this doesn't deal with the compiled in statedir being in the scratch path though) Reviewed By: simpkins Differential Revision: D20659749 fbshipit-source-id: 1e8e198a58361882249c33a67f54a7d97b849257
-
Wez Furlong authored
Summary: The GH actions defaults for git prevent it from being able to checkout the fbthrift repo due the length of the java related files in the fbthrift repo. This commit tells git to use long filenames and allows the checkout to succeed. Reviewed By: fanzeyi Differential Revision: D20659750 fbshipit-source-id: 060b36d312d52a0769cf2f2dd9af60f7446f94a8
-
Wez Furlong authored
Summary: Ensure that we are referencing python3 in the paths that we generate for the github actions workflows, and remove some shebangs that influence how our internal linters process the python code. Reviewed By: fanzeyi Differential Revision: D20659747 fbshipit-source-id: 6f300f8e91edf7701bb27babc7b1418958cf0a10
-
Dan Melnic authored
Summary: Remove unused files Reviewed By: yfeldblum Differential Revision: D20658959 fbshipit-source-id: b387aa4a58ee6a610d71567f5dcd6932e49f7411
-
Andy Wei authored
Summary: The `|` operation causes the `int to uint8` conversion warning that be treated as an error on some targets and prevent them use F14Map. Reviewed By: yfeldblum Differential Revision: D20654932 fbshipit-source-id: 6c909b7b58f4be263b0e30b1aa3acd82b5b9479d
-
Nick Terrell authored
Summary: We will `std::terminate` if a destructor throws, so it would be better to complain about throwing destructors in the first place. Reviewed By: nbronson Differential Revision: D20604722 fbshipit-source-id: d36c771f36d0d0a26f356720698606de628ca747
-
Nick Terrell authored
Summary: The current implementation of `std::is_nothrow_move_constructible` in libstdc++ implies `std::is_nothrow_destructible`. However, this doesn't seem to be required by the standard, see the notes section of https://en.cppreference.com/w/cpp/types/is_constructible. Since we know that all Vector and Value sets/maps already satisfy this requirement, let's codify it explicitly. Reviewed By: nbronson Differential Revision: D20604544 fbshipit-source-id: bae1e8442585cedb062308b6332bd018cccca2f4
-
Nick Terrell authored
Summary: F14Node{Map,Set} doesn't require `is_nothrow_destructible<value_type>`. `clear()` and the destructor are both marked `noexcept`, so they will both terminate if the destructor throws. But `erase()` is not marked `noexcept`, so when the destructor throws during `erase()` the value is left in the map. This could be problematic if the value is half destroyed, or if `eraseInto()` is used. This diff fixes the problem by marking `destroyItem()` as `noexcept`, so `std::terminate` is called whenever the value destructor throws. Reviewed By: nbronson Differential Revision: D20604276 fbshipit-source-id: c52c932d78d6ed61368985a749adf77c27a5a0de
-
- 25 Mar, 2020 2 commits
-
-
Dan Melnic authored
Summary: Add support for non libevent based backends in the AsyncSignalHandler Reviewed By: kevin-vigor Differential Revision: D20524116 fbshipit-source-id: fdd49cf75bd51599055239270dd704c496d567e3
-
Laurent Stacul authored
Summary: Compiling with gcc 10.0.1 and -std=gnu++2a, we have the following errors: ``` folly/FBString.h:1013:33: error: no type named 'reference' in 'class std::allocator<char>' 1013 | typedef typename A::reference reference; | ^~~~~~~~~ folly/FBString.h:1014:39: error: no type named 'const_reference' in 'class std::allocator<char>' 1014 | typedef typename A::const_reference const_reference; ``` This is due to the fact many members in `std::allocator` have been remove in C++20: https://en.cppreference.com/w/cpp/memory/allocator We also have this one due to the new way C++ resolves the comparison operators: ``` folly/dynamic-inl.h:854:20: error: ambiguous overload for 'operator!=' (operand types are 'folly::dynamic::const_item_iterator' and 'folly::dynamic::const_item_iterator') 854 | return find(key) != items().end() ? 1u : 0u; | ~~~~~~~~~ ^~ ~~~~~~~~~~~~~ | | | | | folly::dynamic::const_item_iterator | folly::dynamic::const_item_iterator In file included from folly/dynamic-inl.h:25, from folly/dynamic.h:796, from folly/dynamic.cpp:17: folly/detail/Iterators.h:80:8: note: candidate: 'bool folly::detail::IteratorFacade<D, V, Tag>::operator==(const D&) const [with D = folly::dynamic::const_item_iterator; V = const std::pair<const folly::dynamic, folly::dynamic>; Tag = std::f orward_iterator_tag]' (reversed) 80 | bool operator==(D const& rhs) const { | ^~~~~~~~ folly/detail/Iterators.h:98:3: note: candidate: 'typename std::enable_if<std::is_convertible<D, D2>::value, bool>::type folly::detail::IteratorFacade<D, V, Tag>::operator==(const D2&) const [with D2 = folly::dynamic::const_item_iterator; D = folly::dynamic::const_item_iterator; V = const std::pair<const folly::dynamic, folly::dynamic>; Tag = std::forward_iterator_tag; typename std::enable_if<std::is_convertible<D, D2>::value, bool>::type = bool]' (reversed) 98 | operator==(D2 const& rhs) const { | ^~~~~~~~ folly/detail/Iterators.h:84:8: note: candidate: 'bool folly::detail::IteratorFacade<D, V, Tag>::operator!=(const D&) const [with D = folly::dynamic::const_item_iterator; V = const std::pair<const folly::dynamic, folly::dynamic>; Tag = std::f orward_iterator_tag]' 84 | bool operator!=(D const& rhs) const { | ^~~~~~~~ folly/detail/Iterators.h:103:8: note: candidate: 'bool folly::detail::IteratorFacade<D, V, Tag>::operator!=(const D2&) const [with D2 = folly::dynamic::const_item_iterator; D = folly::dynamic::const_item_iterator; V = const std::pair<const f olly::dynamic, folly::dynamic>; Tag = std::forward_iterator_tag]' 103 | bool operator!=(D2 const& rhs) const { | ^~~~~~~~ ``` Pull Request resolved: https://github.com/facebook/folly/pull/1329 Reviewed By: markisaa Differential Revision: D20458078 Pulled By: yfeldblum fbshipit-source-id: 15a6a4cfa0f71d45046ee2a13914672b3746b9eb
-
- 24 Mar, 2020 3 commits
-
-
Andrii Grynenko authored
Summary: LoopController::runLoop is responsible for managing Executor/EventBase keep-alive handle. This diff introduces a similar level of indirection (LoopController::addTaskEager) to solve the same problem for eager variants of addTask*. Reviewed By: yfeldblum Differential Revision: D20613287 fbshipit-source-id: 22388ca3b31664c5fedfd509f2d9bab3d86aab47
-
Lewis Baker authored
Summary: Modify the TrySemiAwaitable adapter so that it customises the co_withCancellation() customisation-point and passes through the CancellationToken to the underlying awaitable (eg. a Task). This fixes code that tries to do the following so that the cancellation token propagates to a Task adapted with co_awaitTry(). ``` co_await co_withCancellation(cancelToken, co_awaitTry(co_foo())); ``` Reviewed By: andriigrynenko Differential Revision: D20443798 fbshipit-source-id: 945e0f98abad4cdef0be29365642006c5687ad5f
-
Zeyi (Rice) Fan authored
Summary: Actually use vendored Rust crates when building with CMake. The `--offline` option make sure cargo do not go to the Internet for missing crates. Reviewed By: simpkins Differential Revision: D20542672 fbshipit-source-id: ab4af40150c6af8b531a75f503a4fa848b3914da
-