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

WIP: Simplified Iterant Type #331

Closed
wants to merge 9 commits into
base: master
from

Conversation

Projects
None yet
2 participants
@alexandru
Member

alexandru commented Mar 13, 2017

This new Iterant data type describes pull-based streams powered by Task.

This is an Iterant design offered as an alternative to PR #280, providing no plugable F[_] context, as a simplification.

Working with higher-kinded polymorphism powered by type classes in Scala is not pleasant or even feasible:

  • interactions with variance and the compiler is pushed to its limits - for example I discovered a case where a simple change meant the compilation times increasing from 5 seconds to over one minute on my machine, not to mention dozens of cases where the compiler couldn't infer types, with really ugly fixes when pattern matching
  • moving this implementation forward with useful stuff means designing new type-classes, because not all needed type-classes are available in Cats or Scalaz, and this is actually a hard exercise, see for example: typelevel/cats#1552
  • a higher-kinded design makes it harder to understand by users, especially due to lack of education and most of the time they'll want Task; I just want a simple pull-based solution, for "bringing your own booze" scenarios, maybe other libraries would be better, like FS2 or iteratee.io

The upside is that I might actually ship it in this lifetime. Waiting for feedback...

@codecov

This comment has been minimized.

Show comment
Hide comment
@codecov

codecov bot Mar 13, 2017

Codecov Report

Merging #331 into master will decrease coverage by 5.49%.
The diff coverage is 92.68%.

@@            Coverage Diff            @@
##           master     #331     +/-   ##
=========================================
- Coverage   86.43%   80.94%   -5.5%     
=========================================
  Files         312      322     +10     
  Lines        8338     9429   +1091     
  Branches     1645     1737     +92     
=========================================
+ Hits         7207     7632    +425     
- Misses       1131     1797    +666

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 59bbd70...c38d5d3. Read the comment docs.

codecov bot commented Mar 13, 2017

Codecov Report

Merging #331 into master will decrease coverage by 5.49%.
The diff coverage is 92.68%.

@@            Coverage Diff            @@
##           master     #331     +/-   ##
=========================================
- Coverage   86.43%   80.94%   -5.5%     
=========================================
  Files         312      322     +10     
  Lines        8338     9429   +1091     
  Branches     1645     1737     +92     
=========================================
+ Hits         7207     7632    +425     
- Misses       1131     1797    +666

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 59bbd70...c38d5d3. Read the comment docs.

alexandru added some commits Mar 13, 2017

@alexandru

This comment has been minimized.

Show comment
Hide comment
@alexandru

alexandru Mar 22, 2017

Member

I'm dropping this PR because it's not as cool as the other one :-)

Member

alexandru commented Mar 22, 2017

I'm dropping this PR because it's not as cool as the other one :-)

@alexandru alexandru closed this Mar 22, 2017

@notxcain

This comment has been minimized.

Show comment
Hide comment
@notxcain

notxcain May 25, 2017

I'm dropping this PR because it's not as cool as the other one :-)

@alexandru which one?

notxcain commented May 25, 2017

I'm dropping this PR because it's not as cool as the other one :-)

@alexandru which one?

@alexandru

This comment has been minimized.

Show comment
Hide comment
@alexandru

alexandru Jun 1, 2017

Member

@notxcain I moved the development in my personal repository and that branch is a little stagnant, waiting on the progress in cats-effects ... https://github.com/alexandru/monix/tree/wip-streams

I basically wanted to get rid of monix-types from Monix first. Which will happen in version 3.0.0.

Member

alexandru commented Jun 1, 2017

@notxcain I moved the development in my personal repository and that branch is a little stagnant, waiting on the progress in cats-effects ... https://github.com/alexandru/monix/tree/wip-streams

I basically wanted to get rid of monix-types from Monix first. Which will happen in version 3.0.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment