Skip to content

Instantly share code, notes, and snippets.

View retronym's full-sized avatar

Jason Zaugg retronym

View GitHub Profile
% qscalac -Xprint:parser,patmat sandbox/test1.scala
[[syntax trees at end of parser]] // test1.scala
package <empty> {
sealed abstract class Expr extends scala.AnyRef {
def <init>() = {
super.<init>();
()
}
};
case class Mul extends Expr with scala.Product with scala.Serializable {
@retronym
retronym / infer.scala
Created February 2, 2014 16:32
lubs, inference, and access
object Test {
trait T
private trait U
object O extends U
object P extends U
val x = {
// you want to infer List[T] here so we don't later infer a leaky private type for `x`?
val y = List(O, P)
y
}
@retronym
retronym / stack.txt
Created February 10, 2014 10:15
stack
at scala.reflect.internal.Symbols$Symbol.info(Symbols.scala:1229)
at scala.reflect.internal.Symbols$Symbol.initialize(Symbols.scala:1365)
at scala.tools.eclipse.javaelements.ScalaJavaMapper$$anonfun$initializeRequiredSymbols$1.apply(ScalaJavaMapper.scala:29)
at scala.tools.eclipse.javaelements.ScalaJavaMapper$$anonfun$initializeRequiredSymbols$1.apply(ScalaJavaMapper.scala:29)
at scala.collection.immutable.HashSet$HashSet1.foreach(HashSet.scala:153)
at scala.collection.immutable.HashSet$HashTrieSet.foreach(HashSet.scala:306)
at scala.tools.eclipse.javaelements.ScalaJavaMapper$class.initializeRequiredSymbols(ScalaJavaMapper.scala:29)
at scala.tools.eclipse.ScalaPresentationCompiler.initializeRequiredSymbols(ScalaPresentationCompiler.scala:36)
at scala.tools.eclipse.ScalaProject$$anon$1$$anonfun$create$1.apply$mcV$sp(ScalaProject.scala:104)
at scala.tools.eclipse.ScalaProject$$anon$1$$anonfun$create$1.apply(ScalaProject.scala:104)
@retronym
retronym / 8290.diff
Created February 15, 2014 19:37
SI-8290 investigation
--- target/good.log 2014-02-15 20:32:59.000000000 +0100
+++ target/bad.log 2014-02-15 20:32:47.000000000 +0100
@@ -1,3 +1,27 @@
+/Users/jason/code/scalaz/example/src/main/scala/scalaz/example/WordCount.scala:34: error: no type parameters for method @>>>: (g: scalaz.typelevel.Func[G,scalaz.Applicative,Int,C])scalaz.typelevel.Func[[?]scalaz.IndexedStateT[[+X]X,Boolean,Boolean,G[?]],scalaz.Applicative,Char,C] exist so that it can be applied to arguments (scalaz.typelevel.Func[[X]Int,scalaz.Applicative,Int,Int])
+ --- because ---
+argument expression's type is not compatible with formal parameter type;
+ found : scalaz.typelevel.Func[[X]Int,scalaz.Applicative,Int,Int]
+ required: scalaz.typelevel.Func[?G,scalaz.Applicative,Int,?C]
+
+ } @>>> AppFuncU { (x: Int) => x }
@retronym
retronym / log.txt
Created February 20, 2014 20:22
continuations build failure then success
[success] Total time: 74 s, completed Feb 20, 2014 9:10:53 PM
> test
[info] Packaging /Users/jason/code/scala-continuations/plugin/target/scala-2.11.0-09fe97a-SNAPSHOT/scala-continuations-plugin_2.11.0-09fe97a-SNAPSHOT-1.0.0-SNAPSHOT.jar ...
[info] Passed: Total 0, Failed 0, Errors 0, Passed 0
[info] Passed: Total 0, Failed 0, Errors 0, Passed 0
[info] No tests to run for root/test:test
[info] No tests to run for plugin/test:test
[info] Done packaging.
[info] Compiling 2 Scala sources to /Users/jason/code/scala-continuations/library/target/scala-2.11.0-09fe97a-SNAPSHOT/classes...
[info] Compiling 3 Scala sources to /Users/jason/code/scala-continuations/library/target/scala-2.11.0-09fe97a-SNAPSHOT/test-classes...
scala-bisector v2.11.0-M1~500 v2.11.0-M1 sandbox/test.scala
start: v2.10.0-M2-637-g686adb1 (Mon Apr 16 04:28:17 2012 +0100)
end: v2.11.0-M1-0-ga03e77b (Sun Jan 6 20:17:49 2013 -0800)
command: scala /code/scala/sandbox/test.scala
packs: /Users/jason/usr
repo: /code/scala
logs: /var/folders/s2/g6fgtpk52hl8njjvx8vyzr9r0000gn/T/scala-bisect.PE32aIQx
Bisecting: 1441 revisions left to test after this (roughly 11 steps)
[0afe071afc8f6743cf1a392666492f7a726b7070] Replaced isTrivial lazy vals by custom scheme to save space.
@retronym
retronym / gist:9789711
Created March 26, 2014 18:14
shapeless 1.2.4 on 2.11.0-RC3
(remotes/origin/shapeless-1.2.4-scala-2.11.x) ~/code/shapeless sbt
[info] Loading global plugins from /Users/jason/.sbt/plugins
[info] Loading project definition from /Users/jason/code/shapeless/project
[info] Updating {file:/Users/jason/code/shapeless/project/}default-8eeb53...
[info] Resolving org.scala-sbt#precompiled-2_10_1;0.12.4 ...
[info] Done updating.
[info] Compiling 3 Scala sources to /Users/jason/code/shapeless/project/target/scala-2.9.2/sbt-0.12/classes...
[info] Set current project to shapeless (in build file:/Users/jason/code/shapeless/)
> test
Getting Scala 2.11.0-RC3 ...
object Test {
trait Container[+A]
class ContainerImpl[A](value: A) extends Container[A]
Mover.moveTree {
val buf: Seq[_] = null
val c = new ContainerImpl(buf(0))
}
}
scala> def id[A <: AnyRef](a: A): a.type = a
id: [A <: AnyRef](a: A)a.type
scala> val c = ""; id(c): c.type
c: String = ""
res0: c.type = ""
scala> val c = ""; { val temp = c; id(temp)} : c.type
<console>:11: error: type mismatch;
found : temp.type (with underlying type String)
@retronym
retronym / test.java
Last active August 29, 2015 14:00
JVM value classes, interfaces, and defaults
// http://cr.openjdk.java.net/~jrose/values/values-0.html
//
// Can a value class implement interfaces? Yes. Boxing may occur when we treat a value as an interface instance.
//
// ...
//
// Since values do not have identity, there are certain operations that are
// identity-specific and either need to be disallowed on values or assigned a
// new meaning for use in the context of values.
//