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

The state of 0.5 version? #75

Closed
qrilka opened this issue Nov 4, 2016 · 26 comments
Closed

The state of 0.5 version? #75

qrilka opened this issue Nov 4, 2016 · 26 comments
Labels
Milestone

Comments

@qrilka
Copy link

qrilka commented Nov 4, 2016

I think it (version 0.5) is in the master for some time already but I have seen no plans or roadmap - are there any?

@ryantrinkle
Copy link
Member

@qrilka The basic plan is to get some of the branches that have been kicking around merged in, then some testing and release. The branches have fairly big performance improvements, so I don't want to pass them by. Also, I need to do a bit more to ensure that 0.5 is as compatible with 0.4 as possible - I don't want people to have to change their code too much to upgrade.

@qrilka
Copy link
Author

qrilka commented Nov 4, 2016

Thanks for your quick response @ryantrinkle
Are there any estimates maybe?
Is it planned as a Christmas present? :)

@lingnand
Copy link

lingnand commented Nov 4, 2016

Joining the queue for the Christmas present :)

On Fri, 4 Nov 2016, 13:59 Kirill Zaborsky, notifications@github.com wrote:

Thanks for your quick response @ryantrinkle
https://github.com/ryantrinkle
Are there any estimates maybe?
Is it planned as a Christmas present? :)


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
#75 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AB5kSoxTdCiXrNaNXO-uakutoClb41tqks5q6zpIgaJpZM4KpiqP
.

Lingnan Dai

@qrilka
Copy link
Author

qrilka commented Nov 29, 2016

@ryantrinkle is it expected for the current master to consume more RAM than reflex-0.4.0? In one of "bad" pages in our app we load quite a huge table with XHR and Chrome shows something like 500M consumed by the previous version while for the version ported to 0.5 it shows1500M.
Could it be related to the switch from String to Text ()?

@ryantrinkle
Copy link
Member

@qrilka Are you referring to develop? master should be basically the same as 0.4.0 right now.

No, I wouldn't expect increased memory usage like that - it would be great to have an issue with the info to reproduce that. Would be very interesting to track down!

@qrilka
Copy link
Author

qrilka commented Nov 29, 2016

oh, sorry...
develop sure
I'll try to reproduce it in a small example tomorrow.
And those number are for peak consumption though average value also seems to be higher for develop.

@qrilka
Copy link
Author

qrilka commented Nov 30, 2016

Filed #81 regarding memory issues

@qrilka
Copy link
Author

qrilka commented Nov 30, 2016

Also I've noticed that porting to 0.5.0 increased the size of our minified app js by 200k - is it expected?

@deepfire
Copy link

@ryantrinkle, maybe making a GitHub milestone for 0.5.0 release could help us?

@sboosali
Copy link

sboosali commented Jan 3, 2018

Any update on this? It'd be nice to get an official release.

@ryantrinkle
Copy link
Member

ryantrinkle commented Jan 3, 2018

@sboosali Agreed. @deepfire A github milestone is a great idea; I will try to prioritize creating one with everything that's needed for a release ASAP. Hopefully it will be fairly small things that are required. Off the top of my head:

  • There are some missing typeclass instances
  • ModalsT is commented out; it should probably just be removed for now, and reimplemented in terms of the new RequesterT stuff at some point
  • There are probably some docs missing

@sboosali
Copy link

sboosali commented Jan 3, 2018

while pretty trivial, w.r.t. missing instances, FunctorMaybe is satsified by several containers, anything that can be empty. Like:

instance FunctorMaybe Maybe
fmapMaybe :: (a -> Maybe b) -> Maybe a -> Maybe b   
fmapMaybe k m = m >>= k

also, the current Witherable seems to have a Filterable class with only a Functor super class.

https://hackage.haskell.org/package/witherable-0.2/docs/Data-Witherable.html

If it doesn't add any dependencies not already present, maybe it's worth it to just pull it in?

@ryantrinkle
Copy link
Member

@sboosali Using something outside reflex for FunctorMaybe would be great; however, there are a few options, and I'm not quite sure which is best. What about Compactable? Do you have any sense of how it compares with witherable?

@ryantrinkle
Copy link
Member

@deepfire @sboosali Added the new milestone here: https://github.com/reflex-frp/reflex/milestone/1

@sboosali
Copy link

sboosali commented Jan 3, 2018 via email

@Fresheyeball
Copy link

Fresheyeball commented Jan 3, 2018

@sboosali Compactable subsumes Witherable. So I recommend Compactable (not just because I wrote it), but because you can't use Witherable with Event t, since it has extraneous constraints. Compactable also has a better structure for providing performance specific function instances where appropriate, for example, fmapMaybe can have a higher performance instance for list than catMaybes . fmap.

@sboosali
Copy link

sboosali commented Jan 3, 2018 via email

@Fresheyeball
Copy link

@sboosali right. But if you use Compactable, Event t is Compactable, as well as can have a Compact Functor instance, and filter comes for free. Imho Filterable is a broken abstraction, compact :: f (Maybe a) -> f a is the core abstraction. All the Witherable abstractions can be written in terms of compact, but not vice versa.

@ElvishJerricco
Copy link
Contributor

I agree with @sboosali. The Functor superclass is important. I do not see anything broken about Filterable. The only advantage of Compactable is that it works for non-functor types, which isn't really the semantics anyone is looking for. Plus, Compactable's weird use of inner constraints pose a couple of problems.

  1. Specializing such constraints is very hard, so it could be a major performance issue.
  2. As long as we're focusing on simplifying Reflex (and I do think that's a major focus right now), this use of inner constraints on outer types is probably unnecessarily complicated for newcomers (who have enough trouble just figuring out basic use of inner constraints in traverse).

@sboosali
Copy link

sboosali commented Jan 3, 2018 via email

@ryantrinkle
Copy link
Member

@ElvishJerricco Very good point about specialization. Since ghcjs is still on 8.0, and 8.0 doesn't seem to ever specialize code when a method has a constraint, I think we should defer this discussion until ghcjs moves to 8.2 and we re-test. Unspecialized code is insanely slow.

@ryantrinkle ryantrinkle added this to the v0.5 milestone Jan 4, 2018
@ryantrinkle
Copy link
Member

I got rid of one of the missing method implementations today, leaving just traverseIntMapWithKeyWithAdust for QueryT. I'm also most of the way through assigning issues to milestones. Progress!

@ryantrinkle
Copy link
Member

Alright, every issue now has a milestone: either v0.5 or Later.

@jappeace
Copy link
Contributor

You could just push out a release and set the milestones for v0.6. Looking at the haddock difference 0.4 is hopelessly out of date.

@ali-abrar
Copy link
Member

Hi everyone - closing this as 0.5 has hit hackage. Sorry for the wait.

@deepfire
Copy link

Congratulations, gentlemen, and thank you for your great work! : -)

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

No branches or pull requests

10 participants