Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Things needed for a PoC port of the Stack Overflow codebase to LinqAF #3

Open
kevin-montrose opened this issue Jan 22, 2018 · 6 comments
Assignees

Comments

@kevin-montrose
Copy link
Owner

Just for kicks, here's basically what would be needed to make this not hellaciously awful.

  • AddRange on IList extension method
  • ILookup<T,V> defined
  • IGrouping<T,V> defined
  • IOrderedEnumerable defined
  • AsEnumerable() on the various sorted enumerables should return an IOrderedEnumerable

Obviously this code can't be released, but it'll give a baseline of before & after compile times from conversion.

Spoiler alert: I bet they're reaaaaaaal bad.

@kevin-montrose kevin-montrose self-assigned this Jan 22, 2018
@kevin-montrose
Copy link
Owner Author

kevin-montrose commented Jan 25, 2018

AddRange PoC

Needs bridge types (to avoid allocs) and optimizations for one item and range enumerables.

@kevin-montrose
Copy link
Owner Author

We'd also need an IQueryable pass-through, otherwise a naive drop in is gonna do really bad things to L2S or L2EF (or whatever).

@kevin-montrose
Copy link
Owner Author

Something nice to replace string.Join(string, IEnumerable) as well.

@kevin-montrose
Copy link
Owner Author

SO has it's own ToHashSet(); since that's in .NET 4.7.1 might as well bite the bullet on those additions.

@kevin-montrose
Copy link
Owner Author

2.0.0 makes big steps in this direction, though leaving it open for now.

Also:
https://twitter.com/kevinmontrose/status/956998492190322688

@kevin-montrose
Copy link
Owner Author

Will also need something for Task.WhenAll/WaitAll/Whatever

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant