Accepting request 1117174 from Java:packages:test

upgrade

OBS-URL: https://build.opensuse.org/request/show/1117174
OBS-URL: https://build.opensuse.org/package/show/Java:packages/scala?expand=0&rev=65
This commit is contained in:
Fridrich Strba 2023-10-12 10:40:34 +00:00 committed by Git OBS Bridge
parent 0903b2ffbd
commit beb4487a2a
41 changed files with 666 additions and 1776 deletions

3
.gitattributes vendored
View File

@ -21,3 +21,6 @@
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text
## Specific LFS patterns
jquery-3.7.0.min.js filter=lfs diff=lfs merge=lfs -text
jquery-3.7.0.slim.min.js filter=lfs diff=lfs merge=lfs -text

View File

@ -1,19 +0,0 @@
<services>
<service name="tar_scm" mode="disabled">
<param name="scm">git</param>
<param name="url">git://github.com/scala/scala.git</param>
<param name="revision">v2.10.7</param>
<param name="versionformat">2.10.7</param>
<param name="filename">scala</param>
<param name="exclude">lib/*.jar</param>
<param name="exclude">lib/ant/*.jar</param>
<param name="exclude">test</param>
<param name="exclude">tools/*jar</param>
<param name="exclude">src/compiler/scala/tools/nsc/doc/html/resource/lib</param>
</service>
<service name="recompress" mode="disabled">
<param name="file">*.tar</param>
<param name="compression">xz</param>
</service>
<service name="set_version" mode="disabled"/>
</services>

4
asm.properties Normal file
View File

@ -0,0 +1,4 @@
#@@DATE@@
scala.version.number=@@VER@@
scala.binary.version.number=@@MAJVER@@
version.number=@@ASMVER@@-scala-@@ASMREL@@

10
buildcharacter.properties Normal file
View File

@ -0,0 +1,10 @@
#@@DATE@@
maven.version.number=@@VER@@
maven.version.base=@@VER@@
jline.version=@@JLINEVER@@
version.number=@@VER@@
scala-asm.version=@@ASMVER@@-scala-@@ASMREL@@
maven.version.suffix=
starr.version=@@VER@@
jna.version=@@JNAVER@@
osgi.version.number=@@OSGI@@

6
compiler.properties Normal file
View File

@ -0,0 +1,6 @@
#@@DATE@@
shell.banner=%n ________ ___ / / ___%n / __/ __// _ | / / / _ |%n __\\ \\/ /__/ __ |/ /__/ __ |%n /____/\\___/_/ |_/____/_/ | |%n |/ %s
copyright.string=Copyright 2002-2023, LAMP/EPFL and Lightbend, Inc.
version.number=@@VER@@
osgi.version.number=@@OSGI@@
maven.version.number=@@VER@@

3
jquery-3.7.0.min.js vendored Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d8f9afbf492e4c139e9d2bcb9ba6ef7c14921eb509fb703bc7a3f911b774eff8
size 87462

3
jquery-3.7.0.slim.min.js vendored Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b46e6671952d26c66fc8a03160b557ae68ca0552dde95a5571cab3febe32a451
size 70193

View File

@ -1,99 +0,0 @@
--- scala-2.10.7/src/compiler/scala/tools/nsc/interpreter/JLineReader.scala 2019-11-27 16:04:03.141644641 +0100
+++ scala-2.10.7/src/compiler/scala/tools/nsc/interpreter/JLineReader.scala 2019-11-27 16:04:24.461764259 +0100
@@ -45,7 +45,7 @@
def readOneKey(prompt: String) = {
this.print(prompt)
this.flush()
- this.readVirtualKey()
+ this.readCharacter()
}
def eraseLine() = consoleReader.resetPromptLine("", "", 0)
def redrawLineAndFlush(): Unit = { flush() ; drawLine() ; flush() }
--- scala-2.10.7/src/compiler/scala/tools/nsc/interpreter/session/FileBackedHistory.scala 2019-11-27 16:04:03.141644641 +0100
+++ scala-2.10.7/src/compiler/scala/tools/nsc/interpreter/session/FileBackedHistory.scala 2019-11-27 16:05:14.034042924 +0100
@@ -15,7 +15,7 @@
/** TODO: file locking.
*/
trait FileBackedHistory extends JLineHistory with JPersistentHistory {
- def maxSize: Int
+ def maxSize: Int = 2500
// For a history file in the standard location, always try to restrict permission,
// creating an empty file if none exists.
--- scala-2.10.7/src/compiler/scala/tools/nsc/interpreter/session/JLineHistory.scala 2019-11-27 16:04:03.141644641 +0100
+++ scala-2.10.7/src/compiler/scala/tools/nsc/interpreter/session/JLineHistory.scala 2019-11-27 16:04:24.461764259 +0100
@@ -13,7 +13,6 @@
trait JLineHistory extends JHistory with History {
def size: Int
def isEmpty: Boolean
- def index: Int
def clear(): Unit
def get(index: Int): CharSequence
def add(line: CharSequence): Unit
@@ -42,7 +41,8 @@
addLineToFile(item)
}
}
- override def toString = "History(size = " + size + ", index = " + index + ")"
+ override def toString = "History(size = " + size + ", _index = " + index + ")"
+ override def maxSize: Int = 2500
}
def apply(): JLineHistory = try new JLineFileHistory catch { case x: Exception => new SimpleHistory() }
--- scala-2.10.7/src/compiler/scala/tools/nsc/interpreter/session/SimpleHistory.scala 2019-11-27 16:04:03.141644641 +0100
+++ scala-2.10.7/src/compiler/scala/tools/nsc/interpreter/session/SimpleHistory.scala 2019-11-27 16:04:24.461764259 +0100
@@ -10,7 +10,7 @@
import scala.collection.mutable.{ Buffer, ListBuffer }
import scala.collection.JavaConverters._
-class SimpleHistory extends JLineHistory {
+class SimpleHistory extends JMemoryHistory with JLineHistory {
private var _index: Int = 0
private val buf: Buffer[String] = new ListBuffer[String]
private def toEntries(): Seq[JEntry] = buf.zipWithIndex map { case (x, i) => Entry(i, x) }
@@ -32,27 +32,27 @@
def maxSize: Int = 2500
def last = if (isEmpty) fail("last") else buf.last
- def size = buf.size
- def index = _index
- def isEmpty = buf.isEmpty
- def clear() = buf.clear()
- def get(idx: Int): CharSequence = buf(idx)
- def add(item: CharSequence): Unit = buf += item
- def replace(item: CharSequence): Unit = {
+ override def size = buf.size
+ override def index = _index
+ override def isEmpty = buf.isEmpty
+ override def clear() = buf.clear()
+ override def get(idx: Int): CharSequence = buf(idx)
+ override def add(item: CharSequence): Unit = buf += item
+ override def replace(item: CharSequence): Unit = {
buf trimEnd 1
add(item)
}
- def entries(idx: Int): JListIterator[JEntry] = toEntries().asJava.listIterator(idx)
- def entries(): JListIterator[JEntry] = toEntries().asJava.listIterator()
- def iterator: JIterator[JEntry] = toEntries().iterator.asJava
-
- def current() = if (index >= 0 && index < buf.size) buf(index) else fail("current()")
- def previous() = (index > 0) && minusOne
- def next() = (index <= lastIndex) && plusOne
- def moveToFirst() = (size > 0) && (index != 0) && setTo(0)
- def moveToLast() = (size > 0) && (index < lastIndex) && setTo(lastIndex)
- def moveTo(idx: Int) = (idx > 0) && (idx <= lastIndex) && setTo(idx)
- def moveToEnd(): Unit = setTo(size)
+ override def entries(idx: Int): JListIterator[JEntry] = toEntries().asJava.listIterator(idx)
+ override def entries(): JListIterator[JEntry] = toEntries().asJava.listIterator()
+ override def iterator: JIterator[JEntry] = toEntries().iterator.asJava
+
+ override def current() = if (index >= 0 && index < buf.size) buf(index) else fail("current()")
+ override def previous() = (index > 0) && minusOne
+ override def next() = (index <= lastIndex) && plusOne
+ override def moveToFirst() = (size > 0) && (index != 0) && setTo(0)
+ override def moveToLast() = (size > 0) && (index < lastIndex) && setTo(lastIndex)
+ override def moveTo(idx: Int) = (idx > 0) && (idx <= lastIndex) && setTo(idx)
+ override def moveToEnd(): Unit = setTo(size)
// scala legacy interface
def asList: List[JEntry] = toEntries().toList

View File

@ -1,21 +0,0 @@
diff -up scala-2.10.0-RC3/src/compiler/scala/tools/ant/templates/tool-unix.tmpl.tool scala-2.10.0-RC3/src/compiler/scala/tools/ant/templates/tool-unix.tmpl
--- scala-2.10.0-RC3/src/compiler/scala/tools/ant/templates/tool-unix.tmpl.tool 2012-11-21 17:01:54.000000000 +0100
+++ scala-2.10.0-RC3/src/compiler/scala/tools/ant/templates/tool-unix.tmpl 2012-11-25 14:55:22.583111734 +0100
@@ -68,7 +68,16 @@ if uname | grep -q ^MINGW; then
fi
# Finding the root folder for this Scala distribution
-SCALA_HOME="$(findScalaHome)"
+export JAVA_HOMe=/usr/share/jvm/java
+
+[ -r @@JAVADIR@@-utils/java-functions ] && . @@JAVADIR@@-utils/java-functions || exit 1
+
+set_javacmd || exit 3
+check_java_env || exit 4
+set_jvm_dirs || exit 5
+
+export SCALA_HOME=@@DATADIR@@/scala
+
SEP=":"
# Possible additional command line options

View File

@ -1,198 +0,0 @@
diff -up scala-2.10.0-RC3-sources/src/swing/scala/swing/ComboBox.scala.jdk7 scala-2.10.0-RC3-sources/src/swing/scala/swing/ComboBox.scala
--- scala-2.10.0-RC3-sources/src/swing/scala/swing/ComboBox.scala.jdk7 2012-11-05 02:49:19.000000000 +0100
+++ scala-2.10.0-RC3-sources/src/swing/scala/swing/ComboBox.scala 2012-12-07 23:29:32.821949227 +0100
@@ -9,7 +9,7 @@
package scala.swing
import event._
-import javax.swing.{JList, JComponent, JComboBox, JTextField, ComboBoxModel, AbstractListModel, ListCellRenderer}
+import javax.swing.{ JComponent, JComboBox, JTextField, ComboBoxModel, AbstractListModel, ListCellRenderer }
import java.awt.event.ActionListener
object ComboBox {
@@ -118,10 +118,10 @@ object ComboBox {
implicit def floatEditor(c: ComboBox[Float]): Editor[Float] = new BuiltInEditor(c)(s => s.toFloat, s => s.toString)
implicit def doubleEditor(c: ComboBox[Double]): Editor[Double] = new BuiltInEditor(c)(s => s.toDouble, s => s.toString)
- def newConstantModel[A](items: Seq[A]): ComboBoxModel = {
- new AbstractListModel with ComboBoxModel {
+ def newConstantModel[A](items: Seq[A]): ComboBoxModel[A] = {
+ new AbstractListModel[A] with ComboBoxModel[A] {
private var selected: A = if (items.isEmpty) null.asInstanceOf[A] else items(0)
- def getSelectedItem: AnyRef = selected.asInstanceOf[AnyRef]
+ def getSelectedItem = selected.asInstanceOf[AnyRef]
def setSelectedItem(a: Any) {
if ((selected != null && selected != a) ||
selected == null && a != null) {
@@ -129,7 +129,7 @@ object ComboBox {
fireContentsChanged(this, -1, -1)
}
}
- def getElementAt(n: Int) = items(n).asInstanceOf[AnyRef]
+ def getElementAt(n: Int) = items(n).asInstanceOf[A]
def getSize = items.size
}
}
@@ -157,7 +157,7 @@ object ComboBox {
* @see javax.swing.JComboBox
*/
class ComboBox[A](items: Seq[A]) extends Component with Publisher {
- override lazy val peer: JComboBox = new JComboBox(ComboBox.newConstantModel(items)) with SuperMixin
+ override lazy val peer: JComboBox[A] = new JComboBox(ComboBox.newConstantModel(items)) with SuperMixin
object selection extends Publisher {
def index: Int = peer.getSelectedIndex
@@ -182,7 +182,8 @@ class ComboBox[A](items: Seq[A]) extends
* of the component to its own defaults _after_ the renderer has been
* configured. That's Swing's principle of most suprise.
*/
- def renderer: ListView.Renderer[A] = ListView.Renderer.wrap(peer.getRenderer)
+ def renderer: ListView.Renderer[A] = ListView.Renderer.wrap[A](peer.getRenderer.asInstanceOf[ListCellRenderer[A]])
+ // def renderer: ListView.Renderer[A] = ListView.Renderer.wrap(peer.getRenderer)
def renderer_=(r: ListView.Renderer[A]) { peer.setRenderer(r.peer) }
/* XXX: currently not safe to expose:
@@ -201,8 +202,8 @@ class ComboBox[A](items: Seq[A]) extends
peer.setEditor(editor(this).comboBoxPeer)
}
- def prototypeDisplayValue: Option[A] = toOption[A](peer.getPrototypeDisplayValue)
+ def prototypeDisplayValue: Option[A] = Option(peer.getPrototypeDisplayValue)
def prototypeDisplayValue_=(v: Option[A]) {
- peer.setPrototypeDisplayValue((v map toAnyRef).orNull)
+ peer.setPrototypeDisplayValue((v map toAnyRef).orNull.asInstanceOf[A])
}
}
diff -up scala-2.10.0-RC3-sources/src/swing/scala/swing/ListView.scala.jdk7 scala-2.10.0-RC3-sources/src/swing/scala/swing/ListView.scala
--- scala-2.10.0-RC3-sources/src/swing/scala/swing/ListView.scala.jdk7 2012-11-05 02:49:19.000000000 +0100
+++ scala-2.10.0-RC3-sources/src/swing/scala/swing/ListView.scala 2012-12-07 22:58:13.267919851 +0100
@@ -24,21 +24,21 @@ object ListView {
val MultiInterval = Value(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION)
}
- def wrap[A](c: JList) = new ListView[A] {
+ def wrap[A](c: JList[A]) = new ListView[A] {
override lazy val peer = c
}
object Renderer {
- def wrap[A](r: ListCellRenderer): Renderer[A] = new Wrapped[A](r)
+ def wrap[A](r: ListCellRenderer[A]): Renderer[A] = new Wrapped[A](r)
/**
* Wrapper for <code>javax.swing.ListCellRenderer<code>s
*/
- class Wrapped[A](override val peer: ListCellRenderer) extends Renderer[A] {
- def componentFor(list: ListView[_], isSelected: Boolean, focused: Boolean, a: A, index: Int) = {
+ class Wrapped[A](override val peer: ListCellRenderer[A]) extends Renderer[A] {
+ def componentFor(list: ListView[_ <: A], isSelected: Boolean, focused: Boolean, a: A, index: Int) = {
Component.wrap(peer.getListCellRendererComponent(list.peer, a, index, isSelected, focused).asInstanceOf[JComponent])
+ }
}
- }
/**
* Returns a renderer for items of type <code>A</code>. The given function
@@ -55,8 +55,8 @@ object ListView {
* </code>
*/
def apply[A,B](f: A => B)(implicit renderer: Renderer[B]): Renderer[A] = new Renderer[A] {
- def componentFor(list: ListView[_], isSelected: Boolean, focused: Boolean, a: A, index: Int): Component =
- renderer.componentFor(list, isSelected, focused, f(a), index)
+ def componentFor(list: ListView[_ <: A], isSelected: Boolean, focused: Boolean, a: A, index: Int): Component =
+ renderer.componentFor(list.asInstanceOf[ListView[_ <: B]], isSelected, focused, f(a), index)
}
}
@@ -69,11 +69,11 @@ object ListView {
* @see javax.swing.ListCellRenderer
*/
abstract class Renderer[-A] {
- def peer: ListCellRenderer = new ListCellRenderer {
- def getListCellRendererComponent(list: JList, a: Any, index: Int, isSelected: Boolean, focused: Boolean) =
- componentFor(ListView.wrap[A](list), isSelected, focused, a.asInstanceOf[A], index).peer
+ def peer: ListCellRenderer[_ >: A] = new ListCellRenderer[A] {
+ def getListCellRendererComponent(list: JList[_ <: A], a: A, index: Int, isSelected: Boolean, focused: Boolean) =
+ componentFor(ListView.wrap[A](list.asInstanceOf[JList[A]]), isSelected, focused, a, index).peer
}
- def componentFor(list: ListView[_], isSelected: Boolean, focused: Boolean, a: A, index: Int): Component
+ def componentFor(list: ListView[_ <: A], isSelected: Boolean, focused: Boolean, a: A, index: Int): Component
}
/**
@@ -110,7 +110,7 @@ object ListView {
/**
* Configures the component before returning it.
*/
- def componentFor(list: ListView[_], isSelected: Boolean, focused: Boolean, a: A, index: Int): Component = {
+ def componentFor(list: ListView[_ <: A], isSelected: Boolean, focused: Boolean, a: A, index: Int): Component = {
preConfigure(list, isSelected, focused, a, index)
configure(list, isSelected, focused, a, index)
component
@@ -123,10 +123,10 @@ object ListView {
* that renders the string returned from an item's <code>toString</code>.
*/
implicit object GenericRenderer extends Renderer[Any] {
- override lazy val peer: ListCellRenderer = new DefaultListCellRenderer
- def componentFor(list: ListView[_], isSelected: Boolean, focused: Boolean, a: Any, index: Int): Component = {
- val c = peer.getListCellRendererComponent(list.peer, a, index, isSelected, focused).asInstanceOf[JComponent]
- Component.wrap(c)
+ override lazy val peer: ListCellRenderer[Any] = (new DefaultListCellRenderer).asInstanceOf[ListCellRenderer[Any]]
+ def componentFor(list: ListView[_ <: Any], isSelected: Boolean, focused: Boolean, a: Any, index: Int): Component = {
+ val c = peer.getListCellRendererComponent(list.peer, a, index, isSelected, focused)
+ Component.wrap(c.asInstanceOf[JComponent])
}
}
}
@@ -142,34 +142,34 @@ object ListView {
*/
class ListView[A] extends Component {
import ListView._
- override lazy val peer: JList = new JList with SuperMixin
+ override lazy val peer: JList[A] = new JList[A] with SuperMixin
def this(items: Seq[A]) = {
this()
listData = items
}
- protected class ModelWrapper(val items: Seq[A]) extends AbstractListModel {
- def getElementAt(n: Int) = items(n).asInstanceOf[AnyRef]
+ protected class ModelWrapper[A](val items: Seq[A]) extends AbstractListModel[A] {
+ def getElementAt(n: Int) = items(n)
def getSize = items.size
}
def listData: Seq[A] = peer.getModel match {
- case model: ModelWrapper => model.items
- case model @ _ => new Seq[A] { selfSeq =>
+ case model: ModelWrapper[a] => model.items
+ case model => new Seq[A] { selfSeq =>
def length = model.getSize
def iterator = new Iterator[A] {
var idx = 0
def next = { idx += 1; apply(idx-1) }
def hasNext = idx < selfSeq.length
}
- def apply(n: Int) = model.getElementAt(n).asInstanceOf[A]
+ def apply(n: Int): A = model.getElementAt(n)
}
}
def listData_=(items: Seq[A]) {
- peer.setModel(new AbstractListModel {
- def getElementAt(n: Int) = items(n).asInstanceOf[AnyRef]
+ peer.setModel(new AbstractListModel[A] {
+ def getElementAt(n: Int) = items(n)
def getSize = items.size
})
}
@@ -216,7 +216,7 @@ class ListView[A] extends Component {
def adjusting = peer.getSelectionModel.getValueIsAdjusting
}
- def renderer: ListView.Renderer[A] = ListView.Renderer.wrap(peer.getCellRenderer)
+ def renderer: ListView.Renderer[A] = ListView.Renderer.wrap[A](peer.getCellRenderer.asInstanceOf[ListCellRenderer[A]])
def renderer_=(r: ListView.Renderer[A]) { peer.setCellRenderer(r.peer) }
def fixedCellWidth = peer.getFixedCellWidth

View File

@ -1,15 +0,0 @@
diff -up scala-2.10.3/src/build/maven/scala-compiler-pom.xml.compiler-pom scala-2.10.3/src/build/maven/scala-compiler-pom.xml
--- scala-2.10.3/src/build/maven/scala-compiler-pom.xml.compiler-pom 2013-12-09 18:00:10.765090809 +0100
+++ scala-2.10.3/src/build/maven/scala-compiler-pom.xml 2013-12-09 18:02:31.251138135 +0100
@@ -43,9 +43,9 @@
<version>@VERSION@</version>
</dependency>
<dependency>
- <groupId>org.scala-lang</groupId>
+ <groupId>jline</groupId>
<artifactId>jline</artifactId>
- <version>@VERSION@</version>
+ <version>2.10</version>
<optional>true</optional>
</dependency>
</dependencies>

View File

@ -1,109 +0,0 @@
diff -up scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/ConsoleReaderHelper.scala.sysjline scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/ConsoleReaderHelper.scala
--- scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/ConsoleReaderHelper.scala.sysjline 2013-10-10 21:03:24.000000000 +0200
+++ scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/ConsoleReaderHelper.scala 2013-10-13 15:28:24.478283303 +0200
@@ -6,8 +6,8 @@
package scala.tools.nsc
package interpreter
-import scala.tools.jline.console.{ ConsoleReader, CursorBuffer }
-import scala.tools.jline.console.completer.CompletionHandler
+import jline.console.{ ConsoleReader, CursorBuffer }
+import jline.console.completer.CompletionHandler
import Completion._
trait ConsoleReaderHelper extends ConsoleReader {
diff -up scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/Delimited.scala.sysjline scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/Delimited.scala
--- scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/Delimited.scala.sysjline 2013-10-10 21:03:24.000000000 +0200
+++ scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/Delimited.scala 2013-10-13 15:28:24.483282990 +0200
@@ -6,7 +6,7 @@
package scala.tools.nsc
package interpreter
-import scala.tools.jline.console.completer.ArgumentCompleter.{ ArgumentDelimiter, ArgumentList }
+import jline.console.completer.ArgumentCompleter.{ ArgumentDelimiter, ArgumentList }
class JLineDelimiter extends ArgumentDelimiter {
def toJLine(args: List[String], cursor: Int) = args match {
diff -up scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/JLineCompletion.scala.sysjline scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/JLineCompletion.scala
--- scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/JLineCompletion.scala.sysjline 2013-10-10 21:03:24.000000000 +0200
+++ scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/JLineCompletion.scala 2013-10-13 15:28:24.487282739 +0200
@@ -6,8 +6,8 @@
package scala.tools.nsc
package interpreter
-import scala.tools.jline._
-import scala.tools.jline.console.completer._
+import jline._
+import jline.console.completer._
import Completion._
import scala.collection.mutable.ListBuffer
diff -up scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/JLineReader.scala.sysjline scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/JLineReader.scala
--- scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/JLineReader.scala.sysjline 2013-10-10 21:03:24.000000000 +0200
+++ scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/JLineReader.scala 2013-10-13 15:30:16.619034744 +0200
@@ -6,8 +6,8 @@
package scala.tools.nsc
package interpreter
-import scala.tools.jline.console.ConsoleReader
-import scala.tools.jline.console.completer._
+import jline.console.ConsoleReader
+import jline.console.completer._
import session._
import scala.collection.JavaConverters._
import Completion._
@@ -71,6 +71,9 @@ class JLineReader(_completion: => Comple
def eraseLine() = consoleReader.eraseLine()
// Alternate implementation, not sure if/when I need this.
// def eraseLine() = while (consoleReader.delete()) { }
- def readOneLine(prompt: String) = consoleReader readLine prompt
+ def readOneLine(prompt: String) = {
+ consoleReader.setExpandEvents(false)
+ consoleReader readLine prompt
+ }
def readOneKey(prompt: String) = consoleReader readOneKey prompt
}
diff -up scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/Parsed.scala.sysjline scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/Parsed.scala
--- scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/Parsed.scala.sysjline 2013-10-10 21:03:24.000000000 +0200
+++ scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/Parsed.scala 2013-10-13 15:28:24.496282176 +0200
@@ -6,7 +6,7 @@
package scala.tools.nsc
package interpreter
-import scala.tools.jline.console.completer.ArgumentCompleter.{ ArgumentDelimiter, ArgumentList }
+import jline.console.completer.ArgumentCompleter.{ ArgumentDelimiter, ArgumentList }
import util.returning
/** One instance of a command buffer.
diff -up scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/ReplProps.scala.sysjline scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/ReplProps.scala
--- scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/ReplProps.scala.sysjline 2013-10-10 21:03:24.000000000 +0200
+++ scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/ReplProps.scala 2013-10-13 15:28:24.500281925 +0200
@@ -13,8 +13,8 @@ class ReplProps {
private def bool(name: String) = BooleanProp.keyExists(name)
private def int(name: String) = IntProp(name)
- val jlineDebug = bool("scala.tools.jline.internal.Log.debug")
- val jlineTrace = bool("scala.tools.jline.internal.Log.trace")
+ val jlineDebug = bool("jline.internal.Log.debug")
+ val jlineTrace = bool("jline.internal.Log.trace")
val info = bool("scala.repl.info")
val debug = bool("scala.repl.debug")
diff -up scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/session/package.scala.sysjline scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/session/package.scala
--- scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/session/package.scala.sysjline 2013-10-10 21:03:24.000000000 +0200
+++ scala-2.10.3/src/compiler/scala/tools/nsc/interpreter/session/package.scala 2013-10-13 15:28:24.504281675 +0200
@@ -14,10 +14,10 @@ package object session {
type JIterator[T] = java.util.Iterator[T]
type JListIterator[T] = java.util.ListIterator[T]
- type JEntry = scala.tools.jline.console.history.History.Entry
- type JHistory = scala.tools.jline.console.history.History
- type JMemoryHistory = scala.tools.jline.console.history.MemoryHistory
- type JPersistentHistory = scala.tools.jline.console.history.PersistentHistory
+ type JEntry = jline.console.history.History.Entry
+ type JHistory = jline.console.history.History
+ type JMemoryHistory = jline.console.history.MemoryHistory
+ type JPersistentHistory = jline.console.history.PersistentHistory
private[interpreter] implicit def charSequenceFix(x: CharSequence): String = x.toString
}

View File

@ -1,672 +0,0 @@
--- a/build.xml 2014-09-15 16:38:35.523938086 -0500
+++ b/build.xml 2014-09-18 14:37:16.648133327 -0500
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
-<project name="sabbus" default="build" xmlns:artifact="urn:maven-artifact-ant">
+<project name="sabbus" default="build">
<description>
SuperSabbus for Scala core, builds the scala library and compiler. It can also package it as a simple distribution, tests it for stable bootstrapping and against the Scala test suite.
</description>
@@ -44,8 +44,8 @@
<!-- ===========================================================================
END-USER TARGETS
============================================================================ -->
- <target name="build" depends="pack.done" description="Builds the Scala compiler and library. Executables are in 'build/pack/bin'."/>
- <target name="test" depends="test.done" description="Runs test suite and bootstrapping test on Scala compiler and library."/>
+ <target name="build" depends="quick.done, pack.bin" description="Builds the Scala compiler and library. Executables are in 'build/pack/bin'."/>
+ <target name="test" description="Runs test suite and bootstrapping test on Scala compiler and library."/>
<target name="docs" depends="docs.done" description="Builds documentation for the Scala library. Scaladoc is in 'build/scaladoc/library'."/>
<target name="docscomp" depends="docs.comp" description="Builds documentation for the Scala compiler and library. Scaladoc is in 'build/scaladoc'."/>
<target name="dist" depends="all.clean, all.done" description="Cleans all and builds and tests a new distribution."/>
@@ -68,7 +68,7 @@
<target name="distpack-opt" description="Builds an optimised distribution."> <optimized name="distpack"/></target>
<target name="distpack-maven-opt" description="Builds an optimised maven distribution."><optimized name="distpack-maven"/></target>
- <target name="all.done" depends="dist.done, test.done"/>
+ <target name="all.done" depends="dist.done"/>
<!-- must use depends for all.done, not antcall: need the properties defined in there (dist.dir) -->
<target name="nightly-nopt" depends="all.done, docs.done">
@@ -89,14 +89,13 @@
</sequential>
</macrodef>
+
<!-- ===========================================================================
PROPERTIES
============================================================================ -->
<property environment="env"/>
<!-- Prevents system classpath from being used -->
- <property name="build.sysclasspath" value="ignore"/>
-
<!-- Defines the repository layout -->
<property name="docs.dir" value="${basedir}/docs"/>
<property name="lib.dir" value="${basedir}/lib"/>
@@ -122,8 +121,8 @@
<property name="reflect.starr.jar" value="${lib.dir}/scala-reflect.jar"/>
<property name="compiler.starr.jar" value="${lib.dir}/scala-compiler.jar"/>
<property name="msil.starr.jar" value="${lib.dir}/msil.jar"/>
- <property name="jline.jar" value="${lib.dir}/jline.jar"/>
- <property name="ant.jar" value="${ant.home}/lib/ant.jar"/>
+ <property name="jline.jar" value="@JLINE@"/>
+ <property name="ant.jar" value="/usr/share/java/ant.jar"/>
<property name="scalacheck.jar" value="${lib.dir}/scalacheck.jar"/>
<!-- Sets location of build folders -->
@@ -181,91 +180,54 @@
</target>
<target name="boot" depends="desired.jars.uptodate" unless="lib.jars.uptodate">
- <echo level="warn" message="Updating bootstrap libs. (To do this by hand, run ./pull-binary-libs.sh)"/>
- <exec osfamily="unix" vmlauncher="false" executable="./pull-binary-libs.sh" failifexecutionfails="true" />
- <exec osfamily="windows" vmlauncher="false" executable="pull-binary-libs.sh" failifexecutionfails="true" />
- <!-- uptodate task needs to know these are what's in the sha. -->
- <touch>
- <fileset dir="${basedir}"><patternset refid="desired.jars"/></fileset>
- <mapper type="glob" from="*.desired.sha1" to="*"/>
- </touch>
</target>
<target name="init" depends="boot">
<!-- Set up Ant contrib tasks so we can use <if><then><else> instead of the clunky `unless` attribute -->
- <taskdef resource="net/sf/antcontrib/antlib.xml" classpath="${lib-ant.dir}/ant-contrib.jar"/>
-
- <!-- Add our maven ant tasks -->
- <path id="maven-ant-tasks.classpath" path="${lib-ant.dir}/maven-ant-tasks-2.1.1.jar" />
- <typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="urn:maven-artifact-ant" classpathref="maven-ant-tasks.classpath" />
+ <taskdef resource="net/sf/antcontrib/antlib.xml" classpath="/usr/share/java/ant-contrib/ant-contrib.jar"/>
- <!-- Resolve maven dependencies -->
-
- <!-- work around http://jira.codehaus.org/browse/MANTTASKS-203:
- java.lang.ClassCastException: org.codehaus.plexus.DefaultPlexusContainer cannot be cast to org.codehaus.plexus.PlexusContainer
- on repeated use of artifact:dependencies
- -->
- <if><not><isset property="maven-deps-done"></isset></not><then>
- <mkdir dir="${user.home}/.m2/repository"/>
- <!-- This task has an issue where if the user directory does not exist, so we create it above. UGH. -->
- <artifact:dependencies pathId="extra.tasks.classpath" filesetId="extra.tasks.fileset">
- <dependency groupId="biz.aQute" artifactId="bnd" version="1.50.0"/>
- </artifact:dependencies>
-
- <!-- JUnit -->
- <property name="junit.version" value="4.10"/>
- <artifact:dependencies pathId="junit.classpath" filesetId="junit.fileset">
- <dependency groupId="junit" artifactId="junit" version="${junit.version}"/>
- </artifact:dependencies>
-
- <!-- Pax runner -->
- <property name="pax.exam.version" value="2.6.0"/>
- <artifact:dependencies pathId="pax.exam.classpath" filesetId="pax.exam.fileset">
- <dependency groupId="org.ops4j.pax.exam" artifactId="pax-exam-container-native" version="${pax.exam.version}"/>
- <dependency groupId="org.ops4j.pax.exam" artifactId="pax-exam-junit4" version="${pax.exam.version}"/>
- <dependency groupId="org.ops4j.pax.exam" artifactId="pax-exam-link-assembly" version="${pax.exam.version}"/>
- <!-- upgraded to 1.6.0 to get fix for https://ops4j1.jira.com/browse/PAXURL-217
- https://ops4j1.jira.com/browse/PAXURL-138 is still unresolved... -->
- <dependency groupId="org.ops4j.pax.url" artifactId="pax-url-aether" version="1.6.0"/>
- <dependency groupId="org.ops4j.pax.swissbox" artifactId="pax-swissbox-framework" version="1.5.1"/>
- <dependency groupId="ch.qos.logback" artifactId="logback-core" version="0.9.20"/>
- <dependency groupId="ch.qos.logback" artifactId="logback-classic" version="0.9.20"/>
- <dependency groupId="junit" artifactId="junit" version="${junit.version}"/>
- <dependency groupId="org.apache.felix" artifactId="org.apache.felix.framework" version="3.2.2"/>
- </artifact:dependencies>
-
-
- <artifact:dependencies pathId="partest.extras.classpath" filesetId="partest.extras.fileset" versionsId="partest.extras.versions">
- <dependency groupId="com.googlecode.java-diff-utils" artifactId="diffutils" version="1.3.0"/>
- </artifact:dependencies>
-
- <!-- BND support -->
- <typedef resource="aQute/bnd/ant/taskdef.properties" classpathref="extra.tasks.classpath" />
-
- <artifact:remoteRepository id="extra-repo" url="${extra.repo.url}"/>
-
- <!-- Download STARR via maven if `starr.use.released` is set,
- and `starr.version` is specified (see the starr.number properties file).
- Want to slow down STARR changes, using only released versions. -->
- <if><isset property="starr.use.released"/><then>
- <echo message="Using Scala ${starr.version} for STARR."/>
- <artifact:dependencies pathId="starr.core.path">
- <artifact:remoteRepository refid="extra-repo"/>
- <dependency groupId="org.scala-lang" artifactId="scala-library" version="${starr.version}"/>
- <dependency groupId="org.scala-lang" artifactId="scala-reflect" version="${starr.version}"/>
- <dependency groupId="org.scala-lang" artifactId="scala-compiler" version="${starr.version}"/>
- </artifact:dependencies></then>
+ <if>
+ <isset property="doBootstrapBuild"></isset>
+ <then>
+ <path id="scalabootstrap.classpath">
+ <fileset dir="lib">
+ <include name="scala*.jar"/>
+ </fileset>
+ </path>
+ </then>
<else>
- <path id="starr.core.path">
- <pathelement location="${library.starr.jar}"/>
- <pathelement location="${reflect.starr.jar}"/>
- <pathelement location="${compiler.starr.jar}"/>
- <pathelement location="${msil.starr.jar}"/>
- </path></else>
- </if>
+ <path id="scalabootstrap.classpath">
+ <fileset dir="/usr/share/scala/lib/">
+ <include name="scala*.jar"/>
+ </fileset>
+ </path>
+ </else>
+ </if>
- <property name="maven-deps-done" value="yep!"/>
- </then></if>
+ <taskdef name="classloadVerify"
+ classpathref="scalabootstrap.classpath"
+ classname="scala.tools.ant.ClassloadVerify"/>
+ <taskdef name="fsc"
+ classpathref="scalabootstrap.classpath"
+ classname="scala.tools.ant.FastScalac"/>
+ <taskdef name="scalac"
+ classpathref="scalabootstrap.classpath"
+ classname="scala.tools.ant.Scalac"/>
+ <taskdef name="scalascript"
+ classpathref="scalabootstrap.classpath"
+ classname="scala.tools.ant.ScalaTool"/>
+ <taskdef name="scaladoc"
+ classpathref="scalabootstrap.classpath"
+ classname="scala.tools.ant.Scaladoc"/>
+ <taskdef name="scalatool"
+ classpathref="scalabootstrap.classpath"
+ classname="scala.tools.ant.ScalaTool"/>
+ <taskdef name="same"
+ classpathref="scalabootstrap.classpath"
+ classname="scala.tools.ant.Same"/>
+
+ <typedef resource="aQute/bnd/ant/taskdef.properties"
+ classpath="/usr/share/java/aqute-bnd.jar" />
<!-- NOTE: ant properties are write-once: second writes are silently discarded; the logic below relies on this -->
@@ -337,7 +302,7 @@
<if><isset property="build.release"/><then>
<property name="version.number" value="${maven.version.number}"/>
</then><else>
- <property name="version.number" value="${version.major}.${version.minor}.${version.patch}${version.suffix}-${git.commit.date}-${git.commit.sha}"/>
+ <property name="version.number" value="${version.major}.${version.minor}.${version.patch}${version.suffix}"/>
</else></if>
<condition property="has.java6">
@@ -466,6 +431,13 @@
There must be a variable of the shape @{stage}.compiler.path for all @{stage} in starr, locker, quick, strap.
-->
+ <path id="starr.core.path">
+ <pathelement location="${library.starr.jar}"/>
+ <pathelement location="${reflect.starr.jar}"/>
+ <pathelement location="${compiler.starr.jar}"/>
+ <pathelement location="${msil.starr.jar}"/>
+ </path>
+
<path id="starr.compiler.path">
<path refid="starr.core.path"/>
<pathelement location="${lib.dir}/forkjoin.jar"/>
@@ -576,13 +548,6 @@
<path id="quick.scalap.build.path">
<path refid="quick.compiler.build.path"/>
<pathelement location="${build-quick.dir}/classes/scalap"/>
- <pathelement location="${build-quick.dir}/classes/partest"/>
- </path>
-
- <path id="quick.partest.build.path">
- <path refid="quick.scalap.build.path"/>
- <path refid="partest.extras.classpath"/>
- <pathelement location="${scalacheck.jar}"/>
</path>
<path id="quick.bin.tool.path">
@@ -605,12 +570,10 @@
<pathelement location="${build-pack.dir}/lib/scala-library.jar"/>
<pathelement location="${build-pack.dir}/lib/scala-reflect.jar"/>
<pathelement location="${build-pack.dir}/lib/scala-compiler.jar"/>
- <pathelement location="${build-pack.dir}/lib/scala-partest.jar"/>
<pathelement location="${build-pack.dir}/lib/scalap.jar"/>
<pathelement location="${build-pack.dir}/lib/scala-actors.jar"/>
<pathelement location="${ant.jar}"/>
<pathelement location="${jline.jar}"/>
- <path refid="partest.extras.classpath"/>
<path refid="aux.libs"/>
</path>
@@ -647,18 +610,6 @@
<path id="pack.scalap.files"> <fileset dir="${build-quick.dir}/classes/scalap"/>
<fileset file="${src.dir}/scalap/decoder.properties"/> </path>
- <path id="pack.partest.files">
- <fileset dir="${build-quick.dir}/classes/partest">
- <exclude name="scala/tools/partest/javaagent/**"/>
- </fileset>
- </path>
-
- <path id="pack.partest-javaagent.files">
- <fileset dir="${build-quick.dir}/classes/partest">
- <include name="scala/tools/partest/javaagent/**"/>
- </fileset>
- </path>
-
<!-- STRAP -->
<path id="strap.library.build.path">
<pathelement location="${build-strap.dir}/classes/library"/>
@@ -733,10 +684,6 @@
<path id="test.positions.sub.build.path" path="${build-quick.dir}/classes/library"/>
<!-- TODO: consolidate *.includes -->
- <patternset id="partest.includes">
- <include name="**/*.xml"/>
- </patternset>
-
<patternset id="lib.includes">
<include name="**/*.tmpl"/>
<include name="**/*.xml"/>
@@ -765,7 +712,8 @@
<include name="**/*.txt"/>
</patternset>
- <taskdef resource="scala/tools/ant/sabbus/antlib.xml" classpathref="starr.compiler.path"/>
+ <taskdef resource="scala/tools/ant/sabbus/antlib.xml" classpathref="starr.compiler.path"/>
+
</target>
<!-- ===========================================================================
@@ -811,7 +759,8 @@
classpath="${@{project}-classes}"
includes="**/*.java"
target="1.6" source="1.5"
- compiler="javac1.6">
+ compiler="javac1.6"
+ includeantruntime="false" >
<compilerarg line="${javac.args} @{args}"/>
</javac>
<if><equals arg1="@{jar}" arg2="yes"/><then>
@@ -844,6 +793,7 @@
destdir="${build-@{stage}.dir}/classes/@{destproject}"
includes="**/*.java"
excludes="@{excludes}"
+ includeantruntime="false"
target="1.6" source="1.5">
<compilerarg line="${javac.args} @{args}"/>
<classpath refid="@{stage}.@{destproject}.build.path"/>
@@ -1015,7 +965,7 @@
</srcfiles>
</check>
<do>
- <taskdef name="mk-bin" classname="scala.tools.ant.ScalaTool" classpathref="@{stage}.bin.tool.path"/>
+ <taskdef name="mk-bin" classname="scala.tools.ant.ScalaTool" classpathref="starr.core.path"/>
<mkdir dir="${build-@{stage}.dir}/bin"/>
<if><equals arg1="@{classpathref}" arg2="NOT SET"/><then>
<mk-bin file="${build-@{stage}.dir}/bin/scala" class="scala.tools.nsc.MainGenericRunner" javaFlags="${java.flags}"/>
@@ -1183,10 +1133,7 @@
<target name="quick.scalap" depends="quick.comp">
<staged-build with="locker" stage="quick" project="scalap"/> </target>
- <target name="quick.partest" depends="quick.scalap, quick.comp, asm.done">
- <staged-build with="locker" stage="quick" project="partest" version="partest"/> </target>
-
- <target name="quick.swing" depends="quick.actors, quick.lib" if="has.java6">
+ <target name="quick.swing" depends="quick.actors, quick.lib">
<staged-build with="locker" stage="quick" project="swing"/> </target>
<target name="quick.plugins" depends="quick.comp">
@@ -1222,7 +1169,7 @@
</staged-uptodate>
</target>
- <target name="quick.bin" depends="quick.lib, quick.reflect, quick.comp, quick.scalacheck, quick.scalap, quick.swing, quick.plugins, quick.partest">
+ <target name="quick.bin" depends="quick.lib, quick.reflect, quick.comp, quick.scalacheck, quick.scalap, quick.swing, quick.plugins">
<staged-bin stage="quick" classpathref="quick.bin.tool.path"/>
</target>
@@ -1237,7 +1184,7 @@
<staged-pack project="library"/></target>
<target name="pack.actors" depends="quick.lib"> <staged-pack project="actors"/> </target>
- <target name="pack.swing" if="has.java6" depends="quick.swing"> <staged-pack project="swing"/> </target>
+ <target name="pack.swing" depends="quick.swing"> <staged-pack project="swing"/> </target>
<target name="pack.reflect" depends="quick.reflect"> <staged-pack project="reflect"/> </target>
<target name="pack.comp" depends="quick.comp, asm.done">
@@ -1267,36 +1214,16 @@
<target name="pack.plugins" depends="quick.plugins"> <staged-pack project="plugins" targetdir="misc/scala-devel/plugins" targetjar="continuations.jar"/> </target>
<target name="pack.scalacheck" depends="quick.scalacheck"> <staged-pack project="scalacheck" targetjar="scalacheck.jar"/> </target>
- <target name="pack.partest" depends="quick.partest">
- <staged-pack project="partest"/>
- <!-- TODO the manifest should influence actuality of this target -->
- <staged-pack project="partest-javaagent" manifest="${src.dir}/partest/scala/tools/partest/javaagent/MANIFEST.MF"/>
- </target>
-
<target name="pack.scalap" depends="quick.scalap"> <staged-pack project="scalap" targetjar="scalap.jar"/> </target>
- <target name="pack.bin" depends="pack.comp, pack.lib, pack.actors, pack.partest, pack.plugins, pack.reflect, pack.scalacheck, pack.scalap, pack.swing">
+ <target name="pack.bin" depends="pack.comp, pack.lib, pack.actors, pack.plugins, pack.reflect, pack.scalacheck, pack.scalap, pack.swing">
<staged-bin stage="pack"/>
</target>
- <!-- depend on quick.done so quick.bin is run when pack.done is -->
- <target name="pack.done" depends="quick.done, pack.bin">
- <!-- copy dependencies to build/pack/lib, it only takes a second so don't bother with uptodate checks -->
- <copy todir="${build-pack.dir}/lib">
- <resources refid="partest.extras.fileset"/>
- <mapper classpathref="maven-ant-tasks.classpath" classname="org.apache.maven.artifact.ant.VersionMapper"
- from="${partest.extras.versions}" to="flatten"/>
- </copy>
-
- <taskdef resource="scala/tools/ant/antlib.xml" classpathref="pack.compiler.path"/>
- <taskdef resource="scala/tools/partest/antlib.xml" classpathref="partest.classpath"/>
- </target>
-
-
<!-- ===========================================================================
BOOTSTRAPPING BUILD (STRAP)
============================================================================ -->
- <target name="strap.done" depends="pack.done">
+ <target name="strap.done" depends="quick.done, pack.bin">
<staged-build with="pack" stage="strap" project="library" srcpath="${src.dir}/library" includes="lib.rootdoc.includes"/>
<staged-build with="pack" stage="strap" project="msil" java-excludes="**/tests/**"/>
<staged-build with="pack" stage="strap" project="reflect"/>
@@ -1331,7 +1258,7 @@
<!-- ===========================================================================
OSGi Artifacts
============================================================================ -->
- <target name="osgi.done" depends="pack.done">
+ <target name="osgi.done" depends="quick.done, pack.bin">
<mkdir dir="${build-osgi.dir}"/>
<!-- simplify fixing pom versions -->
@@ -1378,7 +1305,6 @@
</uptodate>
<if><not><isset property="osgi.bundles.available"/></not><then>
- <stopwatch name="osgi.bundle.timer"/>
<make-bundle name="scala-library" version="${osgi.version.number}" />
<make-bundle name="scala-actors" version="${osgi.version.number}" />
<make-bundle name="scala-reflect" version="${osgi.version.number}" />
@@ -1386,10 +1312,7 @@
<make-plugin-bundle name="continuations" version="${osgi.version.number}" />
<touch file="${build-osgi.dir}/bundles.complete" verbose="no"/>
- <if><isset property="has.java6"/><then>
- <make-bundle name="scala-swing" version="${osgi.version.number}"/></then>
- </if>
- <stopwatch name="osgi.bundle.timer" action="total"/></then>
+ <make-bundle name="scala-swing" version="${osgi.version.number}"/></then>
</if>
</target>
@@ -1519,81 +1442,6 @@
<stopwatch name="test.junit.timer" action="total"/>
</target>
- <property name="partest.srcdir" value="files" /> <!-- TODO: make targets for `pending` and other subdirs -->
-
- <target name="test.run" depends="pack.done">
- <partest showlog="yes" erroronfailed="yes" javacmd="${java.home}/bin/java"
- timeout="1200000"
- srcdir="${partest.srcdir}"
- scalacopts="${scalac.args.optimise}">
-
- <compilationpath refid="partest.build.path"/>
- <runtests dir="${partest.dir}/${partest.srcdir}/run" includes="*.scala"/>
- <jvmtests dir="${partest.dir}/${partest.srcdir}/jvm" includes="*.scala"/>
- </partest>
- </target>
-
- <target name="test.suite" depends="pack.done">
- <partest showlog="yes" erroronfailed="yes" javacmd="${java.home}/bin/java"
- timeout="2400000"
- srcdir="${partest.srcdir}"
- scalacopts="${scalac.args.optimise}">
- <compilationpath refid="partest.build.path"/>
- <postests dir="${partest.dir}/${partest.srcdir}/pos" includes="*.scala"/>
- <negtests dir="${partest.dir}/${partest.srcdir}/neg" includes="*.scala"/>
- <runtests dir="${partest.dir}/${partest.srcdir}/run" includes="*.scala"/>
- <jvmtests dir="${partest.dir}/${partest.srcdir}/jvm" includes="*.scala"/>
- <residenttests dir="${partest.dir}/${partest.srcdir}/res" includes="*.res"/>
- <buildmanagertests dir="${partest.dir}/${partest.srcdir}/buildmanager" includes="*"/>
- <scalaptests dir="${partest.dir}/${partest.srcdir}/scalap" includes="**/*.scala"/>
- <scalachecktests dir="${partest.dir}/${partest.srcdir}/scalacheck">
- <include name="*.scala"/>
- </scalachecktests>
- <specializedtests dir="${partest.dir}/${partest.srcdir}/specialized">
- <include name="*.scala"/>
- </specializedtests>
- <instrumentedtests dir="${partest.dir}/${partest.srcdir}/instrumented">
- <include name="*.scala"/>
- </instrumentedtests>
- </partest>
- </target>
-
- <target name="test.continuations.suite" depends="pack.done">
- <partest showlog="yes" erroronfailed="yes" javacmd="${java.home}/bin/java"
- timeout="2400000"
- srcdir="${partest.srcdir}"
- scalacopts="${scalac.args.optimise} -Xplugin-require:continuations -P:continuations:enable">
- <compilerarg value="-Xpluginsdir"/>
- <compilerarg file="${build-quick.dir}/misc/scala-devel/plugins"/>
- <compilationpath refid="partest.build.path"/>
- <negtests dir="${partest.dir}/${partest.srcdir}/continuations-neg" includes="*.scala"/>
- <runtests dir="${partest.dir}/${partest.srcdir}/continuations-run" includes="*.scala"/>
- </partest>
- </target>
-
- <target name="test.scaladoc" depends="pack.done">
- <partest erroronfailed="yes" scalacopts="${scalac.args.optimise}" showlog="yes">
- <compilationpath refid="partest.build.path"/>
- <runtests dir="${partest.dir}/scaladoc/run" includes="*.scala" />
- <scalachecktests dir="${partest.dir}/scaladoc/scalacheck" includes="*.scala" />
- </partest>
- </target>
-
- <target name="test.interactive" depends="pack.done">
- <partest erroronfailed="yes" scalacopts="${scalac.args.optimise}" showlog="yes">
- <compilationpath refid="partest.build.path"/>
- <presentationtests dir="${partest.dir}/${partest.srcdir}/presentation">
- <include name="*/*.scala"/>
- </presentationtests>
- </partest>
- </target>
-
- <!-- for use in PR validation, where stability is rarely broken, so we're going to use starr for locker,
- and skip test.stability (which requires locker == quick) -->
- <target name="test.core" depends="test.osgi, test.sbt, test.bc, test.junit, test.interactive, test.continuations.suite, test.scaladoc, test.suite"/>
- <target name="test.done" depends="test.core, test.stability"/>
-
-
<!-- ===========================================================================
BINARY COMPATIBILITY TESTING
============================================================================ -->
@@ -1604,71 +1452,37 @@
<!-- Obtain mima -->
<mkdir dir="${bc-build.dir}"/>
<!-- Pull down MIMA -->
- <artifact:dependencies pathId="mima.classpath">
- <dependency groupId="com.typesafe" artifactId="mima-reporter_2.10" version="0.1.6"/>
- </artifact:dependencies>
- <artifact:dependencies pathId="old.bc.classpath">
- <dependency groupId="org.scala-lang" artifactId="scala-swing" version="${bc-reference-version}"/>
- <dependency groupId="org.scala-lang" artifactId="scala-library" version="${bc-reference-version}"/>
- <dependency groupId="org.scala-lang" artifactId="scala-reflect" version="${bc-reference-version}"/>
- </artifact:dependencies>
<property name="maven-deps-done-mima" value="true"/>
</target>
<macrodef name="bc.run-mima">
- <attribute name="jar-name"/>
- <attribute name="prev"/>
- <attribute name="curr"/>
- <attribute name="direction"/>
- <sequential>
- <echo message="Checking @{direction} binary compatibility for @{jar-name} (against ${bc-reference-version})"/>
- <java taskname="mima"
- fork="true"
- failonerror="true"
- classname="com.typesafe.tools.mima.cli.Main">
- <arg value="--prev"/>
- <arg value="@{prev}"/>
- <arg value="--curr"/>
- <arg value="@{curr}"/>
- <arg value="--filters"/>
- <arg value="${basedir}/bincompat-@{direction}.whitelist.conf"/>
- <arg value="--generate-filters"/>
- <classpath>
- <path refid="mima.classpath"/>
- </classpath>
- </java>
- </sequential>
+ <sequential></sequential>
</macrodef>
<macrodef name="bc.check">
- <attribute name="jar-name"/>
- <sequential>
- <bc.run-mima
- jar-name="@{jar-name}"
- prev="${org.scala-lang:@{jar-name}:jar}"
- curr="${build-pack.dir}/lib/@{jar-name}.jar"
- direction="backward"/>
- <bc.run-mima
- jar-name="@{jar-name}"
- prev="${build-pack.dir}/lib/@{jar-name}.jar"
- curr="${org.scala-lang:@{jar-name}:jar}"
- direction="forward"/>
- </sequential>
+ <sequential></sequential>
</macrodef>
<target name="test.bc-opt" description="Optimized version of test.bc."> <optimized name="test.bc"/></target>
<target name="test.bc" depends="bc.init, pack.lib, pack.reflect, pack.swing">
- <bc.check jar-name="scala-library"/>
- <bc.check jar-name="scala-reflect"/>
- <bc.check jar-name="scala-swing"/>
</target>
<!-- ===========================================================================
DOCUMENTATION
============================================================================ -->
- <target name="docs.start" depends="pack.done">
+ <target name="docs.start" depends="quick.done, pack.bin">
<!-- Set the github commit scaladoc sources point to -->
<!-- For releases, look for the tag with the same name as the maven version -->
+
+ <pathconvert property="packBinToolPath" refid="pack.bin.tool.path"/>
+ <echo>pack.bin.tool.path is ${packBinToolPath}</echo>
+
+ <taskdef name="scaladoc" classname="scala.tools.ant.Scaladoc">
+ <classpath>
+ <path refid="starr.core.path"/>
+ </classpath>
+ </taskdef>
+
<condition property="scaladoc.git.commit" value="v${maven.version.number}">
<isset property="build.release"/>
</condition>
@@ -1688,6 +1502,7 @@
</target>
<target name="docs.lib" depends="docs.start">
+
<staged-uptodate stage="docs" project="library">
<check><srcfiles dir="${src.dir}">
<include name="library/**"/>
@@ -1740,15 +1555,14 @@
</target>
<target name="docs.comp" depends="docs.start">
- <staged-docs project="compiler" title="Scala Compiler" docroot="rootdoc.txt">
- <include name="**/*.scala"/>
- </staged-docs>
- </target>
+ <taskdef name="scaladoc" classname="scala.tools.ant.Scaladoc">
+ <classpath>
+ <path refid="starr.core.path"/>
+ </classpath>
+ </taskdef>
- <target name="docs.jline" depends="docs.start">
- <staged-docs project="jline" dir="jline/src/main/java" title="Scala JLine">
+ <staged-docs project="compiler" title="Scala Compiler" docroot="rootdoc.txt">
<include name="**/*.scala"/>
- <include name="**/*.java"/>
</staged-docs>
</target>
@@ -1758,12 +1572,6 @@
</staged-docs>
</target>
- <target name="docs.partest" depends="docs.start">
- <staged-docs project="partest" title="Scala Parallel Testing Framework">
- <include name="**/*.scala"/>
- </staged-docs>
- </target>
-
<target name="docs.continuations-plugin" depends="docs.start">
<staged-docs project="continuations-plugin" dir="continuations/plugin" title="Delimited Continuations Compiler Plugin">
<include name="**/*.scala"/>
@@ -1771,10 +1579,12 @@
</target>
<target name="docs.man" depends="docs.start">
+ <taskdef resource="scala/tools/ant/sabbus/antlib.xml" classpathref="starr.compiler.path"/>
<staged-uptodate stage="docs" project="manual">
<check><srcfiles dir="${src.dir}/manual"/></check>
<do>
<mkdir dir="${build.dir}/manmaker/classes"/>
+
<scalac
destdir="${build.dir}/manmaker/classes"
classpathref="pack.compiler.path"
@@ -1807,13 +1617,13 @@
</staged-uptodate>
</target>
- <target name="docs.done" depends="docs.jline, docs.comp, docs.man, docs.lib, docs.scalap, docs.partest, docs.continuations-plugin"/>
+ <target name="docs.done" depends="docs.comp, docs.man, docs.lib, docs.scalap, docs.continuations-plugin"/>
<!-- ===========================================================================
DISTRIBUTION
============================================================================ -->
- <target name="dist.base" depends="pack.done, osgi.done">
+ <target name="dist.base" depends="quick.done, pack.bin, osgi.done">
<property name="dist.name" value="scala-${version.number}"/>
<property name="dist.dir" value="${dists.dir}/${dist.name}"/>
@@ -1836,7 +1646,6 @@
<mkdir dir="${dist.dir}/lib"/>
<copy toDir="${dist.dir}/lib">
<fileset dir="${build-pack.dir}/lib">
- <include name="jline.jar"/>
<include name="scala-partest.jar"/> <!-- needed for maven publish -->
<include name="scalap.jar"/>
</fileset>
@@ -2027,10 +1836,9 @@
</fail>
<!-- needs antcall to enforce ordering -->
<antcall target="locker.clean"/>
- <antcall target="pack.done"/>
+ <antcall target="quick.done, pack.bin"/>
<antcall target="starr.done"/>
<antcall target="locker.clean"/>
- <antcall target="test.done"/>
</target>
<target name="replacestarr-opt" description="Replaces the Starr compiler and library by fresh, optimised ones built from current sources and tests them.">
@@ -2047,7 +1855,6 @@
<echo message="CAUTION: Make sure to execute 'ant locker.clean build' prior to calling 'replacestarrwin'."/>
<antcall target="starr.done"/>
<antcall target="locker.clean"/>
- <antcall target="test.done"/>
</target>
<target name="replacestarrwin-opt" description="Creates a new Starr on Windows. Manually execute 'ant locker.clean build' first!">

View File

@ -1,25 +0,0 @@
From f9b8176c668d3dff01da73fe65308bc50e355226 Mon Sep 17 00:00:00 2001
From: Mikolaj Izdebski <mizdebsk@redhat.com>
Date: Fri, 12 Oct 2018 16:43:59 +0000
Subject: [PATCH] Stop scaladoc from bundling web assets in generated docs
---
src/compiler/scala/tools/nsc/doc/html/HtmlFactory.scala | 2 --
1 file changed, 2 deletions(-)
diff --git a/src/compiler/scala/tools/nsc/doc/html/HtmlFactory.scala b/src/compiler/scala/tools/nsc/doc/html/HtmlFactory.scala
index 4630c3d..648a588 100644
--- a/src/compiler/scala/tools/nsc/doc/html/HtmlFactory.scala
+++ b/src/compiler/scala/tools/nsc/doc/html/HtmlFactory.scala
@@ -121,8 +121,6 @@ class HtmlFactory(val universe: doc.Universe, index: doc.Index) {
DiagramGenerator.initialize(universe.settings)
- libResources foreach (s => copyResource("lib/" + s))
-
new page.Index(universe, index) writeFor this
new page.IndexScript(universe, index) writeFor this
--
2.17.2

View File

@ -1,184 +0,0 @@
--- scala-2.10.7/src/compiler/scala/tools/nsc/io/SourceReader.scala 2017-11-01 04:52:36.000000000 +0100
+++ scala-2.10.7/src/compiler/scala/tools/nsc/io/SourceReader.scala 2019-11-28 18:22:37.444126737 +0100
@@ -8,7 +8,7 @@
package io
import java.io.{ FileInputStream, InputStream, IOException }
-import java.nio.{ByteBuffer, CharBuffer}
+import java.nio.{Buffer, ByteBuffer, CharBuffer}
import java.nio.channels.{FileChannel, ReadableByteChannel, Channels}
import java.nio.charset.{CharsetDecoder, CoderResult}
import scala.tools.nsc.reporters._
@@ -61,13 +61,13 @@
/** Reads the specified byte channel. */
protected def read(input: ReadableByteChannel): Array[Char] = {
val decoder: CharsetDecoder = this.decoder.reset()
- val bytes: ByteBuffer = this.bytes; bytes.clear()
- var chars: CharBuffer = this.chars; chars.clear()
+ val bytes: ByteBuffer = this.bytes; bytes.asInstanceOf[Buffer].clear()
+ var chars: CharBuffer = this.chars; chars.asInstanceOf[Buffer].clear()
var endOfInput = false
while (!endOfInput ) {
endOfInput = input.read(bytes) < 0
- bytes.flip()
+ bytes.asInstanceOf[Buffer].flip()
chars = decode(decoder, bytes, chars, endOfInput)
}
terminate(flush(decoder, chars))
@@ -76,7 +76,7 @@
/** Reads the specified byte buffer. */
protected def read(bytes: ByteBuffer): Array[Char] = {
val decoder: CharsetDecoder = this.decoder.reset()
- val chars: CharBuffer = this.chars; chars.clear()
+ val chars: CharBuffer = this.chars; chars.asInstanceOf[Buffer].clear()
terminate(flush(decoder, decode(decoder, bytes, chars, true)))
}
@@ -128,7 +128,7 @@
def flush(decoder: CharsetDecoder, chars: CharBuffer): CharBuffer = {
val result: CoderResult = decoder.flush(chars)
if (result.isUnderflow()) {
- chars.flip()
+ chars.asInstanceOf[Buffer].flip()
chars
} else {
if (result.isError()) throw new IOException(result.toString())
@@ -142,7 +142,7 @@
* content but with an increased capacity.
*/
private def increaseCapacity(buffer: CharBuffer): CharBuffer = {
- buffer.flip()
+ buffer.asInstanceOf[Buffer].flip()
val capacity = 2 * buffer.capacity()
CharBuffer.allocate(capacity).put(buffer)
}
--- scala-2.10.7/src/msil/ch/epfl/lamp/compiler/msil/Attribute.java 2017-11-01 04:52:36.000000000 +0100
+++ scala-2.10.7/src/msil/ch/epfl/lamp/compiler/msil/Attribute.java 2019-11-28 17:28:47.932834776 +0100
@@ -11,6 +11,7 @@
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Iterator;
+import java.nio.Buffer;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.io.UnsupportedEncodingException;
@@ -462,7 +463,7 @@
return null;
try { str = new String(value, buf.position(), length, "UTF-8" ); }
catch (UnsupportedEncodingException e) { throw new Error(e); }
- buf.position(buf.position() + length);
+ ((Buffer)buf).position(buf.position() + length);
return str;
}
--- scala-2.10.7/src/msil/ch/epfl/lamp/compiler/msil/PEFile.java 2017-11-01 04:52:36.000000000 +0100
+++ scala-2.10.7/src/msil/ch/epfl/lamp/compiler/msil/PEFile.java 2019-11-28 17:32:27.926199324 +0100
@@ -17,6 +17,7 @@
import java.io.IOException;
import java.io.FileNotFoundException;
+import java.nio.Buffer;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.nio.MappedByteBuffer;
@@ -454,7 +455,7 @@
/** Go to the specified position in the file. */
public void seek(int pos) {
- buf.position(pos);
+ ((Buffer)buf).position(pos);
}
@@ -485,7 +486,7 @@
/** Move the forward in the file by the specified number of bytes. */
public void skip(int n) {
- buf.position(buf.position() + n);
+ ((Buffer)buf).position(buf.position() + n);
}
/**
@@ -503,11 +504,11 @@
/** Returns a buffer from the given offset to the end of the file. */
public ByteBuffer getBuffer(long offset, int size) {
- buf.mark();
- buf.position((int)offset);
+ ((Buffer)buf).mark();
+ ((Buffer)buf).position((int)offset);
ByteBuffer bb = buf.slice();
- buf.reset();
- bb.limit(size);
+ ((Buffer)buf).reset();
+ ((Buffer)bb).limit(size);
bb.order(java.nio.ByteOrder.LITTLE_ENDIAN);
return bb;
}
@@ -707,11 +708,11 @@
if (i < length - 1)
b.append(" ");
}
- buf.position(savedPos);
+ ((Buffer)buf).position(savedPos);
return b.append(")").toString();
}
- public Sig reset() { buf.position(pos); return this; }
+ public Sig reset() { ((Buffer)buf).position(pos); return this; }
public int pos() { return buf.position() - pos; }
--- scala-2.10.7/src/msil/ch/epfl/lamp/compiler/msil/util/PEStream.java 2017-11-01 04:52:36.000000000 +0100
+++ scala-2.10.7/src/msil/ch/epfl/lamp/compiler/msil/util/PEStream.java 2019-11-28 17:36:37.103730311 +0100
@@ -11,6 +11,7 @@
import java.io.PrintStream;
import java.io.IOException;
+import java.nio.Buffer;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
@@ -64,7 +65,7 @@
/** Move to the specified position in the stream. */
private void seek(int pos) {
try {
- buffer.position(pos);
+ ((Buffer)buffer).position(pos);
} catch (IllegalArgumentException e) {
System.err.println("\nSeek failed in file " + file
+ " for position " + pos
@@ -76,11 +77,11 @@
/** Return a string from the specified position in the stream. */
public String getString(int pos) {
seek(pos);
- buffer.mark();
+ ((Buffer)buffer).mark();
int i;
for (i = 0; getByte() != 0; i++);
byte[] buf = new byte[i];
- buffer.reset(); // go back to the marked position
+ ((Buffer)buffer).reset(); // go back to the marked position
buffer.get(buf);
try {
return new String(buf, "UTF-8");
--- scala-2.10.7/src/msil/ch/epfl/lamp/compiler/msil/util/Table.java 2017-11-01 04:52:36.000000000 +0100
+++ scala-2.10.7/src/msil/ch/epfl/lamp/compiler/msil/util/Table.java 2019-11-28 17:34:43.543040457 +0100
@@ -9,6 +9,7 @@
import ch.epfl.lamp.compiler.msil.PEFile.Sig;
import java.io.PrintStream;
+import java.nio.Buffer;
import java.nio.ByteBuffer;
import java.nio.MappedByteBuffer;
@@ -327,7 +328,7 @@
protected final void seekRow(int row) {
assert row > 0 && row <= rows
: "Index " + row + " is not within the table with #rows = " + rows;
- buffer.position((row - 1)* rowSize());
+ ((Buffer)buffer).position((row - 1)* rowSize());
}
public final int currentRow() { return currentRow; }

View File

@ -1,27 +0,0 @@
--- scala-2.10.7/src/compiler/scala/tools/ant/antlib.xml 2023-09-28 18:35:06.147897841 +0200
+++ scala-2.10.7/src/compiler/scala/tools/ant/antlib.xml 2023-09-28 18:47:47.202949642 +0200
@@ -13,6 +13,4 @@
classname="scala.tools.ant.ScalaTool"/>
<taskdef name="same"
classname="scala.tools.ant.Same"/>
- <taskdef name="pack200"
- classname="scala.tools.ant.Pack200Task"/>
</antlib>
Only in scala-2.10.7/src/compiler/scala/tools/ant: Pack200Task.scala
--- scala-2.10.7/src/library/scala/collection/mutable/StringBuilder.scala 2023-09-28 18:35:06.187898108 +0200
+++ scala-2.10.7/src/library/scala/collection/mutable/StringBuilder.scala 2023-09-28 18:49:06.536809546 +0200
@@ -437,6 +437,14 @@
* @return the string assembled by this StringBuilder
*/
def result(): String = toString
+
+ /** Tests whether this builder is empty.
+ *
+ * This method is required for JDK15+ compatibility
+ *
+ * @return `true` if this builder contains nothing, `false` otherwise.
+ */
+ override def isEmpty: Boolean = underlying.length() == 0
}
object StringBuilder {

View File

@ -1,147 +0,0 @@
--- scala-2.10.7/src/compiler/scala/tools/cmd/gen/AnyVals.scala 2017-11-01 04:52:36.000000000 +0100
+++ scala-2.10.7/src/compiler/scala/tools/cmd/gen/AnyVals.scala 2019-11-28 13:37:03.940143371 +0100
@@ -183,7 +183,7 @@
}
def objectLines = {
val comp = if (isCardinal) cardinalCompanion else floatingCompanion
- (comp + allCompanions + "\n" + nonUnitCompanions).trim.lines.toList ++ implicitCoercions map interpolate
+ (comp + allCompanions + "\n" + nonUnitCompanions).trim.linesIterator.toList ++ implicitCoercions map interpolate
}
/** Makes a set of binary operations based on the given set of ops, args, and resultFn.
@@ -225,7 +225,7 @@
def representation = repr.map(", a " + _).getOrElse("")
def indent(s: String) = if (s == "") "" else " " + s
- def indentN(s: String) = s.lines map indent mkString "\n"
+ def indentN(s: String) = s.linesIterator map indent mkString "\n"
def boxUnboxImpls = Map(
"@boxImpl@" -> "%s.valueOf(x)".format(boxedName),
@@ -453,9 +453,9 @@
def ^(x: Boolean): Boolean
override def getClass(): Class[Boolean] = null
- """.trim.lines.toList
+ """.trim.linesIterator.toList
- def objectLines = interpolate(allCompanions + "\n" + nonUnitCompanions).lines.toList
+ def objectLines = interpolate(allCompanions + "\n" + nonUnitCompanions).linesIterator.toList
}
object U extends AnyValRep("Unit", None, "void") {
override def classDoc = """
@@ -468,7 +468,7 @@
def classLines = List(
"""override def getClass(): Class[Unit] = null"""
)
- def objectLines = interpolate(allCompanions).lines.toList
+ def objectLines = interpolate(allCompanions).linesIterator.toList
override def boxUnboxImpls = Map(
"@boxImpl@" -> "scala.runtime.BoxedUnit.UNIT",
--- scala-2.10.7/src/compiler/scala/tools/nsc/doc/base/CommentFactoryBase.scala 2017-11-01 04:52:36.000000000 +0100
+++ scala-2.10.7/src/compiler/scala/tools/nsc/doc/base/CommentFactoryBase.scala 2019-11-28 13:38:10.892515720 +0100
@@ -209,7 +209,7 @@
SafeTags.replaceAllIn(javadoclessComment, { mtch =>
java.util.regex.Matcher.quoteReplacement(safeTagMarker + mtch.matched + safeTagMarker)
})
- markedTagComment.lines.toList map (cleanLine(_))
+ markedTagComment.linesIterator.toList map (cleanLine(_))
}
/** Parses a comment (in the form of a list of lines) to a `Comment`
--- scala-2.10.7/src/compiler/scala/tools/nsc/interactive/tests/InteractiveTestSettings.scala 2017-11-01 04:52:36.000000000 +0100
+++ scala-2.10.7/src/compiler/scala/tools/nsc/interactive/tests/InteractiveTestSettings.scala 2019-11-28 13:39:14.716870692 +0100
@@ -58,7 +58,7 @@
val str = try File(optsFile).slurp() catch {
case e: java.io.IOException => ""
}
- str.lines.filter(!_.startsWith(CommentStartDelimiter)).mkString(" ")
+ str.linesIterator.filter(!_.startsWith(CommentStartDelimiter)).mkString(" ")
}
override protected def printClassPath(implicit reporter: Reporter) {
--- scala-2.10.7/src/compiler/scala/tools/nsc/interpreter/AbstractFileClassLoader.scala 2017-11-01 04:52:36.000000000 +0100
+++ scala-2.10.7/src/compiler/scala/tools/nsc/interpreter/AbstractFileClassLoader.scala 2019-11-28 13:57:53.339092518 +0100
@@ -85,7 +85,7 @@
defineClass(name, bytes, 0, bytes.length)
}
- private val packages = mutable.Map[String, Package]()
+ private val whatever = mutable.Map[String, Package]()
override def definePackage(name: String, specTitle: String, specVersion: String, specVendor: String, implTitle: String, implVersion: String, implVendor: String, sealBase: URL): Package = {
throw new UnsupportedOperationException()
@@ -94,7 +94,7 @@
override def getPackage(name: String): Package = {
findAbstractDir(name) match {
case null => super.getPackage(name)
- case file => packages.getOrElseUpdate(name, {
+ case file => whatever.getOrElseUpdate(name, {
val ctor = classOf[Package].getDeclaredConstructor(classOf[String], classOf[String], classOf[String], classOf[String], classOf[String], classOf[String], classOf[String], classOf[URL], classOf[ClassLoader])
ctor.setAccessible(true)
ctor.newInstance(name, null, null, null, null, null, null, null, this)
--- scala-2.10.7/src/compiler/scala/tools/nsc/interpreter/Formatting.scala 2017-11-01 04:52:36.000000000 +0100
+++ scala-2.10.7/src/compiler/scala/tools/nsc/interpreter/Formatting.scala 2019-11-28 13:43:44.162369415 +0100
@@ -25,7 +25,7 @@
def indentCode(code: String) = {
val indent = spaces(code)
stringFromWriter(str =>
- for (line <- code.lines) {
+ for (line <- code.linesIterator) {
str print indent
str print (line + "\n")
str.flush()
--- scala-2.10.7/src/compiler/scala/tools/nsc/interpreter/IMain.scala 2017-11-01 04:52:36.000000000 +0100
+++ scala-2.10.7/src/compiler/scala/tools/nsc/interpreter/IMain.scala 2019-11-28 13:47:12.735529430 +0100
@@ -454,7 +454,7 @@
// enclosing in braces it is constructed like "val x =\n5 // foo".
private def removeComments(line: String): String = {
showCodeIfDebugging(line) // as we're about to lose our // show
- line.lines map (s => s indexOf "//" match {
+ line.linesIterator map (s => s indexOf "//" match {
case -1 => s
case idx => s take idx
}) mkString "\n"
@@ -580,7 +580,7 @@
if (printResults && result != "")
printMessage(result stripSuffix "\n")
else if (isReplDebug) // show quiet-mode activity
- printMessage(result.trim.lines map ("[quiet] " + _) mkString "\n")
+ printMessage(result.trim.linesIterator map ("[quiet] " + _) mkString "\n")
// Book-keeping. Have to record synthetic requests too,
// as they may have been issued for information, e.g. :type
@@ -1161,8 +1161,8 @@
/** Secret bookcase entrance for repl debuggers: end the line
* with "// show" and see what's going on.
*/
- def isShow = code.lines exists (_.trim endsWith "// show")
- def isShowRaw = code.lines exists (_.trim endsWith "// raw")
+ def isShow = code.linesIterator exists (_.trim endsWith "// show")
+ def isShowRaw = code.linesIterator exists (_.trim endsWith "// raw")
// old style
beSilentDuring(parse(code)) foreach { ts =>
--- scala-2.10.7/src/compiler/scala/tools/nsc/interpreter/Power.scala 2017-11-01 04:52:36.000000000 +0100
+++ scala-2.10.7/src/compiler/scala/tools/nsc/interpreter/Power.scala 2019-11-28 13:46:26.087269973 +0100
@@ -150,7 +150,7 @@
// Then we import everything from $r.
intp interpret ("import " + intp.pathToTerm("$r") + "._")
// And whatever else there is to do.
- init.lines foreach (intp interpret _)
+ init.linesIterator foreach (intp interpret _)
}
def valsDescription: String = {
def to_str(m: Symbol) = "%12s %s".format(
--- scala-2.10.7/src/scalacheck/org/scalacheck/Pretty.scala 2017-11-01 04:52:36.000000000 +0100
+++ scala-2.10.7/src/scalacheck/org/scalacheck/Pretty.scala 2019-11-28 14:07:48.018400196 +0100
@@ -45,7 +45,7 @@
else s.substring(0, length) / break(lead+s.substring(length), lead, length)
def format(s: String, lead: String, trail: String, width: Int) =
- s.lines.map(l => break(lead+l+trail, " ", width)).mkString("\n")
+ s.linesIterator.map(l => break(lead+l+trail, " ", width)).mkString("\n")
implicit def prettyAny(t: Any) = Pretty { p => t.toString }

View File

@ -1,22 +0,0 @@
Index: scala-2.10.7/build.xml
===================================================================
--- scala-2.10.7.orig/build.xml
+++ scala-2.10.7/build.xml
@@ -758,7 +758,7 @@ TODO:
destdir="${@{project}-classes}"
classpath="${@{project}-classes}"
includes="**/*.java"
- target="1.6" source="1.5"
+ target="1.8" source="1.8"
compiler="javac1.6"
includeantruntime="false" >
<compilerarg line="${javac.args} @{args}"/>
@@ -794,7 +794,7 @@ TODO:
includes="**/*.java"
excludes="@{excludes}"
includeantruntime="false"
- target="1.6" source="1.5">
+ target="1.8" source="1.8">
<compilerarg line="${javac.args} @{args}"/>
<classpath refid="@{stage}.@{destproject}.build.path"/>
</javac>

BIN
scala-2.10.7.tar.xz (Stored with Git LFS)

Binary file not shown.

3
scala-2.13.12.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a73de0631dd67f632a62559643ea6da2e4172fe4a449b96872a4ea1c192d286f
size 7799882

3
scala-2.13.12.tgz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:afe7e6fb59e3c88457e99f7018730e52fba27c8d15e3d7154f72968206ca8719
size 24014528

View File

@ -0,0 +1,71 @@
<?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:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0">
<modelVersion>4.0.0</modelVersion>
<groupId>org.scala-lang</groupId>
<artifactId>scala-compiler</artifactId>
<packaging>jar</packaging>
<description>Compiler for the Scala Programming Language</description>
<url>https://www.scala-lang.org/</url>
<version>2.13.12</version>
<licenses>
<license>
<name>Apache-2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0</url>
<distribution>repo</distribution>
</license>
</licenses>
<name>Scala Compiler</name>
<inceptionYear>2002</inceptionYear>
<organization>
<name>LAMP/EPFL</name>
<url>https://lamp.epfl.ch/</url>
</organization>
<scm>
<connection>scm:git:git://github.com/scala/scala.git</connection>
<url>https://github.com/scala/scala</url>
</scm>
<issueManagement>
<system>GitHub</system>
<url>https://github.com/scala/bug/issues</url>
</issueManagement>
<developers>
<developer>
<id>lamp</id>
<name>LAMP/EPFL</name>
</developer>
<developer>
<id>Lightbend</id>
<name>Lightbend, Inc.</name>
</developer>
</developers>
<properties>
<info.apiURL>https://www.scala-lang.org/api/2.13.12/scala-compiler/</info.apiURL>
</properties>
<dependencies>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.13.12</version>
</dependency>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-reflect</artifactId>
<version>2.13.12</version>
</dependency>
<dependency>
<groupId>io.github.java-diff-utils</groupId>
<artifactId>java-diff-utils</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.jline</groupId>
<artifactId>jline</artifactId>
<version>3.22.0</version>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>5.13.0</version>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,4 @@
Automatic-Module-Name: scala.tools.nsc
Bundle-Name: Scala Compiler
Bundle-SymbolicName: org.scala-lang.scala-compiler
Export-Package: LICENSE,NOTICE,compiler.properties,interactive.properties,jquery.min.js,jquery.slim.min.js,repl.properties,replFrontend.properties,rootdoc.txt,scala-asm.properties,scala-buildcharacter.properties,scala.*,scaladoc.properties,templates

BIN
scala-compiler.jar (Stored with Git LFS)

Binary file not shown.

View File

@ -1,6 +0,0 @@
Bundle-Name: Scala Distribution
Bundle-SymbolicName: org.scala-ide.scala.library
Export-Package: scala.*
-reproducible: true
-noextraheaders: true
-snapshot: SNAPSHOT

44
scala-library-2.13.12.pom Normal file
View File

@ -0,0 +1,44 @@
<?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:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0">
<modelVersion>4.0.0</modelVersion>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<packaging>jar</packaging>
<description>Standard library for the Scala Programming Language</description>
<url>https://www.scala-lang.org/</url>
<version>2.13.12</version>
<licenses>
<license>
<name>Apache-2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0</url>
<distribution>repo</distribution>
</license>
</licenses>
<name>Scala Library</name>
<inceptionYear>2002</inceptionYear>
<organization>
<name>LAMP/EPFL</name>
<url>https://lamp.epfl.ch/</url>
</organization>
<scm>
<connection>scm:git:git://github.com/scala/scala.git</connection>
<url>https://github.com/scala/scala</url>
</scm>
<issueManagement>
<system>GitHub</system>
<url>https://github.com/scala/bug/issues</url>
</issueManagement>
<developers>
<developer>
<id>lamp</id>
<name>LAMP/EPFL</name>
</developer>
<developer>
<id>Lightbend</id>
<name>Lightbend, Inc.</name>
</developer>
</developers>
<properties>
<info.apiURL>https://www.scala-lang.org/api/2.13.12/</info.apiURL>
</properties>
</project>

View File

@ -0,0 +1,4 @@
Automatic-Module-Name: scala.library
Bundle-Name: Scala Standard Library
Bundle-SymbolicName: org.scala-lang.scala-library
Export-Package: LICENSE,NOTICE,library.properties,rootdoc.txt,scala.*

BIN
scala-library.jar (Stored with Git LFS)

Binary file not shown.

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="text/x-scala">
<sub-class-of type="text/plain"/>

51
scala-reflect-2.13.12.pom Normal file
View File

@ -0,0 +1,51 @@
<?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:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0">
<modelVersion>4.0.0</modelVersion>
<groupId>org.scala-lang</groupId>
<artifactId>scala-reflect</artifactId>
<packaging>jar</packaging>
<description>Reflection Library for the Scala Programming Language</description>
<url>https://www.scala-lang.org/</url>
<version>2.13.12</version>
<licenses>
<license>
<name>Apache-2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0</url>
<distribution>repo</distribution>
</license>
</licenses>
<name>Scala Reflect</name>
<inceptionYear>2002</inceptionYear>
<organization>
<name>LAMP/EPFL</name>
<url>https://lamp.epfl.ch/</url>
</organization>
<scm>
<connection>scm:git:git://github.com/scala/scala.git</connection>
<url>https://github.com/scala/scala</url>
</scm>
<issueManagement>
<system>GitHub</system>
<url>https://github.com/scala/bug/issues</url>
</issueManagement>
<developers>
<developer>
<id>lamp</id>
<name>LAMP/EPFL</name>
</developer>
<developer>
<id>Lightbend</id>
<name>Lightbend, Inc.</name>
</developer>
</developers>
<properties>
<info.apiURL>https://www.scala-lang.org/api/2.13.12/scala-reflect/</info.apiURL>
</properties>
<dependencies>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.13.12</version>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,4 @@
Automatic-Module-Name: scala.reflect
Bundle-Name: Scala Reflect
Bundle-SymbolicName: org.scala-lang.scala-reflect
Export-Package: LICENSE,NOTICE,reflect.properties,scala.*

BIN
scala-reflect.jar (Stored with Git LFS)

Binary file not shown.

25
scala-tooltemplate.patch Normal file
View File

@ -0,0 +1,25 @@
--- a/src/compiler/templates/tool-unix.tmpl
+++ b/src/compiler/templates/tool-unix.tmpl
@@ -12,15 +12,14 @@
# additional information regarding copyright ownership.
##############################################################################
+. /usr/share/java-utils/java-functions || exit 1
+
+set_javacmd || exit 3
+check_java_env || exit 4
+set_jvm_dirs || exit 5
+
findScalaHome () {
- # see scala/bug#2092 and scala/bug#5792
- local source="${BASH_SOURCE[0]}"
- while [ -h "$source" ] ; do
- local linked="$(readlink "$source")"
- local dir="$( cd -P "$(dirname "$source")" && cd -P "$(dirname "$linked")" && pwd )"
- source="$dir/$(basename "$linked")"
- done
- ( cd -P "$(dirname "$source")/.." && pwd )
+ echo "/usr/share/java/scala"
}
execCommand () {
[[ -n $SCALA_RUNNER_DEBUG ]] && echo "" && for arg in "$@@"; do echo "$arg"; done && echo "";

View File

@ -0,0 +1,36 @@
--- a/src/scaladoc/scala/tools/nsc/doc/html/HtmlFactory.scala
+++ b/src/scaladoc/scala/tools/nsc/doc/html/HtmlFactory.scala
@@ -46,33 +46,6 @@ class HtmlFactory(val universe: doc.Univ
"object_comp_trait.svg",
"object_comp_annotation.svg",
"abstract_type.svg",
- "lato-v11-latin-100.eot",
- "lato-v11-latin-100.ttf",
- "lato-v11-latin-100.woff",
- "lato-v11-latin-regular.eot",
- "lato-v11-latin-regular.ttf",
- "lato-v11-latin-regular.woff",
- "open-sans-v13-latin-regular.eot",
- "open-sans-v13-latin-regular.ttf",
- "open-sans-v13-latin-regular.woff",
- "open-sans-v13-latin-400i.eot",
- "open-sans-v13-latin-400i.ttf",
- "open-sans-v13-latin-400i.woff",
- "open-sans-v13-latin-700.eot",
- "open-sans-v13-latin-700.ttf",
- "open-sans-v13-latin-700.woff",
- "open-sans-v13-latin-700i.eot",
- "open-sans-v13-latin-700i.ttf",
- "open-sans-v13-latin-700i.woff",
- "source-code-pro-v6-latin-700.eot",
- "source-code-pro-v6-latin-700.ttf",
- "source-code-pro-v6-latin-700.woff",
- "source-code-pro-v6-latin-regular.eot",
- "source-code-pro-v6-latin-regular.ttf",
- "source-code-pro-v6-latin-regular.woff",
- "MaterialIcons-Regular.eot",
- "MaterialIcons-Regular.ttf",
- "MaterialIcons-Regular.woff",
"index.js",
"scheduler.js",

View File

@ -1 +0,0 @@
scala

View File

@ -1,2 +0,0 @@
89e57bc7ad4a1809864b637617456736fd7b8101
20171031

4
scala.keys Normal file
View File

@ -0,0 +1,4 @@
text/x-scala
description=Scala source code
category=Software Development/Source Code
can_be_executable=TRUE

2
scala.mime Normal file
View File

@ -0,0 +1,2 @@
text/x-scala
ext: scala

View File

@ -22,67 +22,79 @@
%else
%bcond_with bootstrap
%endif
%global fullversion %{version}
%global release_repository http://nexus.scala-tools.org/content/repositories/releases
%global snapshot_repository http://nexus.scala-tools.org/content/repositories/snapshots
%global jansi_jar %{_jnidir}/jansi/jansi.jar
%global jline2_jar %{_javadir}/jline/jline.jar
%global scaladir %{_datadir}/scala
%global base_name scala
%define __requires_exclude .*org\.apache\.ant.*
Version: 2.10.7
#!BcntSyncTag: scala
%global asmver 9.5.0
%global asmrel 1
# Version of jquery bundled in scaladoc
%global jqueryver 3.7.0
# Version of jline to use
%global jlinever 3.22.0
%global scaladir %{_datadir}/scala
# Used to generate OSGi data
%global date 20230901
%global seqnum 134811
%global commit 80514f73a6c7db32df9887d9a5ca9ae921e25118
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global osgiver %{version}.v%{date}-%{seqnum}-VFINAL-%{shortcommit}
%global majver %(cut -d. -f1-2 <<< %{version})
Version: 2.13.12
Release: 0
Summary: A hybrid functional/object-oriented language for the JVM
License: BSD-3-Clause AND CC0-1.0 AND SUSE-Public-Domain
Summary: Hybrid functional/object-oriented language for the JVM
# The project as a whole is Apache-2.0.
# The bundled ASM is BSD-3-Clause.
# The bundled jquery is MIT.
License: Apache-2.0 AND BSD-3-Clause AND MIT
Group: Development/Libraries/Java
URL: https://www.scala-lang.org/
Source0: %{base_name}-%{version}.tar.xz
Source1: scala-library-2.10.0-bnd.properties
# git log --pretty=format:"%H%n%ci" v%{version} | head -n 2 | sed -e 's/\-//g' -e 's/\s\+.*//g'
Source3: scala.gitinfo
Source23: scala-mime-info.xml
Source24: scala.ant.d
# Change the default classpath (SCALA_HOME)
Patch1: scala-2.10.0-tooltemplate.patch
# Use system jline2 instead of bundled jline2
Patch2: scala-2.10.3-use_system_jline.patch
# change org.scala-lang jline in org.sonatype.jline jline
Patch3: scala-2.10.3-compiler-pom.patch
# Patch Swing module for JDK 1.7
Patch4: scala-2.10.2-java7.patch
# fix incompatibilities with JLine 2.7
Patch6: scala-2.10-jline.patch
Patch8: scala-2.10.4-build_xml.patch
# Stop scaladoc from trying to bundle non-existent resources that were
# removed due to being in object form only, whithout sources
Patch9: scala-2.10.6-scaladoc-resources.patch
Patch10: scala-2.10.7-source8.patch
Patch11: scala-2.10.7-lines.patch
Patch12: scala-2.10.7-java8compat.patch
Patch13: scala-2.10.7-jdk15.patch
BuildRequires: ant
BuildRequires: ant-contrib
BuildRequires: ant-junit
# Source code
Source0: https://github.com/scala/scala/archive/v%{version}/%{base_name}-%{version}.tar.gz
# Scala-modified version of objectweb-asm
Source2: https://github.com/scala/scala-asm/archive/v%{asmver}-scala-%{asmrel}.tar.gz
# POMs from maven central
Source3: https://repo1.maven.org/maven2/org/scala-lang/scala-library/%{version}/scala-library-%{version}.pom
Source4: https://repo1.maven.org/maven2/org/scala-lang/scala-reflect/%{version}/scala-reflect-%{version}.pom
Source5: https://repo1.maven.org/maven2/org/scala-lang/scala-compiler/%{version}/scala-compiler-%{version}.pom
Source6: https://repo1.maven.org/maven2/org/scala-lang/scalap/%{version}/scalap-%{version}.pom
# Bundled version of jquery for scaladoc
Source7: https://code.jquery.com/jquery-%{jqueryver}.min.js
Source8: https://code.jquery.com/jquery-%{jqueryver}.slim.min.js
# OSGi properties for the reflect jar
Source9: scala-reflect-bnd.properties
# OSGi properties for the library jar
Source10: scala-library-bnd.properties
# OSGi properties for the compiler jar
Source11: scala-compiler-bnd.properties
# Properties file for scala-compiler
Source12: compiler.properties
# Properties file for scala-asm
Source13: asm.properties
# Properties file for scala-buildcharacter
Source14: buildcharacter.properties
# MIME information
Source15: scala.keys
Source16: scala.mime
Source17: scala-mime-info.xml
# Use the Fedora way of finding the JVM to invoke
Patch0: %{base_name}-tooltemplate.patch
# Unbundle fonts from scaladoc
Patch1: %{base_name}-unbundle-fonts.patch
BuildRequires: aqute-bnd
BuildRequires: graphviz
BuildRequires: java-devel >= 1.8
BuildRequires: javapackages-local
BuildRequires: jline >= 2.10
BuildRequires: junit
Requires: jansi
Requires: java-headless >= 1.8
# Require full javapackages-tools since scripts use
# /usr/share/java-utils/java-functions
BuildRequires: xmvn-install
BuildRequires: xmvn-resolve
BuildRequires: mvn(io.github.java-diff-utils:java-diff-utils)
BuildRequires: mvn(junit:junit)
BuildRequires: mvn(net.java.dev.jna:jna)
BuildRequires: mvn(org.jline:jline-builtins)
BuildRequires: mvn(org.jline:jline-terminal-jna)
BuildRequires: mvn(org.openjdk.jol:jol-core)
Requires: javapackages-tools
Requires: jline >= 2.10
%if %{with bootstrap}
Source100: scala-compiler.jar
Source101: scala-library.jar
Source102: scala-reflect.jar
%endif
Obsoletes: %{base_name}-swing < 2.13.4
BuildArch: noarch
%if %{with bootstrap}
Name: %{base_name}-bootstrap
# Binary form, used to bootstrap
Source1: https://downloads.lightbend.com/scala/%{version}/%{base_name}-%{version}.tgz
%else
Name: %{base_name}
BuildRequires: %{base_name}-bootstrap >= %{version}
@ -92,203 +104,309 @@ Obsoletes: %{base_name}-bootstrap
%description
Scala is a general purpose programming language designed to express
common programming patterns in a concise and type-safe way. It
integrates features of object-oriented and functional languages. It
is also interoperable with Java.
common programming patterns in a concise, elegant, and type-safe way.
It smoothly integrates features of object-oriented and functional
languages. It is also fully interoperable with Java.
%if %{without bootstrap}
%package apidoc
%package apidoc
Summary: Documentation for the Scala programming language
Group: Documentation/HTML
Obsoletes: %{base_name}-bootstrap-apidoc
BuildArch: noarch
Recommends: font(lato)
Recommends: font(opensans)
Recommends: font(sourcecodepro)
%description apidoc
Scala is a general purpose programming language for the JVM that blends
object-oriented and functional programming. This package provides
reference and API documentation for the Scala programming language.
%description apidoc
This package provides reference and API documentation for the Scala
programming language.
%endif
%package swing
Summary: The swing library for the Scala programming languages
Group: Development/Libraries/Java
Requires: %{name} = %{version}-%{release}
Requires: java >= 1.8
BuildArch: noarch
%if %{without bootstrap}
Obsoletes: %{base_name}-bootstrap-swing
%endif
%description swing
This package contains the swing library for the Scala programming languages.
This library is required to develop GUI-related applications in Scala.
The release provided by this package is not the original version from upstream
because this version is not compatible with JDK 1.7.
%package -n ant-%{name}
Summary: Development files for Scala
Group: Development/Libraries/Java
Requires: ant
Requires: scala = %{version}-%{release}
BuildArch: noarch
%if %{without bootstrap}
Obsoletes: ant-%{base_name}-bootstrap
%endif
%description -n ant-%{name}
Scala is a general purpose programming language for the JVM that blends
object-oriented and functional programming. This package enables support for
the Scala ant tasks.
%prep
%setup -q -n %{base_name}-%{version}
%patch1 -p1 -b .tool
%patch2 -p1 -b .sysjline
%patch3 -p1 -b .compiler-pom
%patch4 -p1 -b .jdk7
%patch6 -p1 -b .rvk
%patch8 -p1 -b .bld
%patch9 -p1 -b .scaladoc
%patch10 -p1 -b .source6
%patch11 -p1 -b .jdk11
%patch12 -p1 -b .java8compat
%patch13 -p1 -b .jdk15
echo "starr.version=2.10.4\nstarr.use.released=0" > starr.number
rm -f src/compiler/scala/tools/ant/Pack200Task.scala
pushd src
rm -rf jline
popd
sed -i '/is not supported by/d' build.xml
sed -i '/exec.*pull-binary-libs.sh/d' build.xml
%autosetup -n %{base_name}-%{version} -p1
%if %{with bootstrap}
%global do_bootstrap -DdoBootstrapBuild=yes
%global docs_target %{nil}
%else
%global do_bootstrap %{nil}
%global docs_target docs
%setup -q -n %{base_name}-%{version} -T -D -a 1
%endif
%setup -q -n %{base_name}-%{version} -T -D -a 2
pushd lib
%if %{without bootstrap}
rm -rf scala-compiler.jar
ln -s $(find-jar scala/scala-compiler) scala-compiler.jar
rm -rf scala-library.jar
ln -s $(find-jar scala/scala-library) scala-library.jar
rm -rf scala-reflect.jar
ln -s $(find-jar scala/scala-reflect) scala-reflect.jar
%else
cp %{SOURCE100} scala-compiler.jar
cp %{SOURCE101} scala-library.jar
cp %{SOURCE102} scala-reflect.jar
%endif
pushd ant
rm -rf ant.jar
rm -rf ant-contrib.jar
ln -s $(build-classpath ant.jar) ant.jar
ln -s $(build-classpath ant/ant-contrib) ant-contrib.jar
popd
popd
fixtimestamp() {
touch -r $1.orig $1
rm -f $1.orig
}
sed -i -e 's!@JLINE@!%{jline2_jar}!g' build.xml
# Unbundle fonts
# The CSS uses local() references, so these should not be needed anyway.
rm src/scaladoc/scala/tools/nsc/doc/html/resource/lib/{lato,MaterialIcons,open-sans,source-code-pro}*
echo echo $(head -n 1 %{SOURCE3}) > tools/get-scala-commit-sha
echo echo $(tail -n 1 %{SOURCE3}) > tools/get-scala-commit-date
chmod 755 tools/get-scala-*
# Fetch upstream's POMs
cp -p %{SOURCE3} src/library/pom.xml
cp -p %{SOURCE4} src/reflect/pom.xml
cp -p %{SOURCE5} src/compiler/pom.xml
cp -p %{SOURCE6} src/scalap/pom.xml
# Fedora has a split jline3, so split up the dependency
%pom_change_dep org.jline:jline org.jline:jline-terminal-jna src/compiler
%pom_add_dep org.jline:jline-reader:%{jlinever} src/compiler
%pom_add_dep org.jline:jline-style:%{jlinever} src/compiler
%pom_add_dep org.jline:jline-builtins:%{jlinever} src/compiler
%build
export LC_ALL=C.UTF-8
export ANT_OPTS="-Xms2048m -Xmx2048m %{do_bootstrap}"
%if %{with bootstrap}
PATH=$PATH:$PWD/%{base_name}-%{version}/bin
COMPJAR=$PWD/%{base_name}-%{version}/lib/scala-compiler.jar
%else
COMPJAR=%{_javadir}/scala/scala-compiler.jar
%endif
# Add the -verbose flag to scalac on zero architectures. The build
# is slow, OBS thinks it is stuck and kills it before it has chance
# to finish
%{ant} \
build %{docs_target} || exit 1
pushd build/pack/lib
mv scala-library.jar scala-library.jar.no
bnd wrap --properties %{SOURCE1} --output scala-library.jar \
--version "%{version}" scala-library.jar.no
popd
JLINE_JARS=$(build-classpath jna jline3/jline-terminal jline3/jline-terminal-jna \
jline3/jline-reader jline3/jline-style jline3/jline-builtins)
JAVAC_FLAGS="-g -parameters -source 8 -target 8"
SCALAC_FLAGS="-g:vars -release 8 -J-Xmx512M -J-Xms32M"
SCALADOC_FLAGS='-J-Xmx512M -J-Xms32M -doc-footer epfl -diagrams -implicits -groups -doc-version %{version} -doc-source-url https://github.com/scala/scala/blob/v%{version}/src/€{FILE_PATH_EXT}#L€{FILE_LINE}'
DIFFUTILS_JAR=$(build-classpath java-diff-utils)
mkdir -p target/{compiler,library,manual,reflect,scalap,tastytest,testkit}
mkdir -p target/html/{compiler,library,reflect}
# Build the bundled objectweb-asm
cd scala-asm-%{asmver}-scala-%{asmrel}
javac $JAVAC_FLAGS -d ../target/compiler $(find src -name \*.java)
cd -
# Build the library
cd src
javac $JAVAC_FLAGS -d ../target/library -cp $(build-classpath junit) \
$(find library -name \*.java)
scalac $SCALAC_FLAGS -d ../target/library -classpath ../target/library \
$(find library -name \*.scala | sort)
%if %{without bootstrap}
scaladoc $SCALADOC_FLAGS -doc-title 'Scala Standard Library' \
-sourcepath $PWD/library -doc-no-compile $PWD/library-aux \
-skip-packages scala.concurrent.impl \
-doc-root-content $PWD/library/rootdoc.txt \
$(find library -name \*.scala | sort)
mv scala ../target/html/library
%endif
# Build the reflection library
javac $JAVAC_FLAGS -d ../target/reflect $(find reflect -name \*.java)
scalac $SCALAC_FLAGS -d ../target/reflect -classpath ../target/reflect \
$(find reflect -name \*.scala | sort)
%if %{without bootstrap}
scaladoc $SCALADOC_FLAGS -doc-title 'Scala Reflection Library' \
-sourcepath $PWD/reflect \
-skip-packages scala.reflect.macros.internal:scala.reflect.internal:scala.reflect.io \
$(find reflect -name \*.scala | sort)
mv scala ../target/html/reflect
%endif
# Build the compiler
javac $JAVAC_FLAGS -d ../target/compiler -cp $COMPJAR \
$(find compiler -name \*.java)
scalac $SCALAC_FLAGS -d ../target/compiler \
-classpath ../target/compiler:$DIFFUTILS_JAR \
-feature $(find compiler -name \*.scala)
# Build the interactive compiler
scalac $SCALAC_FLAGS -d ../target/compiler -classpath ../target/compiler \
-feature $(find interactive -name \*.scala)
# Build the REPL
scalac $SCALAC_FLAGS -d ../target/compiler -classpath ../target/reflect \
-feature $(find repl -name \*.scala)
# Build the REPL frontend
javac $JAVAC_FLAGS -d ../target/compiler $(find repl-frontend -name \*.java)
scalac $SCALAC_FLAGS -d ../target/compiler \
-classpath ../target/compiler:$JLINE_JARS \
-feature $(find repl-frontend -name \*.scala)
%if %{without bootstrap}
scaladoc $SCALADOC_FLAGS -doc-title 'Scala Compiler' \
-sourcepath $PWD/compiler:$PWD/interactive:$PWD/repl:$PWD/repl-frontend \
-doc-root-content $PWD/compiler/rootdoc.txt \
-classpath $PWD/../target/library:$PWD/../target/reflect:$JLINE_JARS:$DIFFUTILS_JAR \
$(find compiler -name \*.scala) $(find interactive -name \*.scala) \
$(find repl -name \*.scala) $(find repl-frontend -name \*.scala)
mv scala ../target/html/compiler
%endif
# Build the documentation generator
# The order of the source files matters!
scalac $SCALAC_FLAGS -d ../target/compiler \
-feature $(find scaladoc -name \*.scala | sort)
# Build the bytecode parser
scalac $SCALAC_FLAGS -d ../target/scalap $(find scalap -name \*.scala)
# Build the testing tool
javac $JAVAC_FLAGS -d ../target/testkit \
-cp ../target/library:$(build-classpath junit) \
$(find testkit -name \*.java)
scalac $SCALAC_FLAGS -d ../target/testkit \
-classpath ../target/testkit:$(build-classpath junit) -feature \
$(find testkit -name \*.scala)
# TODO: build the parser testing tool. This cannot be done without some sbt
# classes. If we have sbt, then we don't need to build manually anyway.
# Build the integration tests
scalac $SCALAC_FLAGS -d ../target/tastytest -classpath $DIFFUTILS_JAR \
$(find tastytest -name \*.scala)
# Build the man page builder
scalac $SCALAC_FLAGS -d ../target/manual -classpath ../target/library \
$(find manual -name \*.scala)
cd -
# Copy source files into target before constructing jars
for dir in reflect library compiler scalap; do
cp -p LICENSE NOTICE target/$dir
done
cp -p src/library/rootdoc.txt target/library
cp -p src/compiler/rootdoc.txt target/compiler
cp -a src/compiler/templates target/compiler
mkdir -p target/compiler/scala/tools/nsc/doc/html/resource/lib/
cp -p src/scaladoc/scala/tools/nsc/doc/html/resource/lib/* target/compiler/scala/tools/nsc/doc/html/resource/lib/
cp -p src/scalap/decoder.properties target/scalap
# Build the compiler jar
cd target
mkdir -p compiler/META-INF/services
cat > compiler/META-INF/services/javax.script.ScriptEngineFactory << EOF
scala.tools.nsc.interpreter.shell.Scripted\$Factory
EOF
propdate=$(date -u -d %{date})
jnaver=$(rpm -q --qf="%{VERSION}" jna)
cp -p %{SOURCE7} compiler/jquery.min.js
cp -p %{SOURCE8} compiler/jquery.slim.min.js
sed -e "s/@@DATE@@/$propdate/;s/@@VER@@/%{version}/;s/@@OSGI@@/%{osgiver}/" \
%{SOURCE12} > compiler/compiler.properties
cp -p compiler/compiler.properties compiler/interactive.properties
cp -p compiler/compiler.properties compiler/repl.properties
cp -p compiler/compiler.properties compiler/replFrontend.properties
cp -p compiler/compiler.properties compiler/scaladoc.properties
sed -e "s/@@DATE@@/$propdate/;s/@@VER@@/%{version}/;s/@@MAJVER@@/%{majver}/" \
-e "s/@@ASMVER@@/%{asmver}/;s/@@ASMREL@@/%{asmrel}/" \
%{SOURCE13} > compiler/scala-asm.properties
sed -e "s/@@DATE@@/$propdate/;s/@@VER@@/%{version}/;s/@@OSGI@@/%{osgiver}/" \
-e "s/@@ASMVER@@/%{asmver}/;s/@@ASMREL@@/%{asmrel}/" \
-e "s/@@JLINEVER@@/%{jlinever}/;s/@@JNAVER@@/$jnaver/" \
%{SOURCE14} > compiler/scala-buildcharacter.properties
jar cf scala-compiler.jar.no -C compiler .
bnd wrap --properties %{SOURCE11} --output scala-compiler.jar \
--version "%{osgiver}" scala-compiler.jar.no
# Build the reflect jar
cp -p compiler/compiler.properties reflect/reflect.properties
jar cf scala-reflect.jar.no -C reflect .
bnd wrap --properties %{SOURCE9} --output scala-reflect.jar \
--version "%{osgiver}" scala-reflect.jar.no
# Build the library jar
cp -p compiler/compiler.properties library/library.properties
jar cf scala-library.jar.no -C library .
bnd wrap --properties %{SOURCE10} --output scala-library.jar \
--version "%{osgiver}" scala-library.jar.no
# Build the decoder jar
cp -p compiler/compiler.properties scalap/scalap.properties
jar cf scalap-%{version}.jar -C scalap .
cd -
# Build the man pages
mkdir -p html man/man1
cd src
scala -classpath ../target/manual:../target/scala-library.jar scala.tools.docutil.ManMaker 'fsc, scala, scalac, scaladoc, scalap' ../html ../man
cd -
%{mvn_file} ":{*}" %{base_name}/@1
# Prepare to install
%{mvn_artifact} src/library/pom.xml target/scala-library.jar
%{mvn_artifact} src/reflect/pom.xml target/scala-reflect.jar
%{mvn_artifact} src/compiler/pom.xml target/scala-compiler.jar
%{mvn_artifact} src/scalap/pom.xml target/scalap-%{version}.jar
%install
%mvn_install
install -d %{buildroot}%{_bindir}
for prog in scaladoc fsc scala scalac scalap; do
install -p -m 755 build/pack/bin/$prog %{buildroot}%{_bindir}
done
# Create the binary scripts
mkdir -p %{buildroot}%{_bindir}
CLASSPATH=$(build-classpath jna jline3/jline-terminal \
jline3/jline-terminal-jna jline3/jline-reader jline3/jline-style \
jline3/jline-builtins)\
:%{_javadir}/scala/scala-library.jar\
:%{_javadir}/scala/scala-reflect.jar\
:%{_javadir}/scala/scala-compiler.jar
JAVAFLAGS="-Xmx256M -Xms32M"
install -dm 0755 %{buildroot}%{scaladir}/lib
install -dm 0755 %{buildroot}%{_javadir}/%{base_name}
install -dm 0755 %{buildroot}%{_mavenpomdir}
sed -e "s,@classpath@,$CLASSPATH," \
-e "s,@javaflags@,$JAVAFLAGS," \
-e "s,@properties@ ,," \
-e "s,@class@,scala.tools.nsc.fsc.CompileClient," \
-e "s,@toolflags@ ,," \
-e "s,@@,@,g" \
src/compiler/templates/tool-unix.tmpl > %{buildroot}%{_bindir}/fsc
# XXX: add scala-partest when it works again
for libname in scala-compiler \
scala-library \
scala-reflect \
scalap \
scala-swing ; do
sed -i "s|@VERSION@|%{fullversion}|" src/build/maven/$libname-pom.xml
sed -i "s|@RELEASE_REPOSITORY@|%{release_repository}|" src/build/maven/$libname-pom.xml
sed -i "s|@SNAPSHOT_REPOSITORY@|%{snapshot_repository}|" src/build/maven/$libname-pom.xml
install -pm 0644 build/pack/lib/$libname.jar %{buildroot}%{_javadir}/%{base_name}/$libname.jar
ln -sf $(abs2rel %{_javadir}/%{base_name}/$libname.jar %{scaladir}/lib) %{buildroot}%{scaladir}/lib
# climbing-nemesis uses the old JPP naming convention
install -pm 0644 src/build/maven/$libname-pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{base_name}-$libname.pom
if [ $libname == scala-swing ]; then
%add_maven_depmap JPP.%{base_name}-$libname.pom %{base_name}/$libname.jar -f swing
else
%add_maven_depmap JPP.%{base_name}-$libname.pom %{base_name}/$libname.jar
fi
done
ln -s $(abs2rel %{jline2_jar} %{scaladir}/lib) %{buildroot}%{scaladir}/lib
ln -s $(abs2rel %{jansi_jar} %{scaladir}/lib) %{buildroot}%{scaladir}/lib
sed -e "s,@classpath@,$CLASSPATH," \
-e "s,@javaflags@,$JAVAFLAGS," \
-e "s,@properties@ ,," \
-e "s,@class@,scala.tools.nsc.MainGenericRunner," \
-e "s,@toolflags@ ,," \
-e "s,@@,@,g" \
src/compiler/templates/tool-unix.tmpl > %{buildroot}%{_bindir}/scala
%if %{without bootstrap}
install -d %{buildroot}%{_sysconfdir}/ant.d
install -p -m 644 %{SOURCE24} %{buildroot}%{_sysconfdir}/ant.d/scala
%endif
sed -e "s,@classpath@,$CLASSPATH," \
-e "s,@javaflags@,$JAVAFLAGS," \
-e "s,@properties@ ,," \
-e "s,@class@,scala.tools.nsc.Main," \
-e "s,@toolflags@ ,," \
-e "s,@@,@,g" \
src/compiler/templates/tool-unix.tmpl > %{buildroot}%{_bindir}/scalac
sed -e "s,@classpath@,$CLASSPATH," \
-e "s,@javaflags@,$JAVAFLAGS," \
-e "s,@properties@ ,," \
-e "s,@class@,scala.tools.nsc.ScalaDoc," \
-e "s,@toolflags@ ,," \
-e "s,@@,@,g" \
src/compiler/templates/tool-unix.tmpl > %{buildroot}%{_bindir}/scaladoc
sed -e "s,@classpath@,$CLASSPATH:$(build-classpath scala/scalap)," \
-e "s,@javaflags@,$JAVAFLAGS," \
-e "s,@properties@ ,," \
-e "s,@class@,scala.tools.scalap.Main," \
-e "s,@toolflags@ ,," \
-e "s,@@,@,g" \
src/compiler/templates/tool-unix.tmpl > %{buildroot}%{_bindir}/scalap
chmod 0755 %{buildroot}%{_bindir}/{fsc,scala*}
# Install the MIME info
#install -d %{buildroot}%{_datadir}/mime-info
#install -p -m 644 %{SOURCE15} %{SOURCE16} %{buildroot}%{_datadir}/mime-info/
install -d %{buildroot}%{_datadir}/mime/packages/
install -p -m 644 %{SOURCE23} %{buildroot}%{_datadir}/mime/packages/
install -p -m 644 %{SOURCE17} %{buildroot}%{_datadir}/mime/packages/
sed -i -e 's,@JAVADIR@,%{_javadir},g' -e 's,@DATADIR@,%{_datadir},g' %{buildroot}%{_bindir}/*
%if %{without bootstrap}
# Install the man pages
install -d %{buildroot}%{_mandir}/man1
install -p -m 644 build/scaladoc/manual/man/man1/* %{buildroot}%{_mandir}/man1
%endif
install -p -m 644 man/man1/* %{buildroot}%{_mandir}/man1
%files -f .mfiles
%{_bindir}/*
%dir %{_datadir}/%{base_name}
%dir %{_datadir}/%{base_name}/lib
%{_datadir}/%{base_name}/lib/*.jar
%exclude %{_datadir}/%{base_name}/lib/scala-swing.jar
%{_datadir}/mime/packages/*
%license docs/LICENSE
%if %{without bootstrap}
%{_mandir}/man1/*
%endif
%files swing -f .mfiles-swing
%license docs/LICENSE
%{_datadir}/%{base_name}/lib/scala-swing.jar
%{_bindir}/fsc
%{_bindir}/scala*
#{_datadir}/mime-info/scala.*
%{_datadir}/mime/packages/scala-mime-info.xml
%{_mandir}/man1/fsc.1%{?ext_man}
%{_mandir}/man1/scala*
%license LICENSE NOTICE doc/LICENSE.md doc/License.rtf
%if %{without bootstrap}
%files -n ant-%{name}
# Following is plain config because the ant task classpath could change from
# release to release
%config %{_sysconfdir}/ant.d/*
%license docs/LICENSE
%files apidoc
%doc build/scaladoc/library/*
%license docs/LICENSE
%doc target/html/*
%license LICENSE NOTICE doc/LICENSE.md doc/License.rtf
%endif
%changelog

48
scalap-2.13.12.pom Normal file
View File

@ -0,0 +1,48 @@
<?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:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0">
<modelVersion>4.0.0</modelVersion>
<groupId>org.scala-lang</groupId>
<artifactId>scalap</artifactId>
<packaging>jar</packaging>
<description>bytecode analysis tool</description>
<url>https://www.scala-lang.org/</url>
<version>2.13.12</version>
<licenses>
<license>
<name>Apache-2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0</url>
<distribution>repo</distribution>
</license>
</licenses>
<name>Scalap</name>
<inceptionYear>2002</inceptionYear>
<organization>
<name>LAMP/EPFL</name>
<url>https://lamp.epfl.ch/</url>
</organization>
<scm>
<connection>scm:git:git://github.com/scala/scala.git</connection>
<url>https://github.com/scala/scala</url>
</scm>
<issueManagement>
<system>GitHub</system>
<url>https://github.com/scala/bug/issues</url>
</issueManagement>
<developers>
<developer>
<id>lamp</id>
<name>LAMP/EPFL</name>
</developer>
<developer>
<id>Lightbend</id>
<name>Lightbend, Inc.</name>
</developer>
</developers>
<dependencies>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-compiler</artifactId>
<version>2.13.12</version>
</dependency>
</dependencies>
</project>

3
v9.5.0-scala-1.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ff7cf540b4e2543b6d219a426d6ff10435a4bbf570d879234a65a79035e403fd
size 261603