- 11 Oct, 2019 3 commits
-
-
Shai Szulanski authored
Summary: Like subscribeInline but does work on an executor and returns a subscription that can be waited on as a SemiFuture or cancelled Reviewed By: andriigrynenko Differential Revision: D17700281 fbshipit-source-id: 52b2c63af53e8f87d921cb0a0ab28da0a800a9fc
-
Micky Kelager authored
Summary: This will add support to set and get thread name for Android. `pthread_setname_np` was introduced back in NDK API level 9: https://stackoverflow.com/questions/15241869/pthread-error-in-ndk-build?fbclid=IwAR0yvyaC4KNA6D1GlgIofQSFIuZAgL7qDR5L6m5tkY6lv-R6uTvzreAiFp4 Backwards support added for setting current thread name using `prctl(PR_SET_NAME)`, when `pthread_setname_np` is not available (for `__ANDROID_API__ < 9`). Currently, Android NDK does not support `pthread_getname_np` so `prctl(PR_GET_NAME)` is used for this. Reviewed By: yfeldblum Differential Revision: D17815151 fbshipit-source-id: 474caee070fad26f3e6b118307058d5506f0467b
-
Yedidya Feldblum authored
Summary: [Folly] Move `ThreadName.cpp` macro defs outside C++ section, including outside `namespace ...` blocks. Reviewed By: vitaut Differential Revision: D17868541 fbshipit-source-id: a0964ce1f1c6322185f94b8162df4c0e6eaa84bf
-
- 10 Oct, 2019 5 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] Simplify ASAN support in `folly/MicroLock.h`. Reviewed By: mzlee Differential Revision: D17842549 fbshipit-source-id: c9e89d8c69f8a291427a73fee12651353a5da4e4
-
Andrii Grynenko authored
Summary: It's possible for user code to be run in the ObserverManager thread outside of the refresh call (e.g. from Core destructor), so we can't rely on inManagerThread check to guarantee that Dependency recorder is active. Reviewed By: yfeldblum Differential Revision: D17805252 fbshipit-source-id: 5a858be0cf204da1342dc182e25797fd130c0458
-
Andres Suarez authored
Summary: See https://fb.workplace.com/groups/osssupport/permalink/2846876118694318/ Reviewed By: wez Differential Revision: D17750243 fbshipit-source-id: 9e149df1f8e09203820f50d0fcac4a5cecf52e33
-
Wez Furlong authored
Summary: This is the first step towards removing `watchman/thirdparty/tap.{cpp,h}` Reviewed By: chadaustin Differential Revision: D17775680 fbshipit-source-id: d6ac32c3b2489e1713fb132b0bb46d848c56811f
-
Wez Furlong authored
Summary: This helps to squash out some flakiness Reviewed By: pkaush Differential Revision: D17804696 fbshipit-source-id: decd8e5dd37d802c62cae1168c4f4d72c0fc5c83
-
- 09 Oct, 2019 4 commits
-
-
Max Katsev authored
Summary: Same as regular groupBy Reviewed By: ot Differential Revision: D17843280 fbshipit-source-id: 33d74d7ed84b8c46509bf186bfa52e31d6284015
-
Alexey Spiridonov authored
Summary: As it turns out, several of the `fizz` dependencies require it to have been built with tests enabled, so it's just easier to build them always, IIRC they only waste 1-2 minutes of time. Reviewed By: lnicco Differential Revision: D17837758 fbshipit-source-id: dd0c73b3aaf72831ce702dbcecd4e3ff627a4901
-
Zeyi (Rice) Fan authored
Reviewed By: wez Differential Revision: D17494253 fbshipit-source-id: 45bab057e5cefd8f2808be96ba31814c5196051b
-
Alexey Spiridonov authored
Summary: Proxygen no longer uses `fbcode_builder` to run its tests, so whatever the purpose of D17158685, these `fbcode_builder` configs no longer affect Proxygen, and can be reverted to their original state. Since the general design pattern for `fbcode_builder` has been to link everything as `.so`s, let's return to this (which helps fix Bistro's build). Also, let's not waste time building & linking tests for libraries that are not the library under test. That is: - Before: The Bistro build also builds tests for wangle, proxygen, etc. This is a result of some accidental changes in D17158685. - After: We explicitly don't build test for any of the 4 dependencies here. This is OK because each project also has its own `fbcode_builder_config.py`, which **does** build tests. This latter part should result in a build-time reduction. Reviewed By: lnicco Differential Revision: D17819858 fbshipit-source-id: 7cad1bed86b2f0c3934b0fc5d6fb33e6a2ee2695
-
- 08 Oct, 2019 1 commit
-
-
Felix Handte authored
Summary: This diff introduces a data structure that keeps a set of, well any object, but it's intended to cache compression contexts, e.g., `ZSTD_CCtx`es. These objects can be expensive to allocate but cheap to reuse. E.g., HHVM was spending 70% of its Zstd CPU allocating, memsetting, and freeing contexts before it started using a structure like this. Reviewed By: terrelln Differential Revision: D15787721 fbshipit-source-id: bda33e9028c73c14435e18ce07cfbc8989263d98
-
- 07 Oct, 2019 2 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] Namespace preprocessor names in `folly/CpuId.h`. Reviewed By: LeeHowes Differential Revision: D17780995 fbshipit-source-id: 29580e780a4f8639c4247b9af38f47182fc000bb
-
Yedidya Feldblum authored
Summary: [Folly] Fix `GroupVarint.h` includes and preprocessor namespacing. * Always include everything rather than conditionally including things. * Namespace as `FOLLY_HAVE_GROUP_VARINT`. Reviewed By: LeeHowes Differential Revision: D17780999 fbshipit-source-id: 109fa38794e312e0c5eba0f5bfab56853df59c92
-
- 05 Oct, 2019 1 commit
-
-
Nikita Shulga authored
Summary: s/#if _WIN32/#ifdef _WIN32/ Reviewed By: Orvid Differential Revision: D17738798 fbshipit-source-id: cbfcf67c55b56a5e5453430d127acc3a7116814c
-
- 04 Oct, 2019 5 commits
-
-
Greg McGary authored
Summary: [ Extend D17527441 changes from F15MapTest into F14SetTest ] The current version of libc++ deallocates the existing capacity when calling operator=(initializer_list), even if the map is empty. This diff relaxes the expectations of F14's allocated memory tests (which fall back to the underlying STL std::unordered_map on some platforms) to accept this implementation. Reviewed By: yfeldblum Differential Revision: D17726849 fbshipit-source-id: 4757792a5aefe6d085b5d164ffe7b663f6078d9a
-
Zeyi (Rice) Fan authored
Summary: We are seeing random segment fault originating from OpenSSL on macOS when Mononoke fetching is enabled. The cause is that on macOS we are actually linking against libcurl shipped with the system instead of ours. That copy of libcurl is linked with macOS's libcrypto instead of the one we compiles during Eden's build, and it seems that version of libcrypto does not provide concurrency safety. The solution is to build curl on macOS and make sure it is linked to our OpenSSL that has the concurrency callbacks registered. Reviewed By: wez Differential Revision: D17657822 fbshipit-source-id: 85abdf3be10b3903a5efc6b3a91624c7258de790
-
Wez Furlong authored
Summary: This diff teaches the generated Github Actions configuration to copy the executable outputs from the leaf project into an artifacts dir, and then capture the artifacts in the build. This page has details on the artifacts mechanism used by Github Actions: https://github.com/actions/upload-artifact This page has the "Artifacts" link on the RHS where an example of the artifacts can be downloaded: https://github.com/facebook/watchman/pull/750/checks?check_run_id=244088199 Here's the actual download: https://github.com/facebook/watchman/suites/247296465/artifacts/74686 And here's what the inside of that zip file contains for the watchman build: ``` $ find . -ls 49685444 0 drwxr-xr-x 6 wez mygroup 192 Oct 1 18:50 . 49685487 16 -rw-r--r-- 1 wez mygroup 6148 Oct 1 18:51 ./.DS_Store 49685446 0 drwxr-xr-x 5 wez mygroup 160 Oct 1 18:51 ./mac 49685501 16 -rw-r--r-- 1 wez mygroup 6148 Oct 1 18:51 ./mac/.DS_Store 49685453 0 drwxr-xr-x 3 wez mygroup 96 Oct 1 18:50 ./mac/bin 49685455 5432 -rwxr-xr-x 1 wez mygroup 2778500 Oct 2 01:02 ./mac/bin/watchman 49685454 0 drwxr-xr-x 7 wez mygroup 224 Oct 1 18:50 ./mac/lib 49685457 296 -rwxr-xr-x 1 wez mygroup 149096 Oct 2 01:02 ./mac/lib/libgflags.2.2.dylib 49685460 1072 -rwxr-xr-x 1 wez mygroup 546348 Oct 2 01:02 ./mac/lib/libssl.1.1.dylib 49685459 272 -rwxr-xr-x 1 wez mygroup 135524 Oct 2 01:02 ./mac/lib/liblz4.1.dylib 49685458 352 -rwxr-xr-x 1 wez mygroup 176900 Oct 2 01:02 ./mac/lib/libglog.0.dylib 49685456 4888 -rwxr-xr-x 1 wez mygroup 2501012 Oct 2 01:02 ./mac/lib/libcrypto.1.1.dylib 49685445 0 drwxr-xr-x 5 wez mygroup 160 Oct 1 18:50 ./linux 49685486 16 -rw-r--r-- 1 wez mygroup 6148 Oct 1 18:50 ./linux/.DS_Store 49685448 0 drwxr-xr-x 3 wez mygroup 96 Oct 1 18:50 ./linux/bin 49685450 196264 -rwxr-xr-x 1 wez mygroup 100486648 Oct 2 01:16 ./linux/bin/watchman 49685449 0 drwxr-xr-x 4 wez mygroup 128 Oct 1 18:50 ./linux/lib 49685451 3864 -rwxr-xr-x 1 wez mygroup 1976888 Oct 2 01:16 ./linux/lib/libgflags.so.2.2 49685452 2208 -rwxr-xr-x 1 wez mygroup 1127336 Oct 2 01:16 ./linux/lib/libglog.so.0 49685447 0 drwxr-xr-x 4 wez mygroup 128 Oct 1 18:51 ./windows 49685513 16 -rw-r--r-- 1 wez mygroup 6148 Oct 1 18:51 ./windows/.DS_Store 49685461 0 drwxr-xr-x 5 wez mygroup 160 Oct 2 01:44 ./windows/bin 49685464 7880 -rwxr-xr-x 1 wez mygroup 4030976 Oct 2 01:44 ./windows/bin/watchman.exe 49685463 488 -rwxr-xr-x 1 wez mygroup 249856 Oct 2 01:44 ./windows/bin/glog.dll 49685462 544 -rwxr-xr-x 1 wez mygroup 278016 Oct 2 01:44 ./windows/bin/gflags.dll ``` The `main.yml` file was updated by running: ``` $ opensource/fbcode_builder/getdeps.py generate-github-actions --output-file watchman/.github/workflows/main.yml watchman ``` Pull Request resolved: https://github.com/facebook/watchman/pull/750 Test Plan: See description above Reviewed By: pkaush Differential Revision: D17705148 Pulled By: wez fbshipit-source-id: 4f3c466180f5a1cb9fa31a9b3b3f117876f8b89d
-
Nathan Bronson authored
Summary: Production-enabled assertions have shown value in detecting a variety of issues that should be impossible but are observed to occur. This diff adds some checks to F14 that may fail under some types of memory corruption, tag missearch, or hash miscomputation. Reviewed By: yfeldblum Differential Revision: D17739592 fbshipit-source-id: 92c9839ed5dab030350408d704a01c97573e3123
-
Nanshu Chen authored
Summary: In Cython, use `from folly.cast cimport down_cast` to import the function. Reviewed By: yfeldblum Differential Revision: D17652305 fbshipit-source-id: 6b038c5ac6c2a8ecd8e95f33ae3a37647a2bfdff
-
- 03 Oct, 2019 4 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] Fix missing qualification in `FOLLY_SAFE_DCHECK` macro. Reviewed By: nbronson Differential Revision: D17747688 fbshipit-source-id: 1bab5770891c900252f767252b5d7769e209bcb1
-
Yedidya Feldblum authored
Summary: [Folly] Export `folly::json::parse_error` v.s. having it be a hidden type. * Move class body to `.h`. * Leave helper function, previously the constructor, in anonymous namespace in `.cpp`. Reviewed By: vitaut Differential Revision: D17578773 fbshipit-source-id: 0d50fdf662bbf67e844ff0ec9ef24975cea92f62
-
Wez Furlong authored
Summary: We were troubleshooting an issue with the eden tests on windows where the boost dlls where not being found during gtest discovery. When we compute the environment, we were only including INST/bin in the PATH on windows. On Windows, the dlls are searched for in the PATH, and since boost installs those into its `lib` dir we were missing those. This diff causes `lib` dirs to get added to PATH on windows in the same manner that we would add them to `LD_LIBRARY_PATH` on linux. Reviewed By: pkaush Differential Revision: D17694542 fbshipit-source-id: 143a907e6d30d8c12360caa43c8d9c26ff8c88c6
-
Wez Furlong authored
Summary: On linux we use `patchelf` to manipulate dynamic deps but it isn't guaranteed to be installed everywhere. We have a manifest file that describes how to build it, but so far nothing has told getdeps that it should build it. This diff updates the ELF dep munging code to literally run `getdeps.py build patchelf` and then use that patchelf binary to manipulate the object files. Refs: https://github.com/facebook/watchman/pull/750 Reviewed By: pkaush Differential Revision: D17705351 Pulled By: wez fbshipit-source-id: 358ef239edb389fbd51fa023ff553963aa80b6c7
-
- 02 Oct, 2019 5 commits
-
-
Scott Wolchok authored
Summary: Mobile phones have more like 16 CPUs and less like 128 CPUs. Reviewed By: yfeldblum Differential Revision: D16151292 fbshipit-source-id: 87caed64d9a874f71e85ee2842194405e43568a3
-
Yedidya Feldblum authored
Summary: [Folly] Dead Code: `PriorityMPMCQueue`. Reviewed By: LeeHowes Differential Revision: D17718372 fbshipit-source-id: c79c376abadf7149b94d343cd6705f030fd71666
-
Yedidya Feldblum authored
Summary: [Folly] `down_cast` for polymorphic checked-in-debug down-casts. Reviewed By: nbronson Differential Revision: D17650399 fbshipit-source-id: 9cdd224b3f97ba40f88013877f968ed311a3ab3c
-
Mingtao Yang authored
Summary: SSL_CTX_get_cipher_list() has different semantics when running under OpenSSL 1.1.1. This adjusts the tests that explicitly call SSLContext::setCiphers() to only check expectations against < TLS 1.3 cipher names. Reviewed By: knekritz Differential Revision: D17539611 fbshipit-source-id: c293bd1e6b886dbc575a0677a98776d256b23fb5
-
Rosen Penev authored
Summary: X509_get0_notBefore returns and takes const parameters. Signed-off-by: Rosen Penev <rosenp@gmail.com> ping reanimus Pull Request resolved: https://github.com/facebook/folly/pull/1235 Test Plan: Build Reviewed By: knekritz Differential Revision: D17695324 Pulled By: reanimus fbshipit-source-id: bebdb11fc9dd0b49354e7efcd1adc4f87a6675bc
-
- 01 Oct, 2019 6 commits
-
-
Maged Michael authored
Summary: Fix missing null check. It is possible for a thread to successfully CAS count from >= threshold to 0 and also pop an empty list. Example with 2 threads: - Batch contains Threshold - 1 objects - Thread 1 pushes an object, finds count == Threshold, CAS-es count to 0 successfully. - Thread 2 pushes Threshold more objects, finds count == Threshold, CAS-es count to 0 successfully. - Thread 1 pops all 2xThreshold objects (that's ok) - Thread 2 pops 0 objects (that's ok too but we need to do null check before dereferencing the head of the list). Reviewed By: davidtgoldblatt Differential Revision: D17680391 fbshipit-source-id: a1d68997668077cc0b34cc66405628ed2f95702b
-
Taewook Oh authored
Summary: According to https://github.com/jemalloc/jemalloc/issues/237 and https://fburl.com/aeia78qk, `__attribute__((nothrow))` is added to jemalloc API functions to be in compatible with `stdlib.h`. Reviewed By: yfeldblum Differential Revision: D17679036 fbshipit-source-id: 525a076f19719d2406c0dce92ca814f5f5011497
-
Adam Simpkins authored
Summary: Add a manifest to download pexpect-4.7.0 from PyPI, as well as its ptyprocess dependency. Reviewed By: wez Differential Revision: D17669618 fbshipit-source-id: 13395ec07f503f39adb3dc5aa8d0c2d8d0f1d927
-
Adam Simpkins authored
Summary: Correctly emit dependency information when one Python package depends on another. Reviewed By: wez Differential Revision: D17669620 fbshipit-source-id: f51c7851470fe50dc0c17263c94c4d858d6e0921
-
Yedidya Feldblum authored
Summary: [Folly] Assorted nits. Reviewed By: chadaustin Differential Revision: D17677721 fbshipit-source-id: a5903a61059cd60e093423d087b9e1d7e9e5d443
-
Yedidya Feldblum authored
Summary: [Folly] `aligned` and `cacheline_aligned`, aligned and implicitly padded value wrapper types. Reviewed By: nbronson Differential Revision: D17386115 fbshipit-source-id: 6da33a4d97f40ada59682e02af9d56863ccaff3d
-
- 30 Sep, 2019 4 commits
-
-
Igor Sugak authored
Summary: ``` s/safer to safer to log/safer to log/ ``` Reviewed By: yfeldblum Differential Revision: D17629820 fbshipit-source-id: 8f9c3e412dfe52664ac1ae45e521f7df8815cef1
-
Brian Bustamante authored
Summary: Allow propagation of completing executor KA in order to permit inlining Reviewed By: LeeHowes Differential Revision: D17123836 fbshipit-source-id: 7524868284f9482f56e5b8cd8b9e33bc4212de74
-
Luca Niccolini authored
Reviewed By: dddmello Differential Revision: D17642516 fbshipit-source-id: 5e9820df831fd907c97fab1238b38712ce2f6e64
-
wez@fb.com authored
Summary: Add a `--mode=tests` behavior for invoking `ctest` Reviewed By: simpkins Differential Revision: D17610033 fbshipit-source-id: 6284fe1dbfb7adf38a67820c842a5531eefd72fa
-