Skip to content

Commit 738613a

Browse files
authored
Merge pull request #7616 from dotty-staging/independent-tasty-lib
Independent tasty-core library
2 parents 65a404f + 14e3150 commit 738613a

40 files changed

+148
-76
lines changed

build.sbt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ val `dotty-staging` = Build.`dotty-staging`
1414
val `dotty-language-server` = Build.`dotty-language-server`
1515
val `dotty-bench` = Build.`dotty-bench`
1616
val `dotty-bench-bootstrapped` = Build.`dotty-bench-bootstrapped`
17+
val `tasty-core` = Build.`tasty-core`
18+
val `tasty-core-bootstrapped` = Build.`tasty-core-bootstrapped`
19+
val `tasty-core-scala2` = Build.`tasty-core-scala2`
1720
val `scala-library` = Build.`scala-library`
1821
val `scala-compiler` = Build.`scala-compiler`
1922
val `scala-reflect` = Build.`scala-reflect`

compiler/src/dotty/tools/backend/jvm/GenBCode.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,13 @@ import Decorators._
2020

2121
import java.io.DataOutputStream
2222

23+
import dotty.tools.tasty.{ TastyBuffer, TastyHeaderUnpickler }
2324

2425
import scala.tools.asm
2526
import scala.tools.asm.Handle
2627
import scala.tools.asm.tree._
2728
import tpd._
2829
import StdNames._
29-
import dotty.tools.dotc.core.tasty.{TastyBuffer, TastyHeaderUnpickler}
3030
import dotty.tools.io._
3131

3232
class GenBCode extends Phase {

compiler/src/dotty/tools/dotc/core/NameTags.scala

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
package dotty.tools
2-
package dotc
3-
package core
1+
package dotty.tools.dotc.core
42

5-
import tasty.TastyFormat
3+
import dotty.tools.tasty.TastyFormat
64

75
/** The possible tags of a NameKind */
86
object NameTags extends TastyFormat.NameTags {

compiler/src/dotty/tools/dotc/core/classfile/ClassfileParser.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,11 @@ package dotc
33
package core
44
package classfile
55

6+
import dotty.tools.tasty.{ TastyReader, TastyHeaderUnpickler }
7+
68
import Contexts._, Symbols._, Types._, Names._, StdNames._, NameOps._, Scopes._, Decorators._
79
import SymDenotations._, unpickleScala2.Scala2Unpickler._, Constants._, Annotations._, util.Spans._
810
import NameKinds.DefaultGetterName
9-
import dotty.tools.dotc.core.tasty.{TastyHeaderUnpickler, TastyReader}
1011
import ast.tpd._
1112
import java.io.{ ByteArrayInputStream, ByteArrayOutputStream, DataInputStream, IOException }
1213

@@ -1183,4 +1184,3 @@ class ClassfileParser(
11831184
throw new RuntimeException("bad constant pool tag " + in.buf(start) + " at byte " + start)
11841185
}
11851186
}
1186-

compiler/src/dotty/tools/dotc/core/quoted/PickledQuotes.scala

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,13 @@ import dotty.tools.dotc.core.Mode
1212
import dotty.tools.dotc.core.Symbols._
1313
import dotty.tools.dotc.core.Types._
1414
import dotty.tools.dotc.core.tasty.TreePickler.Hole
15-
import dotty.tools.dotc.core.tasty.{PositionPickler, TastyPickler, TastyPrinter, TastyString}
15+
import dotty.tools.dotc.core.tasty.{ PositionPickler, TastyPickler, TastyPrinter }
1616
import dotty.tools.dotc.core.tasty.TreeUnpickler.UnpickleMode
1717
import dotty.tools.dotc.quoted.QuoteContext
1818
import dotty.tools.dotc.tastyreflect.ReflectionImpl
1919

20+
import dotty.tools.tasty.TastyString
21+
2022
import scala.internal.quoted._
2123
import scala.reflect.ClassTag
2224

compiler/src/dotty/tools/dotc/core/quoted/QuoteUnpickler.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import dotty.tools.dotc.core.tasty._
44
import dotty.tools.dotc.core.tasty.TastyUnpickler.NameTable
55
import dotty.tools.dotc.core.tasty.TreeUnpickler.UnpickleMode
66

7+
import dotty.tools.tasty.TastyReader
8+
79
object QuoteUnpickler {
810
class QuotedTreeSectionUnpickler(posUnpickler: Option[PositionUnpickler], splices: Seq[Any])
911
extends DottyUnpickler.TreeSectionUnpickler(posUnpickler, None) {

compiler/src/dotty/tools/dotc/core/tasty/CommentPickler.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ package dotty.tools.dotc.core.tasty
33
import dotty.tools.dotc.ast.tpd
44
import dotty.tools.dotc.core.Comments.{Comment, CommentsContext, ContextDocstrings}
55
import dotty.tools.dotc.core.Contexts.Context
6-
import dotty.tools.dotc.core.tasty.TastyBuffer.{Addr, NoAddr}
6+
7+
import dotty.tools.tasty.TastyBuffer
8+
import TastyBuffer.{Addr, NoAddr}
79

810
import java.nio.charset.Charset
911

@@ -40,4 +42,3 @@ class CommentPickler(pickler: TastyPickler, addrOfTree: tpd.Tree => Addr)(implic
4042
}
4143
}
4244
}
43-

compiler/src/dotty/tools/dotc/core/tasty/CommentUnpickler.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package dotty.tools.dotc.core.tasty
22

33
import dotty.tools.dotc.core.Comments.Comment
4-
import dotty.tools.dotc.core.tasty.TastyBuffer.Addr
54
import dotty.tools.dotc.util.Spans.Span
65

6+
import dotty.tools.tasty.{TastyReader, TastyBuffer}
7+
import TastyBuffer.Addr
8+
79
import scala.collection.mutable.HashMap
810

911
import java.nio.charset.Charset
@@ -29,4 +31,3 @@ class CommentUnpickler(reader: TastyReader) {
2931
def commentAt(addr: Addr): Option[Comment] =
3032
comments.get(addr)
3133
}
32-

compiler/src/dotty/tools/dotc/core/tasty/DottyUnpickler.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ import classfile.ClassfileParser
1010
import Names.SimpleName
1111
import TreeUnpickler.UnpickleMode
1212

13+
import dotty.tools.tasty.TastyReader
14+
1315
object DottyUnpickler {
1416

1517
/** Exception thrown if classfile is corrupted */

compiler/src/dotty/tools/dotc/core/tasty/NameBuffer.scala

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@ package dotc
33
package core
44
package tasty
55

6+
import dotty.tools.tasty.TastyBuffer
7+
import TastyBuffer._
8+
69
import collection.mutable
710
import Names.{Name, chrs, SimpleName, DerivedName, TypeName}
811
import NameKinds._
912
import Decorators._
10-
import TastyBuffer._
1113
import scala.io.Codec
1214

1315
class NameBuffer extends TastyBuffer(10000) {

compiler/src/dotty/tools/dotc/core/tasty/PositionPickler.scala

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,18 @@ package dotc
33
package core
44
package tasty
55

6+
import dotty.tools.tasty.TastyFormat.SOURCE
7+
import dotty.tools.tasty.TastyBuffer
8+
import TastyBuffer._
9+
610
import ast._
711
import ast.Trees._
812
import ast.Trees.WithLazyField
913
import util.{SourceFile, NoSource}
1014
import core._
1115
import Contexts._, Symbols._, Annotations._, Decorators._
1216
import collection.mutable
13-
import TastyBuffer._
1417
import util.Spans._
15-
import TastyFormat.SOURCE
1618

1719
class PositionPickler(pickler: TastyPickler, addrOfTree: untpd.Tree => Addr) {
1820
val buf: TastyBuffer = new TastyBuffer(5000)

compiler/src/dotty/tools/dotc/core/tasty/PositionUnpickler.scala

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@ package dotc
33
package core
44
package tasty
55

6+
import dotty.tools.tasty.{TastyFormat, TastyBuffer, TastyReader}
7+
import TastyFormat.SOURCE
8+
import TastyBuffer.{Addr, NameRef}
9+
610
import util.Spans._
711
import collection.{mutable, Map}
8-
import TastyBuffer.{Addr, NameRef}
9-
import TastyFormat.SOURCE
1012
import Names.TermName
1113

1214
/** Unpickler for tree positions */
@@ -61,4 +63,3 @@ class PositionUnpickler(reader: TastyReader, nameAtRef: NameRef => TermName) {
6163
def spanAt(addr: Addr): Span = spans.getOrElse(addr, NoSpan)
6264
def sourcePathAt(addr: Addr): String = sourcePaths.getOrElse(addr, "")
6365
}
64-

compiler/src/dotty/tools/dotc/core/tasty/TastyClassName.scala

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@ package dotty.tools.dotc
22
package core
33
package tasty
44

5+
import dotty.tools.tasty.{TastyBuffer, TastyReader}
6+
import TastyBuffer.NameRef
7+
58
import Contexts._, Decorators._
69
import Names.{Name, TermName}
710
import StdNames.nme
811
import TastyUnpickler._
9-
import TastyBuffer.NameRef
1012
import util.Spans.offsetToInt
1113
import printing.Highlighting._
1214

@@ -20,7 +22,7 @@ class TastyClassName(bytes: Array[Byte]) {
2022
def readName(): Option[(TermName, TermName)] = unpickle(new TreeSectionUnpickler)
2123

2224
class TreeSectionUnpickler extends SectionUnpickler[(TermName, TermName)](TreePickler.sectionName) {
23-
import TastyFormat._
25+
import dotty.tools.tasty.TastyFormat._
2426
def unpickle(reader: TastyReader, tastyName: NameTable): (TermName, TermName) = {
2527
import reader._
2628
def readName() = {

compiler/src/dotty/tools/dotc/core/tasty/TastyHTMLPrinter.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@ package dotty.tools.dotc
22
package core
33
package tasty
44

5+
import dotty.tools.tasty.TastyBuffer.NameRef
6+
57
import Contexts._, Decorators._
68
import Names.Name
79
import TastyUnpickler._
8-
import TastyBuffer.NameRef
910
import util.Spans.offsetToInt
1011
import printing.Highlighting._
1112

compiler/src/dotty/tools/dotc/core/tasty/TastyPickler.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@ package dotc
33
package core
44
package tasty
55

6+
import dotty.tools.tasty.{TastyBuffer, TastyFormat, TastyHash}
67
import TastyFormat._
7-
import collection.mutable
88
import TastyBuffer._
9+
10+
import collection.mutable
911
import core.Symbols.{Symbol, ClassSymbol}
1012
import ast.tpd
1113
import Decorators._
@@ -78,4 +80,3 @@ class TastyPickler(val rootCls: ClassSymbol) {
7880

7981
val treePkl: TreePickler = new TreePickler(this)
8082
}
81-

compiler/src/dotty/tools/dotc/core/tasty/TastyPrinter.scala

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@ package dotty.tools.dotc
22
package core
33
package tasty
44

5+
import dotty.tools.tasty.{TastyBuffer, TastyReader}
6+
import TastyBuffer.{Addr, NameRef}
7+
58
import Contexts._, Decorators._
69
import Names.Name
710
import TastyUnpickler._
8-
import TastyBuffer.{Addr, NameRef}
911
import util.Spans.offsetToInt
1012
import printing.Highlighting._
1113

@@ -49,7 +51,7 @@ class TastyPrinter(bytes: Array[Byte])(implicit ctx: Context) {
4951
}
5052

5153
class TreeSectionUnpickler extends SectionUnpickler[String](TreePickler.sectionName) {
52-
import TastyFormat._
54+
import dotty.tools.tasty.TastyFormat._
5355

5456
private val sb: StringBuilder = new StringBuilder
5557

compiler/src/dotty/tools/dotc/core/tasty/TastyString.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package dotty.tools.dotc.core.tasty
1+
package dotty.tools.tasty
22

33
import java.io._
44
import java.util.Base64
@@ -25,4 +25,3 @@ object TastyString {
2525
Base64.getDecoder().decode(string.result().getBytes(UTF_8))
2626
}
2727
}
28-

compiler/src/dotty/tools/dotc/core/tasty/TastyUnpickler.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@ package dotty.tools.dotc
22
package core
33
package tasty
44

5-
import scala.collection.mutable
5+
import dotty.tools.tasty.{TastyFormat, TastyBuffer, TastyReader, TastyHeaderUnpickler}
66
import TastyFormat.NameTags._
77
import TastyBuffer.NameRef
8+
9+
import scala.collection.mutable
810
import Names.{TermName, termName, EmptyTermName}
911
import NameKinds._
1012

1113
object TastyUnpickler {
12-
class UnpickleException(msg: String) extends RuntimeException(msg)
1314

1415
abstract class SectionUnpickler[R](val name: String) {
1516
def unpickle(reader: TastyReader, nameAtRef: NameTable): R

compiler/src/dotty/tools/dotc/core/tasty/TreeBuffer.scala

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,11 @@ package dotc
33
package core
44
package tasty
55

6-
import util.Util.{bestFit, dble}
6+
import dotty.tools.tasty.util.Util.dble
7+
import dotty.tools.tasty.TastyBuffer
78
import TastyBuffer.{Addr, NoAddr, AddrWidth}
9+
10+
import util.Util.bestFit
811
import config.Printers.pickling
912
import ast.untpd.Tree
1013

compiler/src/dotty/tools/dotc/core/tasty/TreePickler.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,15 @@ package dotc
33
package core
44
package tasty
55

6+
import dotty.tools.tasty.TastyFormat._
7+
import dotty.tools.tasty.TastyBuffer._
8+
69
import ast.Trees._
710
import ast.{untpd, tpd}
8-
import TastyFormat._
911
import Contexts._, Symbols._, Types._, Names._, Constants._, Decorators._, Annotations._, Flags._
1012
import typer.Inliner
1113
import NameKinds._
1214
import StdNames.nme
13-
import TastyBuffer._
1415
import transform.SymUtils._
1516
import printing.Printer
1617
import printing.Texts._

compiler/src/dotty/tools/dotc/core/tasty/TreeUnpickler.scala

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ import ast.{TreeTypeMap, Trees, tpd, untpd}
2424
import Trees._
2525
import Decorators._
2626
import transform.SymUtils._
27+
28+
import dotty.tools.tasty.{TastyBuffer, TastyReader}
2729
import TastyBuffer._
2830

2931
import scala.annotation.{switch, tailrec}
@@ -33,6 +35,8 @@ import config.Printers.pickling
3335
import core.quoted.PickledQuotes
3436
import dotty.tools.dotc.quoted.QuoteContext
3537

38+
import dotty.tools.tasty.TastyFormat._
39+
3640
import scala.quoted
3741
import scala.internal.quoted.{TastyTreeExpr, TreeType}
3842
import scala.annotation.constructorOnly
@@ -49,7 +53,6 @@ class TreeUnpickler(reader: TastyReader,
4953
posUnpicklerOpt: Option[PositionUnpickler],
5054
commentUnpicklerOpt: Option[CommentUnpickler],
5155
splices: Seq[Any]) {
52-
import TastyFormat._
5356
import TreeUnpickler._
5457
import tpd._
5558

@@ -1454,5 +1457,3 @@ object TreeUnpickler {
14541457

14551458
class TreeWithoutOwner extends Exception
14561459
}
1457-
1458-

compiler/src/dotty/tools/dotc/util/Util.scala

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
package dotty.tools.dotc.util
2-
import reflect.ClassTag
32

43
object Util {
54

@@ -23,10 +22,4 @@ object Util {
2322
else recur(0, length, initMid)
2423
}
2524

26-
/** An array twice the size of given array, with existing elements copied over */
27-
def dble[T: ClassTag](arr: Array[T]): Array[T] = {
28-
val arr1 = new Array[T](arr.length * 2)
29-
System.arraycopy(arr, 0, arr1, 0, arr.length)
30-
arr1
31-
}
3225
}

compiler/test/dotty/Properties.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,9 @@ object Properties {
5353
/** dotty-staging jar */
5454
def dottyStaging: String = sys.props("dotty.tests.classes.dottyStaging")
5555

56+
/** tasty-core jar */
57+
def tastyCore: String = sys.props("dotty.tests.classes.tastyCore")
58+
5659
/** compiler-interface jar */
5760
def compilerInterface: String = sys.props("dotty.tests.classes.compilerInterface")
5861

compiler/test/dotty/tools/dotc/BootstrappedOnlyCompilationTests.scala

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ class BootstrappedOnlyCompilationTests extends ParallelTesting {
5050
compileDir("compiler/src/dotty/tools/dotc/typer", withCompilerOptions),
5151
compileDir("compiler/src/dotty/tools/dotc/util", withCompilerOptions),
5252
compileDir("compiler/src/dotty/tools/io", withCompilerOptions),
53+
compileDir("tasty/src/dotty/tools/tasty", withCompilerOptions),
5354
compileList(
5455
"testIssue6460",
5556
List(
@@ -163,7 +164,8 @@ class BootstrappedOnlyCompilationTests extends ParallelTesting {
163164
compileFile("tests/pos/pickleinf.scala", picklingWithCompilerOptions),
164165
compileDir("compiler/src/dotty/tools/dotc/core/classfile", picklingWithCompilerOptions),
165166
compileDir("compiler/src/dotty/tools/dotc/core/tasty", picklingWithCompilerOptions),
166-
compileDir("compiler/src/dotty/tools/dotc/core/unpickleScala2", picklingWithCompilerOptions)
167+
compileDir("compiler/src/dotty/tools/dotc/core/unpickleScala2", picklingWithCompilerOptions),
168+
compileDir("tasty/src/dotty/tools/tasty", picklingWithCompilerOptions)
167169
).limitThreads(4).checkCompile()
168170
}
169171

0 commit comments

Comments
 (0)