Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@adriaanm
adriaanm / nightly.sbt
Created December 11, 2016 19:13
How to use the latest Scala nightly build from your sbt build by @SethTisue
// originally by @SethTisue, see http://stackoverflow.com/questions/40622878/how-do-i-tell-sbt-to-use-a-nightly-build-of-scala-2-11-or-2-12/40622879#40622879
resolvers += "nightlies" at "https://scala-ci.typesafe.com/artifactory/scala-release-temp/"
scalaVersion := {
val propsUrl = new URL("https://scala-ci.typesafe.com/job/scala-2.12.x-integrate-bootstrap/lastSuccessfulBuild/artifact/jenkins.properties/*view*/")
val props = new java.util.Properties
props.load(propsUrl.openStream)
props.getProperty("version")
}
scalaBinaryVersion := "2.12"
rm -rf classes
starr=4d67c39
locker=8b79ea9
g co $starr
sbt publishLocal
g co $locker
sbt -Dstarr.version=2.12.0-local-$starr clean publishLocal
package scala.runtime
/* Classes used as holders for local lazy vals */
class LazyRef[T] {
@volatile private[this] var _initialized: Boolean = _
def initialized = _initialized
private[this] var _value: T = _
def value: T = value
/*
* Decompiled with CFR 0_102.
*
* Could not load the following classes:
* scala.reflect.ScalaSignature
* scala.runtime.BoxedUnit
* scala.runtime.LazyRef
*/
import scala.reflect.ScalaSignature;
import scala.runtime.BoxedUnit;
@adriaanm
adriaanm / constants.md
Last active August 10, 2016 18:02
bytecode diff summary for #5141

constants as default methods in traits

-  private final I ADD
-  private final I AND
-  private final I APPLY
-  private final I AS
-  private final I ASR
-  private final I B2B
-  private final I B2C
-  private final I B2D
@adriaanm
adriaanm / fields.diff
Last active August 10, 2016 06:59
full bytecode diff with bootstrapped #5141 (see comment for instructions to repro)
diff --git i/compiler/scala/tools/nsc/CompileClient.class.asm w/compiler/scala/tools/nsc/CompileClient.class.asm
index b1bf79eb6b..ab3884db4a 100644
--- i/compiler/scala/tools/nsc/CompileClient.class.asm
+++ w/compiler/scala/tools/nsc/CompileClient.class.asm
@@ -87,15 +87,6 @@ public final class scala/tools/nsc/CompileClient {
MAXSTACK = 2
MAXLOCALS = 1
- // access flags 0x9
- public static scala$tools$nsc$HasCompileSocket$_setter_$errorMarkers_$eq(Lscala/collection/immutable/Set;)V
@adriaanm
adriaanm / bytecode.diff
Last active July 18, 2016 06:03
bytecode diff for /Users/adriaan/git/scala/test/files/jvm/innerClassAttribute/Classes_1.scala in #5141
diff --git i/ImplClassesAreTopLevel$$anon$14.class w/ImplClassesAreTopLevel$$anon$14.class
index 33b5d7867b..a93228e379 100644
--- i/ImplClassesAreTopLevel$$anon$14.class
+++ w/ImplClassesAreTopLevel$$anon$14.class
@@ -1,12 +1,12 @@
// class version 52.0 (52)
// access flags 0x31
-public final class ImplClassesAreTopLevel$$anon$14 implements ImplClassesAreTopLevel$B3$1 {
+public final class ImplClassesAreTopLevel$$anon$14 implements ImplClassesAreTopLevel$B2$1 {
@adriaanm
adriaanm / 3405aa3-boostrap.diff
Created June 4, 2016 22:07
bytecode diff for 3405aa3 of #5141
diff --git i/compiler/compiler.properties w/compiler/compiler.properties
index 6c7b626080..bde086665e 100644
--- i/compiler/compiler.properties
+++ w/compiler/compiler.properties
@@ -1,4 +1,4 @@
-#Sat, 04 Jun 2016 14:46:21 -0700
+#Sat, 04 Jun 2016 14:52:46 -0700
version.number=2.12.0-20160603-191313-3405aa37ab
maven.version.number=2.12.0-SNAPSHOT
@adriaanm
adriaanm / boostrap.diff
Created June 2, 2016 20:36
#5206 bootstrap diff using #5141 locker
diff --git i/compiler/compiler.properties w/compiler/compiler.properties
index e365f23826..e58c4fffde 100644
--- i/compiler/compiler.properties
+++ w/compiler/compiler.properties
@@ -1,4 +1,4 @@
-#Thu, 02 Jun 2016 12:59:56 -0700
+#Thu, 02 Jun 2016 13:04:37 -0700
version.number=2.12.0-20160602-100833-8775ec53d8
maven.version.number=2.12.0-SNAPSHOT
@adriaanm
adriaanm / fields.md
Last active May 28, 2016 18:39
Bytecode diff between bootstrapping with https://github.com/scala/scala/pull/5141 and 2.12.x

To reproduce

  • Check out scala/scala#5141 as branch fields
  • Check out 2.12.x from scala/scala
  • ant locker.done ; git checkout fields ; ant strap.done ; diffstrap

diffstrap:

#!/bin/bash

mkdir -p classes-repo && git init classes-repo