Skip to content

Instantly share code, notes, and snippets.

@dragos
dragos / gist:3655814
Created September 6, 2012 12:38
Scala IDE repository build
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.scala-ide</groupId>
<artifactId>org.scala-ide.sdt.build</artifactId>
<version>2.1.0-SNAPSHOT</version>
<relativePath>../org.scala-ide.sdt.build/pom.xml</relativePath>
</parent>
@dragos
dragos / overloadingmap.scala
Created November 16, 2015 11:14
Overloading Dataset.map
trait Encoder[T]
trait JFunction[T, U]
trait Dataset[T] {
def map[U](f: T => U)(implicit encoder: Encoder[U])
def map[U](f: JFunction[T, U], encoder: Encoder[U])
}
trait Testing {
implicit val e: Encoder[Int] = ???
@dragos
dragos / reflect.scala
Created November 16, 2015 15:56
Reflect on singleton types
package test
// prints:
//
// test.Main.C prefix value: test.Main$@54a097cc
// test.Main.o.D prefix value: Outer(o)
object Main {
val universe = scala.reflect.runtime.universe
val mirror = universe.runtimeMirror(getClass.getClassLoader)
import universe._
// fails with:
// $ /opt/scala-2.10.4/bin/scalac -d /tmp src/main/scala/infer.scala -cp ../spark/assembly/target/scala-2.10/spark-assembly-1.6.0-SNAPSHOT-hadoop2.2.0.jar
// src/main/scala/infer.scala:27: error: missing parameter type for expanded function ((x$2) => x$2._2)
// ds.groupBy(_._1).agg(sum(_._2), sum(_._3)).collect()
// ^
// one error found
//
import org.apache.spark.sql.functions._
@dragos
dragos / gist:4546321
Last active December 11, 2015 04:38
Log from Sbt spurious recompilation after whitespace change (see [ticket ](https://github.com/sbt/sbt/issues/642))
This file has been truncated, but you can view the full file.
2013-01-16 11:24:54,810 DEBUG [Worker-748] - Utils$ - Time elapsed for "updateOccurrences" in source DeclarationHyperlinkDetector.scala: 0 ms
2013-01-16 11:24:55,747 INFO [Worker-752] - ScalaBuilder - Building project org.scala-ide.sdt.core
2013-01-16 11:24:55,747 INFO [Worker-752] - EclipseSbtBuildManager - update files: Set(/Volumes/Thunderbolt_SSD/dragos/workspace/plugin/dragos-scala-ide/org.scala-ide.sdt.core/src/scala/tools/eclipse/hyperlink/text/detector/DeclarationHyperlinkDetector.scala)
2013-01-16 11:24:55,752 DEBUG [Worker-752] - ScalaProject - [org.scala-ide.sdt.core] initializing -deprecation to false
2013-01-16 11:24:55,752 DEBUG [Worker-752] - ScalaProject - [org.scala-ide.sdt.core] initializing -g to vars
2013-01-16 11:24:55,752 DEBUG [Worker-752] - ScalaProject - [org.scala-ide.sdt.core] initializing -optimise to false
2013-01-16 11:24:55,753 DEBUG [Worker-752] - ScalaProject - [org.scala-ide.sdt.core] initializing -target to jvm-1.5
2013-01-16 11:24:55,753 DEBUG [Worker-752] - ScalaProj
@dragos
dragos / gist:4593263
Created January 22, 2013 09:16
Whitespace change triggers recompilation with mysterious change in public API.
[org.scala-ide.sdt.core] some work at node 1981 current = 1981
[org.scala-ide.sdt.core] ask started, delay = 2785ms
[org.scala-ide.sdt.core] ask finished, delay = 0ms
2013-01-22 10:15:43,894 DEBUG [Worker-41] - Utils$ - Time elapsed for "updateOccurrences" in source BaseHyperlinkDetector.scala: 1 ms
2013-01-22 10:15:44,765 INFO [Worker-36] - ScalaBuilder - Building project org.scala-ide.sdt.core
2013-01-22 10:15:44,766 INFO [Worker-36] - EclipseSbtBuildManager - update files: Set(/Users/dragos/Documents/runtime-New_configuration/org.scala-ide.sdt.core/src/scala/tools/eclipse/hyperlink/text/detector/BaseHyperlinkDetector.scala)
2013-01-22 10:15:44,771 DEBUG [Worker-36] - ScalaProject - [org.scala-ide.sdt.core] initializing -deprecation to false
2013-01-22 10:15:44,771 DEBUG [Worker-36] - ScalaProject - [org.scala-ide.sdt.core] initializing -g to vars
2013-01-22 10:15:44,771 DEBUG [Worker-36] - ScalaProject - [org.scala-ide.sdt.core] initializing -optimise to false
2013-01-22 10:15:44,771 DEBUG [Worker-3
@dragos
dragos / Defaults.scala
Last active December 11, 2015 15:39
AttachmentsLeakTest
/**
* Test that default arguments don't leak
*/
class Foo(
x: Int = 100,
y: Int = 101,
z: Int = 102
str1: String = "str1",
str2: String = "str1",
str3: String = "str1",
@dragos
dragos / gist:5031512
Created February 25, 2013 17:27
changelog script output.
bash GenChangeLog.bash release/scala-ide-2.1.0-m2-2.10 master:
Mon, 25 Feb 2013 02:00:41 -0800 - Iulian Dragos
* Use Scala specific task markers.
Sat, 23 Feb 2013 09:34:01 +0100 - Luc Bourlier
*
val tpe = typeOf[test.GenericFoo[Int]] //> tpe : reflect.runtime.universe.Type = test.GenericFoo[Int]
tpe.getClass //> res0: Class[?0] = class scala.reflect.internal.Types$TypeRef$$anon$5
tpe.takesTypeArgs //> res1: Boolean = false
val tpe1 = typeOf[test.GenericFoo[_]].typeSymbol.typeSignature
//> tpe1 : reflect.runtime.universe.Type = [T]AnyRef{def <init>(): test.Generic
//| Foo[T]}

Keybase proof

I hereby claim:

  • I am dragos on github.
  • I am dragos (https://keybase.io/dragos) on keybase.
  • I have a public key whose fingerprint is 98FA BD33 37FB 1EA8 A8CD F67D DC08 1D4C 730E C746

To claim this, I am signing this object: