lp:folly

Created by Sam Spilsbury on 2013-05-10 and last modified on 2018-04-22
Get this branch:
bzr branch lp:folly

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Sam Spilsbury
Project:
folly
Status:
Development

Import details

Import Status: Reviewed

This branch is an import of the HEAD branch of the Git repository at git://github.com/facebook/folly.git.

The next import is scheduled to run in 1 hour.

Last successful import was 4 hours ago.

Import started 4 hours ago on alnitak and finished 4 hours ago taking 25 seconds — see the log
Import started 10 hours ago on izar and finished 10 hours ago taking 1 minute — see the log
Import started 16 hours ago on alnitak and finished 16 hours ago taking 25 seconds — see the log
Import started 22 hours ago on izar and finished 22 hours ago taking 1 minute — see the log
Import started on 2018-04-21 on izar and finished on 2018-04-21 taking 25 seconds — see the log
Import started on 2018-04-21 on izar and finished on 2018-04-21 taking 40 seconds — see the log
Import started on 2018-04-21 on alnitak and finished on 2018-04-21 taking 25 seconds — see the log
Import started on 2018-04-20 on izar and finished on 2018-04-20 taking 20 seconds — see the log
Import started on 2018-04-20 on izar and finished on 2018-04-20 taking 30 seconds — see the log
Import started on 2018-04-20 on izar and finished on 2018-04-20 taking 25 seconds — see the log

Recent revisions

5234. By Yedidya Feldblum <email address hidden> 15 hours ago

Use exchange in folly/Synchronized.h

Summary: [Folly] Use exchange in `folly/Synchronized.h` as an example and to make the code there slightly shorter.

Reviewed By: aary

Differential Revision: D7722730

fbshipit-source-id: c594fc96cff11781b60a3848a860454bcf21c3ca

5233. By Yedidya Feldblum <email address hidden> 15 hours ago

Backport std::exchange

Summary: [Folly] Backport `std::exchange` to `folly/Utility.h`.

Reviewed By: aary

Differential Revision: D7722731

fbshipit-source-id: a4a68bfb9ec8b356b77f4a73bdadb7f2807d517f

5232. By Aaryaman Sagar <email address hidden> 22 hours ago

Remove some unused code from LockTraits

Summary:
There was some code that optionally acquired a lock in a shared or exclusive
manner based on whether those methods were available for the mutex or not.
This was not used anywhere

Reviewed By: yfeldblum

Differential Revision: D7722906

fbshipit-source-id: b749527c13a1d980134cc23dea586c83a0b65e91

5231. By Lucian Grijincu <email address hidden> on 2018-04-21

folly: uniform #include <folly/...>

Reviewed By: yfeldblum

Differential Revision: D7721840

fbshipit-source-id: f816ba58da290e05d257447c42472d5fa99915e3

5230. By Zhanhui Li <email address hidden> on 2018-04-21

BugFix: QueuedImmediateExecutor.h is missed in the include header files

Summary:
As per title.
Closes https://github.com/facebook/folly/pull/827

Reviewed By: Orvid

Differential Revision: D7721855

Pulled By: yfeldblum

fbshipit-source-id: fe335dcfa83b4db04616e33e353fea52ebb2bbf2

5229. By Xiao Shi <email address hidden> on 2018-04-21

add `getAllocatedMemorySize` for F14 maps on all platforms

Summary:
D7544180 introduced the `getAllocatedMemorySize` method. This diff adds it for
platforms where SSE2 instructions are not available.

Reviewed By: nbronson

Differential Revision: D7715573

fbshipit-source-id: af35f2dedf4a479895163d9dc18795ba397860f7

5228. By Giuseppe Ottaviano <email address hidden> on 2018-04-21

Don't launder the Optional's storage

Summary:
`Optional` is often used for arguments and return values, and
when the function is inlined it is important to be able to perform
optimizations such as constant folding.

`launder` forces a load on every access to the `Optional` in GCC,
making it unsuitable for small hot functions. This is not specific to
the `asm` trick we use to backport `launder` to pre-GCC7: the same
code is generated in GCC7 with the builtin `std::launder`.

`launder` is needed for correctness, as replacing an object that
contains const or reference members in the same storage is
UB. However, it seems to be a benign UB that real compilers don't take
advantage of. In fact, the implementation of `std::optional` in both
libstdc++ and libc++ does not launder the storage:

https://github.com/gcc-mirror/gcc/blob/20d1a0756a0cf5072d0cdf3d2adab00063c224a7/libstdc%2B%2B-v3/include/std/optional#L881
https://github.com/llvm-mirror/libcxx/blob/8dd2afa20a01ee70e1a49c15de3de343aa8aa7d6/include/optional#L295

So it should be safe to follow these implementations and recover the
perf hit.

Reviewed By: luciang

Differential Revision: D7689228

fbshipit-source-id: 8283de56b0934583773a0d19f315ae7a8d556e8c

5227. By Matthew Tolton <email address hidden> on 2018-04-20

Add nesting to folly::RequestContext

Differential Revision: D7663240

fbshipit-source-id: d7025eb220ff3f87b05988090297573377ca009a

5226. By Andrii Grynenko <email address hidden> on 2018-04-20

Implement eager subscription in subcribeVia

Summary: Life-time of executor passed to subscribeVia can be tied to the previous stream. We have to eagerly subscribe to it to process onError/onComplete events and make sure we stop using that executor for any subsequent calls.

Reviewed By: phoad

Differential Revision: D7651264

fbshipit-source-id: c50090ff58a4835b439df2080e083a9302c40152

5225. By Nathan Bronson <email address hidden> on 2018-04-20

fix MemoryIdler constant for 64-bit windows

Summary:
long is 32-bit on 64-bit windows, unlike Linux, so 64-bit
integer constants should use the ULL suffix.

Reviewed By: mjhostet

Differential Revision: D7690572

fbshipit-source-id: a4d57555add63a4a88aceda1b02531eb8c5e1f0f

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
This branch contains Public information 
Everyone can see this information.

Subscribers