Do you have some examples for "compiler bug"?
Do you have some examples for "compiler bug"?
1. (Search for "asInstanceOf"): http://typelevel.org/cats/tut/freemonad.html
2. (Finally fixed and will hopefully be released soon - yay!): https://issues.scala-lang.org/browse/SI-2712
3. https://twitter.com/extempore2/status/430456002392391681
4. http://pchiusano.blogspot.com/2011/05/making-most-of-scalas-...
5. (Anecdotal): Various pattern matching peculiarities.
Compiler bugs: As long as I write code on the happy path and steer clear of scalaz/shapeless/cats, the compiler is pretty well-behaved and I can go months without getting a compiler crash. However, when I add those in and start writing pure functional code with complicated types that hits the intersections of various features (e.g., GADTs, package objects, implicits), I get a few crashes per week related to known bugs.
It works pretty well, and I am not trying to complain too much about all the mileage I get out of Scala and the excellent tooling! Just trying to get the most out of it.
Interesting! Can you link to the issue?
My current code base is not open-source just yet, so reporting self-contained reports may not be possible. (Currently I'm writing an interpreter for a fairly big declarative language using FreeApplicative from cats as the substrate, and I think the sheer size of it along with shapeless and scalaz usage is causing some undesirable feature interactions.
Where would be the best venue for reporting (known) bugs? Is there any value if I can't provide the actual code? Or is just reporting a "I experienced it too" message valuable?
Even if you can't publish your code, it might help to say "I'm seeing the same error, but I'm using X unlike the exmaple code that uses Y".
This will make sure that people who fix a bug will cover both causes with a test.
edit: The extension to [1] is actually pretty benign and the compiler does well with it. The part that puts a big load on the compiler is that it is used as an interpreter for a popular, yet complicated, visualization DSL. The compiler, especially the typechecker, has to do a huge amount of work.
[1] https://github.com/jdegoes/scalaworld-2015/tree/master/src/m...
SI-1503 should warn in 2.12, additional progress might happen in https://github.com/scala/scala/pull/5310.