Page MenuHomePhabricator

jsoyke (Jordan Soyke)
User

Projects

User does not belong to any projects.

User Details

User Since
Nov 28 2018, 12:11 PM (7 w, 16 h)

Recent Activity

Dec 10 2018

jsoyke added a comment to D55045: Add a version of std::function that includes a few optimizations..

I can take a stab at fixing that if you can point me to the code that does that formatting? I plan on making another change here so it would be good if I could fix the problem in advance.

Dec 10 2018, 2:00 PM
jsoyke updated the diff for D55045: Add a version of std::function that includes a few optimizations..

Addressing review comments.

Dec 10 2018, 11:15 AM
jsoyke updated the diff for D55045: Add a version of std::function that includes a few optimizations..

Drop duplicate definition of __value_func.

Dec 10 2018, 10:32 AM
jsoyke updated the diff for D55045: Add a version of std::function that includes a few optimizations..

Dropping comment that doesn't applit now that __policy_storage doesn't use alligned_storage.

Dec 10 2018, 10:26 AM
jsoyke updated the diff for D55045: Add a version of std::function that includes a few optimizations..

Sync to head.

Dec 10 2018, 10:24 AM
jsoyke created D55520: Refactor std::function to more easily support alternative implementations..
Dec 10 2018, 9:47 AM

Dec 7 2018

jsoyke updated the diff for D55045: Add a version of std::function that includes a few optimizations..

Sync to head.

Dec 7 2018, 12:36 PM
jsoyke added a comment to D55045: Add a version of std::function that includes a few optimizations..

Thanks for the review! I don't have commit access so I think someone else will have to commit this for me?

Dec 7 2018, 12:18 PM
jsoyke updated the diff for D55045: Add a version of std::function that includes a few optimizations..

Remove hardcoded config option.

Dec 7 2018, 12:13 PM
jsoyke updated the diff for D55045: Add a version of std::function that includes a few optimizations..

Avoid aligned_storage.

Dec 7 2018, 11:42 AM
jsoyke added inline comments to D55045: Add a version of std::function that includes a few optimizations..
Dec 7 2018, 11:41 AM

Dec 6 2018

jsoyke added inline comments to D55045: Add a version of std::function that includes a few optimizations..
Dec 6 2018, 8:59 PM
jsoyke added inline comments to D55045: Add a version of std::function that includes a few optimizations..
Dec 6 2018, 8:33 PM
jsoyke updated the diff for D55045: Add a version of std::function that includes a few optimizations..

Addressing some review comments.
Reformatting for consistency.
More explicit class names.
Fixing an expected performance regression.

Dec 6 2018, 8:27 PM

Dec 4 2018

jsoyke added a comment to D55045: Add a version of std::function that includes a few optimizations..

Some tests are failing at this new version. Some seem because the tests depend on under-specified behavior, some might be legitimate so I'll dig into those more tomorrow.

Dec 4 2018, 8:12 PM
jsoyke updated the diff for D55045: Add a version of std::function that includes a few optimizations..

Addressing recent review comments.

Dec 4 2018, 8:12 PM

Dec 3 2018

jsoyke added inline comments to D55045: Add a version of std::function that includes a few optimizations..
Dec 3 2018, 9:53 PM
jsoyke added inline comments to D55045: Add a version of std::function that includes a few optimizations..
Dec 3 2018, 9:49 PM
jsoyke updated the diff for D55045: Add a version of std::function that includes a few optimizations..

Adding some comments to new classes.

Dec 3 2018, 9:44 PM
jsoyke added a comment to D55045: Add a version of std::function that includes a few optimizations..

Eric and I just spoke. My point of view:

We should investigate factoring out the functions that differ in implementation into separate classes with a common API. This way, we could have something like this:

Dec 3 2018, 9:38 PM
jsoyke updated the diff for D55045: Add a version of std::function that includes a few optimizations..

Refactoring implementation of std::function into a few different classes to minimize the number of ifdefs.

Dec 3 2018, 9:33 PM
jsoyke added a comment to D55045: Add a version of std::function that includes a few optimizations..

If we had a way of switching between multiple implementations more easily and this was just another implementation that users can pick if they wish to, I would almost certainly care a bit less.

Dec 3 2018, 12:22 PM
jsoyke updated the diff for D55045: Add a version of std::function that includes a few optimizations..

Remove extra ';'

Dec 3 2018, 11:33 AM
jsoyke added a comment to D55045: Add a version of std::function that includes a few optimizations..

@jsoyke, I spoke to the other maintainers, and it's cool if we entirely ignore the allocators. So feel free to use that to squeeze out w/e benefits you can.

Dec 3 2018, 11:17 AM

Nov 30 2018

jsoyke added inline comments to D55045: Add a version of std::function that includes a few optimizations..
Nov 30 2018, 9:07 PM
jsoyke updated the diff for D55045: Add a version of std::function that includes a few optimizations..

Use _LIBCPP_CONSTEXPR

Nov 30 2018, 9:06 PM
jsoyke updated the diff for D55045: Add a version of std::function that includes a few optimizations..

Adding allocator support.

Nov 30 2018, 9:01 PM
jsoyke added a comment to D55045: Add a version of std::function that includes a few optimizations..

Heres another version that might be worth discussing. It's a much simpler implementation because it doesn't attempt small value optimization for non-trivial objects, this makes operations like move-construction very fast.

Nov 30 2018, 2:15 PM
jsoyke updated the diff for D55045: Add a version of std::function that includes a few optimizations..

Switching to version of optimized function that doesn't include small-object-optimization for small non-trivial objects.

Nov 30 2018, 2:09 PM
jsoyke updated the diff for D55045: Add a version of std::function that includes a few optimizations..

Fixing local variables and template paramters that didn't use reserved names.

Nov 30 2018, 8:41 AM
jsoyke added a comment to D55045: Add a version of std::function that includes a few optimizations..

Bah, I just realized I still have a bunch of local variables that don't use reserved names. Fixing.

Nov 30 2018, 8:35 AM
jsoyke added inline comments to D55045: Add a version of std::function that includes a few optimizations..
Nov 30 2018, 7:50 AM
jsoyke added a comment to D55045: Add a version of std::function that includes a few optimizations..

FWIW, I'm slightly in favor of using different headers. For example, I just realized that this change currently leaves a bunch of baggage symbols laying around that the new code won't use, it would be easier to see that kind of thing if the internals of each function were just in it's own file.

Nov 30 2018, 7:48 AM
jsoyke updated the diff for D55045: Add a version of std::function that includes a few optimizations..

Adding __ to all internal symbols.

Nov 30 2018, 7:45 AM
jsoyke added a comment to D55045: Add a version of std::function that includes a few optimizations..

The output is the time delta, not a fraction. It's the output of libcxx/utils/google-benchmark/tools/compare.py. Some of the operations are sub-nano-second so it's handy for that. The times are so low here we may want to time ~10 operations or something instead of just one, but the comparison seems roughly inline with what I've seen with our internal tools.

Nov 30 2018, 7:21 AM
jsoyke updated the diff for D55045: Add a version of std::function that includes a few optimizations..

Added benchmark that creates many different types of functors to avoid branch prediction.

Nov 30 2018, 7:19 AM
jsoyke added a comment to D55045: Add a version of std::function that includes a few optimizations..

Thanks! What is this output? Is this some "diff" view between the current and the proposed patch? The time column with floating points represents a change in percentage from the baseline to the candidate (e.g. +0.13 == +13%)? I've used Google Benchmark in the past but I've never seen output exactly like that.

Nov 30 2018, 6:29 AM

Nov 29 2018

jsoyke added a comment to D55045: Add a version of std::function that includes a few optimizations..

Current benchmark output with clang-7:

Nov 29 2018, 8:13 PM
jsoyke updated the diff for D55045: Add a version of std::function that includes a few optimizations..

Addressing some comments, using explicit bools for 'trivial' and 'is_small' again (these perform better for some reason?).

Nov 29 2018, 8:09 PM

Nov 28 2018

jsoyke updated the diff for D55045: Add a version of std::function that includes a few optimizations..

Remove hardcoded define that I left in place during testing.

Nov 28 2018, 9:15 PM
jsoyke updated the diff for D55045: Add a version of std::function that includes a few optimizations..

Fix recent changes that I accidentally clobbered.

Nov 28 2018, 9:13 PM
jsoyke updated the diff for D55045: Add a version of std::function that includes a few optimizations..

Add __config changes.

Nov 28 2018, 9:12 PM
jsoyke created D55045: Add a version of std::function that includes a few optimizations..
Nov 28 2018, 9:07 PM