by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Harrison Houghton
    @hrhino
    does @varargs not work for you?
    Stefan Zeiger
    @szeiger
    Not sure I understand. Are you writing the forwarder in Java? If it's in Scala then how do you end up creating a Java-varargs method without an auto-generated forwarder? If you're implementing a Java interface in Scala you use Scala varargs and the compiler generates a bridge method.
    Martijn Hoekstra
    @martijnhoekstra
    I'm attempting to write a java wrapper class that I want to wrap (among other things) a scala method with varargs
    Matthew Rooney
    @javax-swing
    @martijnhoekstra IIRC scala var args compile into scala.collection.Seq. so you can use one of the methods on scala.collection.JavaConverters to convert your java varargs into a seq
    Sébastien Doeraene
    @sjrd
    @nafg I'm on vacation until August 12. I will have a look at the LazyList PR after that.
    nafg
    @nafg
    @sjrd was that intended for someone else?
    Julien Richard-Foy
    @julienrf
    @NthPortal I guess?
    Nth/April
    @NthPortal
    I would love the feedback. unfortunately, the deadline is August 10
    Sébastien Doeraene
    @sjrd
    Ah well, it's going to be without me, then.
    Stefan Zeiger
    @szeiger
    FYI: I'll be on vacation until September 2
    Ichoran
    @Ichoran
    Me too, but it matters much less :)
    Matthew de Detrich
    @mdedetrich
    @Ichoran @szeiger This may sound like a really dumb question, but it appears that .hashCode doesn’t respect equality as it should since it takes into account order
    This is wrt Map/VectorMap etc
    Actually nvm found it
    Ichoran
    @Ichoran
    Yeah, you have to use the (not very awesome) Map hash routine instead of the (pretty decent) Seq one.
    Nth/April
    @NthPortal
    why does LinearSeqOps#tail return LinearSeq and not C?
    Nth/April
    @NthPortal
    thoughts on the following unfoldLazy definition for the LazyList companion?
    def unfoldLazy[A, S](init: => S)(f: S => Option[(() => A, () => S)]): LazyList[A]
    Matthew Rooney
    @javax-swing
    @NthPortal is there much point in the state being returned from the unfold function being lazy? Is there an issue this is linked to? I can see the benefit of A.
    Since you need to S to evaluate the next tail
    Nth/April
    @NthPortal
    @javax-swing I don't know how valuable S being lazy is. But I don't see any reason to evaluate the next S if you never evaluate the next tail
    Matthew Rooney
    @javax-swing
    @NthPortal Ah yeah I guess so
    Harrison Houghton
    @hrhino
    Does init need to be by-name?
    Nth/April
    @NthPortal
    I don't know
    is there a reason for LazyList to have a fromIterator method, on top of from(IterableOnce)?
    Lukas Rytz
    @lrytz
    ArrayOps.sorted looks quite dubious to me, it probably performs really badly on primitive arrays. Should we really have that method?
    Stefan Zeiger
    @szeiger
    @lrytz It's probably better to use Sorting.sorted for primitive arrays
    Harrison Houghton
    @hrhino
    couldn't ArrayOps delegate to Sorting?
    Stefan Zeiger
    @szeiger
    Yes, that's what I meant
    Harrison Houghton
    @hrhino
    so not to be a wet blanket or anything, and scala/scala#3434 notwithstanding
    Welcome to Scala 2.13.0-M5 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_161).
    Type in expressions for evaluation. Or try :help.
    
    scala> val map = collection.mutable.AnyRefMap.empty[String, Int]
    map: scala.collection.mutable.AnyRefMap[String,Int] = AnyRefMap()
    
    scala> map.getOrElseUpdate("FB", { map.put("Ea", 1) ; 2 })
    res0: Int = 2
    
    scala> map.size
    res1: Int = 2
    
    scala> map.toList
    res2: List[(String, Int)] = List((FB,2))
    
    scala> map.get("Ea")
    res3: Option[Int] = None
    is there a reason we can't just say "modifying the map in the closure argument of getOrElseUpdate is not allowed"?
    The fix would basically come down to reducing getOrElseUpdate to get(key).getOrElse(put(key, default)), and my understanding of the point of getOrElseUpdate is that it's supposed to be faster than that (due to only having to find the entry once)
    (of course, that's not to discount someone cleverer knowing a cleverer fix)
    Harrison Houghton
    @hrhino
    A possible cleverer solution would be to have a modification count.
    Seth Tisue
    @SethTisue
    @hrhino I wouldn’t have been surprised (or disappointed) if scala/bug#8213 had simply been closed as “wontfix"
    Harrison Houghton
    @hrhino
    :+1: agreed. I guess, having fixed it, it's too late to unfix it in 2.13.
    I'll see about using a modification count or something
    Harrison Houghton
    @hrhino
    I was looking into some kind of upsert operation for mutable maps and realized it'd have the exact same issue (as 8213) unless I implemented it the slow way.
    Seth Tisue
    @SethTisue

    I guess, having fixed it, it's too late to unfix it in 2.13

    idk, you could see what @Ichoran thinks

    I put a comment on scala/bug#8213
    Harrison Houghton
    @hrhino
    thanks.
    I think the argument is strengthened also by the fact that these aren't the concurrent collections; they break in amusing ways if two methods are "active" on them at the same time (because of concurrency), so it's not a reach IMO to say that breaking if two methods are "active" on the same thread is consistent with the use case.
    Ichoran
    @Ichoran
    I think fixing the behavior is the right thing to do, as explained in my comment on the ticket.
    Nth/April
    @NthPortal
    in practice, do we have any collections (excluding doing bad things with views) where knownSize is not constant time?
    e.g. logarithmic or something
    Josh
    @joshlemer
    In general is there a way to write tests that verifies this? i.e. assert that some code completes in < X cpu cycles or something
    especially because it's not even enough for knownSize to be O(1), it also must be very fast
    Nth/April
    @NthPortal
    O(log n) can be fast
    Harrison Houghton
    @hrhino
    It can be effectively constant, even.