Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Christopher Davenport
    @ChristopherDavenport
    So I introduced a CS to shift and no change to final behavior.
    Christopher Davenport
    @ChristopherDavenport
    @TimWSpence So how are we doing? I’m still a little worried about our blockage here.
    Tim Spence
    @TimWSpence
    @ChristopherDavenport sorry, haven’t had much time to work on this recently! What did you mean by blockage sorry? I’ve had a bit of a look into retry fairness but haven’t gotten to the bottom of it yet
    PS you can see my attempted fix here: TimWSpence/cats-stm@11aef71 I might actually merge this anyway as it seems like the right thing to do - we will now retry transactions that have been waiting longer first. However it still doesn’t seem to fix the behaviour of the Santa Claus problem
    Tim Spence
    @TimWSpence
    Oh sorry, I just re-read your previous comment. I’ll try combining my change above with the one you suggested and see if that fixes it
    Christopher Davenport
    @ChristopherDavenport
    The issue is that without some level of fairness, we are in a position where I cant reliably expect an action that should logically occur to happen.
    As in the elves are ready but they are never happening and not because they weren’t waiting. As obviously they were done.
    Tim Spence
    @TimWSpence
    Yeah, so I believe the change linked above should fix the fairness. But I’m suspicous of this as well: https://github.com/TimWSpence/cats-stm/blob/master/examples/src/main/scala/io/github/timwspence/cats/stm/SantaClausProblem.scala#L74 I’m just trying to think through what that will do but creating new gates every time looks strange to me?
    And yes, I agree that lack of fairness is a significant problem :joy:
    Tim Spence
    @TimWSpence
    It think it is fine actually, it just wasn’t what I expected at first. Which leaves me back at square one :sob:
    Christopher Davenport
    @ChristopherDavenport
    Yeah. :cry:
    Tim Spence
    @TimWSpence
    Timer[IO].sleep(n.micros) this shouldn’t block a thread, should it? If I add a 0 to the random int bound then the whole program seems to block sometimes
    Christopher Davenport
    @ChristopherDavenport
    It shouldn’t block on a thread I believe
    Tim Spence
    @TimWSpence
    Yeah, I didn’t think so. I’ve probably done something else stupid
    Tim Spence
    @TimWSpence
    @ChristopherDavenport good news! After a 7 month sebatical (to be fair, I was on paternity leave for quite a bit of it), I’ve fixed our issues with this :)
    (Or at least the Santa Claus example now behaves as expected)
    I’ve published 0.6.0 with the changes
    Ross A. Baker
    @rossabaker
    :tada: Welcome back, and congrats!
    Tim Spence
    @TimWSpence
    Thanks @rossabaker :)
    Although I’m now having mima problems :sob: Is it obvious to anyone here what the problem is with https://travis-ci.com/TimWSpence/cats-stm/jobs/285934093 and why it’s only a problem on 2.12.x?
    Ross A. Baker
    @rossabaker
    cats-effect had an issue where it had to add exceptions. I can dig it up after my meeting, but this reminds me of that.
    Tim Spence
    @TimWSpence
    Great, thanks! I can always just bump the version again to get rid of it as it’s not stable yet so I don’t really care
    but obviously I shouldn’t have to!
    Christopher Davenport
    @ChristopherDavenport
    This is great news!
    Ross A. Baker
    @rossabaker
    Sorry, I got distracted and failed to report back.
    The MiMa errors reminded me of typelevel/cats-effect#770, but it looks like you found a workaround.
    Tim Spence
    @TimWSpence
    Thanks Ross. Yeah, just bumped the version to get rid of it :joy:
    renghen
    @renghenKow_twitter
    hi
    the library is interesting
    do you have a java api, so that I can use the lib in kotlin or java
    not everyone gets to use scala in thei job
    Tim Spence
    @TimWSpence
    Thanks @renghenKow_twitter The implementation is pretty tied to Scala's cats effect so I think a Java API would be tied to that as well. I'd be surprised if Cats Effect supports Java at all (no implicits or higher kinded types for a start) but @ChristopherDavenport or @rossabaker might be able to give you more details - I've never tried to use it from Java
    renghen
    @renghenKow_twitter
    Thanks very much for the answer
    was thinking of a wrapper
    like scala-stm does it
    Tim Spence
    @TimWSpence
    No worries! As I said, I think a wrapper would be hard because the scala features we use don't easily map to Java (as far as I'm aware anyway) but I'm very happy to consider PRs that don't break the scala UX!
    Ross A. Baker
    @rossabaker
    I guess if you run javap on the classes of cats-stm, you'd get some sense of how those Scala features map to Java.
    I used to call Scala from Java a lot, but that was before I'd heard of higher-kinded types.
    And I think the wrapper would be the most promising approach, like scala-stm's JAPI.