Skip to content

Instantly share code, notes, and snippets.

import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;
public class Foo {
static int normalArray(java.lang.invoke.MethodHandle mh, Object[] args) throws Throwable {
return (int)mh.invokeWithArguments(args);
}
static int polyArray(java.lang.invoke.MethodHandle mh, Object[] args) throws Throwable {
return (int)mh.invoke(args);
}
$ ~/scala/scala-2.13.10/bin/scala -opt:local
Welcome to Scala 2.13.10 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_131).
Type in expressions for evaluation. Or try :help.
scala> case class Box[A](value: A) extends AnyVal
class Box
scala> class C { def foo = Box(42).value }
class C
import scala.quoted._
class Tag
class TableQuery[E](f: Tag => E) {
override def toString: String =
s"TableQuery(${f(new Tag)})"
}
object TableQuery {
import os._
import $ivy.`com.nrinaudo::kantan.csv:0.6.1`
import kantan.csv._
import kantan.csv.ops._
@main
def main(in: Path, out: Path): Unit = {
val all = in.toIO.asCsvReader[Vector[String]](rfc).map(_.right.get).toList
val h = all.head
val data = all.tail.filter(_.length > 1)
2.13.x:
[info] # Run complete. Total time: 01:13:15
[info] Benchmark (size) Mode Cnt Score Error Units
[info] RedBlackTreeBenchmark.build 0 avgt 20 35.646 ± 0.085 ns/op
[info] RedBlackTreeBenchmark.build 1 avgt 20 39.879 ± 0.241 ns/op
[info] RedBlackTreeBenchmark.build 10 avgt 20 94.917 ± 0.491 ns/op
[info] RedBlackTreeBenchmark.build 100 avgt 20 733.611 ± 1.149 ns/op
[info] RedBlackTreeBenchmark.build 1000 avgt 20 7055.168 ± 20.276 ns/op
[info] RedBlackTreeBenchmark.build 10000 avgt 20 77720.154 ± 236.241 ns/op
setupPublishCore
bench/jmh:run -rff vector-bench_graalce_nvApply.csv -jvmArgs "-Xms256M -Xmx2g" scala.collection.immutable.VectorBenchmark2.nvApply -wm BULK
bench/jmh:run -rff vector-bench_graalce_vApply.csv -jvmArgs "-Xms256M -Xmx2g" scala.collection.immutable.VectorBenchmark2.vApply -wm BULK
bench/jmh:run -rff vector-bench_graalce_nvAppend.csv -jvmArgs "-Xms256M -Xmx2g" scala.collection.immutable.VectorBenchmark2.nvAppend -wm BULK
bench/jmh:run -rff vector-bench_graalce_nvApprepend.csv -jvmArgs "-Xms256M -Xmx2g" scala.collection.immutable.VectorBenchmark2.nvApprepend -wm BULK
bench/jmh:run -rff vector-bench_graalce_nvPrepend.csv -jvmArgs "-Xms256M -Xmx2g" scala.collection.immutable.VectorBenchmark2.nvPrepend -wm BULK
bench/jmh:run -rff vector-bench_graalce_nvBuild.csv -jvmArgs "-Xms256M -Xmx2g" scala.collection.immutable.VectorBenchmark2.nvBuild -wm BULK
bench/jmh:run -rff vector-bench_graalce_nvUpdate.csv -jvmArgs "-Xms256M -Xmx2g" scala.collection.immutable.VectorBenchmark2.nvUpdate -wm BULK
bench/jmh:run
@szeiger
szeiger / release-notes.md
Last active September 13, 2019 18:52
Scala 2.13.1 release notes draft

Scala 2.13.1 is primarily a bug fix release that fixes several regressions in 2.13.0.

Collection-related regressions

  • Revert Stream.Cons to the 2.12 encoding (#8354)
  • Don't rebuild scala.Seq to drop elems in unapplySeq (#8340)
  • Blacken subtrees where necessary in RedBlackTree.take (#8287)
  • Iterator#flatMap#hasNext calls outer#hasNext 1 time, not 2-3 times (#8220)
  • s.c.Map#values returns a strict Iterable rather than a View (#8195)
  • Vector.from(ArraySeq) copies elems rather than reusing unsafeArray (#8194)
@szeiger
szeiger / getscala
Created November 7, 2018 14:48
Quick & dirty hack to download Scala binaries
#!/bin/bash
ver=$1
file=scala-$ver.tgz
dir=~/scala/scala-$ver
url=https://scala-lang.org/files/archive/$file
if [ -d $dir ]; then
echo "$dir already exists"
else
#!/bin/bash
function isIdeaProject() {
dirn=`dirname "$1"`
if [ "$dirn" = "/" ]; then
false
elif [ -d "$dirn/.idea" ]; then
true
else
isIdeaProject "$dirn"
$ sbt
[info] Loading settings for project dotty-build-build from build.sbt ...
[info] Loading project definition from /Users/szeiger/code/dotty/project/project
[info] Loading settings for project dotty-build from plugins.sbt,build.sbt ...
[info] Loading project definition from /Users/szeiger/code/dotty/project
[info] Loading settings for project dotty from build.sbt ...
[info] Resolving key references (13285 settings) ...
[info] Set current project to dotty (in build file:/Users/szeiger/code/dotty/)
[info] sbt server started at local:///Users/szeiger/.sbt/1.0/server/91ce923d701341216ffa/sock
sbt:dotty> repl