Compare commits

...

No commits in common. "c8s-stream-2.10" and "stream-scala-2.10-rhel-8.10.0" have entirely different histories.

30 changed files with 1364 additions and 6 deletions

35
.gitignore vendored
View File

@ -1,3 +1,32 @@
SOURCES/scala-2.10.3-bootstrap.tgz
SOURCES/scala-2.10.4.tgz
SOURCES/scala-2.10.6.tar.gz
fjbg-r17392.tar.bz2
msil-2.7.5.final.tar.bz2
scala-2.7.5.final-sources.tgz
scala-2.7.7.final-sources.tgz
/scala-2.8.1.final-sources.tgz
/scala-2.9.1.final-sources.tgz
/scala-sources-2.9.2.tgz
/scala-2.10.0-RC3.tgz
/scala-sources-2.10.0-RC5.tgz
/scala-sources-2.10.0.tgz
/scala-sources-2.10.1.tgz
/scala-2.10.2.tgz
/scala-2.10.2.tar.gz
/scala-2.10.2-bootstrap.tgz
/scala-.tgz
/scala--bootstrap.tgz
/scala-2.10.3.tgz
/scala-2.10.3-bootstrap.tgz
/scala-2.10.4.tgz
/scala-2.10.4-bootstrap.tgz
/v2.10.4.tar.gz
/scala-2.10.4-build_xml.patch
/scala.ant.d
/scala-bootstript.xml
/scala.gitinfo
/scala.keys
/scala-library-2.10.0-bnd.properties.in
/scala.mime
/scala-mime-info.xml
/sources
/v2.10.6.tar.gz
/scala-2.10.6.tar.gz

View File

@ -1,3 +1,3 @@
847973d0b034305d15ab21ae193e120e6d172c8b SOURCES/scala-2.10.3-bootstrap.tgz
970f779f155719838e81a267a7418a958fd4c13f SOURCES/scala-2.10.4.tgz
4ce90dfbe5b6fe8474cbad67932c39cee20ee6dc SOURCES/scala-2.10.6.tar.gz
4ce90dfbe5b6fe8474cbad67932c39cee20ee6dc scala-2.10.6.tar.gz
847973d0b034305d15ab21ae193e120e6d172c8b scala-2.10.3-bootstrap.tgz
970f779f155719838e81a267a7418a958fd4c13f scala-2.10.4.tgz

45
fsc.in Normal file
View File

@ -0,0 +1,45 @@
#!/bin/sh
##############################################################################
# Fast Scala compiler 2.6.1-RC2
##############################################################################
# (c) 2002-2007 LAMP/EPFL
#
# This is free software; see the distribution for copying conditions.
# There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
##############################################################################
[ -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
SCALA_HOME="@@DATADIR@@/scala"
# Constructing the extension classpath
EXTENSION_CLASSPATH=""
if [ -z "$EXTENSION_CLASSPATH" ] ; then
for ext in `ls -d "$SCALA_HOME"/lib/*` ; do
if [ -z "$EXTENSION_CLASSPATH" ] ; then
EXTENSION_CLASSPATH="$ext"
else
EXTENSION_CLASSPATH="$EXTENSION_CLASSPATH:$ext"
fi
done
fi
BOOT_CLASSPATH="`build-classpath scala/scala-library`"
if [ $? != 0 ]; then
echo $"Could not find the scala library jar." >&2
echo $"Please check that Java is configured properly." >&2
exit 6
fi
# Reminder: substitution ${JAVA_OPTS:=-Xmx256M -Xms16M} DO NOT work on Solaris
[ -n "$JAVA_OPTS" ] || JAVA_OPTS=""
$JAVACMD $JAVA_OPTS -Xbootclasspath/a:"$BOOT_CLASSPATH" -cp "$EXTENSION_CLASSPATH" -Dscala.home="$SCALA_HOME" -Denv.classpath="$CLASSPATH" -Denv.emacs="$EMACS" scala.tools.nsc.CompileClient "$@"

22
get-source.sh Executable file
View File

@ -0,0 +1,22 @@
#!/bin/sh
set -x
VER=$(fedpkg verrel | sed -e 's/^scala\-\(.*\)\-.*$/\1/')
FNS=scala-$VER
rm -rf $FNS/
git clone git://github.com/scala/scala.git $FNS
cd $FNS
git checkout v$VER
git log --pretty=format:"%H%n%ci" v$VER | head -n 2 | \
sed -e 's/\-//g' -e 's/\s\+.*//g' >../scala.gitinfo
cd ..
tar -zcf $FNS.tgz --exclude $FNS/.git $FNS/
cd $FNS
./pull-binary-libs.sh
rm -rf lib/jline.jar
tar -zcf ../$FNS-bootstrap.tgz --exclude .git lib/*.jar
cd ..
rm -rf $FNS/
fedpkg new-sources $FNS.tgz $FNS-bootstrap.tgz

22
scala-2.10.0-bnd.patch Normal file
View File

@ -0,0 +1,22 @@
diff -up scala-2.10.0-sources/build.xml.bndx scala-2.10.0-sources/build.xml
--- scala-2.10.0-sources/build.xml.bndx 2013-01-07 22:47:24.862355735 +0100
+++ scala-2.10.0-sources/build.xml 2013-01-07 22:55:35.930399829 +0100
@@ -280,9 +280,6 @@ INITIALISATION
</target>
<target name="init.extra.tasks" depends="init.maven.tasks" unless="init.extra.tasks.finished">
- <artifact:dependencies pathId="extra.tasks.classpath" filesetId="extra.tasks.fileset">
- <dependency groupId="biz.aQute" artifactId="bnd" version="1.50.0"/>
- </artifact:dependencies>
<!-- Pax runner -->
<property name="pax.exam.version" value="2.5.0"/>
<artifact:dependencies pathId="pax.exam.classpath" filesetId="pax.exam.fileset">
@@ -297,7 +294,7 @@ INITIALISATION
<dependency groupId="org.apache.felix" artifactId="org.apache.felix.framework" version="3.2.2"/>
</artifact:dependencies>
<!-- BND support -->
- <typedef resource="aQute/bnd/ant/taskdef.properties" classpathref="extra.tasks.classpath" />
+ <typedef resource="aQute/bnd/ant/taskdef.properties" classpath="/usr/share/java/aqute-bnd.jar" />
<property name="init.maven.tasks.finished" value="true" />
</target>

237
scala-2.10.0-java7.patch Normal file
View File

@ -0,0 +1,237 @@
diff -up scala-2.10.0-RC3-sources/build.xml.jdk7 scala-2.10.0-RC3-sources/build.xml
--- scala-2.10.0-RC3-sources/build.xml.jdk7 2012-12-08 16:10:10.948127863 +0100
+++ scala-2.10.0-RC3-sources/build.xml 2012-12-08 16:16:20.267162236 +0100
@@ -1087,7 +1087,7 @@ QUICK BUILD (QUICK)
</copy>
</target>
- <target name="quick.swing" depends="quick.lib" if="has.java6" unless="quick.lib.available">
+ <target name="quick.swing" depends="quick.lib" unless="quick.lib.available">
<scalacfork
destdir="${build-quick.dir}/classes/library"
compilerpathref="locker.classpath"
@@ -1493,7 +1493,7 @@ PACKED QUICK BUILD (PACK)
</jar>
</target>
- <target name="pack.swing" depends="pack.lib" if="has.java6">
+ <target name="pack.swing" depends="pack.lib">
<jar destfile="${build-pack.dir}/lib/scala-swing.jar">
<fileset dir="${build-quick.dir}/classes/library">
<include name="scala/swing/**"/>
@@ -1726,7 +1726,7 @@ OSGi Artifacts
<stopwatch name="osgi.bundle.timer" action="total"/>
</target>
- <target name="osgi.bundles.swing" depends="osgi.init" if="has.java6" unless="osgi.bundles.available">
+ <target name="osgi.bundles.swing" depends="osgi.init" unless="osgi.bundles.available">
<!-- TODO - only if JDK6 -->
<make-bundle name="scala-swing" version="${osgi.version.number}"/>
</target>
@@ -1869,7 +1869,7 @@ BOOTSTRAPPING BUILD (STRAP)
</copy>
</target>
- <target name="strap.swing" if="has.java6" unless="strap.lib.available" depends="strap.lib">
+ <target name="strap.swing" unless="strap.lib.available" depends="strap.lib">
<scalacfork
destdir="${build-strap.dir}/classes/library"
compilerpathref="pack.classpath"
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

@ -0,0 +1,135 @@
diff -up scala-2.10.0-RC5/build.xml.sysjline scala-2.10.0-RC5/build.xml
--- scala-2.10.0-RC5/build.xml.sysjline 2012-12-07 19:39:49.000000000 +0100
+++ scala-2.10.0-RC5/build.xml 2012-12-07 20:40:26.749580408 +0100
@@ -206,7 +206,7 @@ PROPERTIES
<property name="msil.starr.jar" value="${lib.dir}/msil.jar"/>
<property name="reflect.starr.jar" value="${lib.dir}/scala-reflect.jar"/>
<property name="comp.starr.jar" value="${lib.dir}/scala-compiler.jar"/>
- <property name="jline.jar" value="${lib.dir}/jline.jar"/>
+ <property name="jline.jar" value="@JLINE@"/>
<property name="ant.jar" value="${ant.home}/lib/ant.jar"/>
<property name="scalacheck.jar" value="${lib.dir}/scalacheck.jar"/>
@@ -259,7 +259,6 @@ INITIALISATION
<target name="init.jars" depends="init.jars.check" 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>
@@ -423,7 +422,7 @@ INITIALISATION
</echo>
</target>
- <target name="init" depends="init.jars, init.maven.jars, init.version.done, init.fail.bad.jdk, init.warn.jdk7, init.extra.tasks">
+ <target name="init" depends="init.maven.jars, init.version.done, init.fail.bad.jdk, init.warn.jdk7, init.extra.tasks">
<property name="scalac.args.always" value="-Yreify-copypaste" />
<!-- scalac.args.optimise is selectively overridden in certain antcall tasks. -->
<property name="scalac.args.optimise" value=""/>
@@ -1535,7 +1534,6 @@ PACKED QUICK BUILD (PACK)
<fileset dir="${build-asm.dir}/classes"/>
<fileset dir="${build-libs.dir}/classes/fjbg"/>
</jar>
- <copy file="${jline.jar}" toDir="${build-pack.dir}/lib"/>
<copy todir="${build-pack.dir}/lib">
<fileset dir="${lib-extra.dir}">
<include name="**/*.jar"/>
diff -up scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/ConsoleReaderHelper.scala.sysjline scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/ConsoleReaderHelper.scala
--- scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/ConsoleReaderHelper.scala.sysjline 2012-12-07 19:39:50.000000000 +0100
+++ scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/ConsoleReaderHelper.scala 2012-12-07 19:51:05.782792214 +0100
@@ -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.0-RC5/src/compiler/scala/tools/nsc/interpreter/Delimited.scala.sysjline scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/Delimited.scala
--- scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/Delimited.scala.sysjline 2012-12-07 19:39:50.000000000 +0100
+++ scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/Delimited.scala 2012-12-07 19:51:05.782792214 +0100
@@ -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.0-RC5/src/compiler/scala/tools/nsc/interpreter/JLineCompletion.scala.sysjline scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/JLineCompletion.scala
--- scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/JLineCompletion.scala.sysjline 2012-12-07 19:39:50.000000000 +0100
+++ scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/JLineCompletion.scala 2012-12-07 19:51:05.783792215 +0100
@@ -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.0-RC5/src/compiler/scala/tools/nsc/interpreter/JLineReader.scala.sysjline scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/JLineReader.scala
--- scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/JLineReader.scala.sysjline 2012-12-07 19:39:50.000000000 +0100
+++ scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/JLineReader.scala 2012-12-07 19:51:05.783792215 +0100
@@ -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._
diff -up scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/Parsed.scala.sysjline scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/Parsed.scala
--- scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/Parsed.scala.sysjline 2012-12-07 19:39:50.000000000 +0100
+++ scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/Parsed.scala 2012-12-07 19:51:05.783792215 +0100
@@ -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.0-RC5/src/compiler/scala/tools/nsc/interpreter/ReplProps.scala.sysjline scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/ReplProps.scala
--- scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/ReplProps.scala.sysjline 2012-12-07 19:39:50.000000000 +0100
+++ scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/ReplProps.scala 2012-12-07 19:51:05.783792215 +0100
@@ -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.0-RC5/src/compiler/scala/tools/nsc/interpreter/session/package.scala.sysjline scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/session/package.scala
--- scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/session/package.scala.sysjline 2012-12-07 19:39:49.000000000 +0100
+++ scala-2.10.0-RC5/src/compiler/scala/tools/nsc/interpreter/session/package.scala 2012-12-07 19:51:05.784792216 +0100
@@ -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
}

28
scala-2.10.1-bc.patch Normal file
View File

@ -0,0 +1,28 @@
diff -u orig/bincompat-backward.whitelist.conf new/bincompat-backward.whitelist.conf
--- orig/bincompat-backward.whitelist.conf 2013-09-11 12:59:13.684010082 -0500
+++ new/bincompat-backward.whitelist.conf 2013-09-11 12:59:08.751002599 -0500
@@ -1,6 +1,10 @@
filter {
problems=[
# Scala library
+ {
+ matchName="scala.xml.dtd.ElementValidator.scala$xml$dtd$ElementValidator$$find$2"
+ problemName=IncompatibleMethTypeProblem
+ },
{
# can only be called from Stream::distinct, which cannot itself be inlined, so distinct is the only feasible call-site
matchName="scala.collection.immutable.Stream.scala$collection$immutable$Stream$$loop$4"
diff -u orig/bincompat-forward.whitelist.conf new/bincompat-forward.whitelist.conf
--- orig/bincompat-forward.whitelist.conf 2013-09-11 12:59:13.684010082 -0500
+++ new/bincompat-forward.whitelist.conf 2013-09-11 12:59:08.751002599 -0500
@@ -5,6 +5,10 @@
# matchName="scala.collection.mutable.MutableList.tailImpl"
# problemName=MissingMethodProblem
# },
+ {
+ matchName="scala.xml.dtd.ElementValidator.scala$xml$dtd$ElementValidator$$find$2"
+ problemName=IncompatibleMethTypeProblem
+ },
{
# can only be called from Stream::distinct, which cannot itself be inlined, so distinct is the only feasible call-site
matchName="scala.collection.immutable.Stream.scala$collection$immutable$Stream$$loop$6"

View File

@ -0,0 +1,635 @@
diff -up scala-2.10.3/build.xml.bld scala-2.10.3/build.xml
--- scala-2.10.3/build.xml.bld 2013-10-15 19:53:47.000000000 +0200
+++ scala-2.10.3/build.xml 2014-03-04 06:56:08.811763572 +0100
@@ -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 @@ TODO:
<!-- ===========================================================================
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 @@ TODO:
<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">
@@ -95,8 +95,6 @@ TODO:
<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 +120,8 @@ TODO:
<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="/usr/share/java/jline/jline.jar"/>
+ <property name="ant.jar" value="/usr/share/java/ant.jar"/>
<property name="scalacheck.jar" value="${lib.dir}/scalacheck.jar"/>
<!-- Sets location of build folders -->
@@ -182,86 +180,62 @@ TODO:
<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" />
-
- <!-- 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.5.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}"/>
- <dependency groupId="org.ops4j.pax.url" artifactId="pax-url-aether" version="1.4.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" />
-
- <!-- 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">
- <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>
- <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>
+ <taskdef resource="net/sf/antcontrib/antlib.xml" classpath="/usr/share/java/ant/ant-contrib.jar"/>
+
+ <if><isset property="doBootstrapBuild"></isset>
+ <then>
+ <path id="scalabootstrap.classpath">
+ <fileset dir="lib">
+ <include name="scala*.jar"/>
+ </fileset>
+ </path>
+ </then>
+ <else>
+
+ <path id="scalabootstrap.classpath">
+ <fileset dir="/usr/share/scala/lib/">
+ <include name="scala*.jar"/>
+ </fileset>
+ </path>
+ </else>
</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"/>
+ <taskdef name="pack200"
+ classpathref="scalabootstrap.classpath"
+ classname="scala.tools.ant.Pack200Task"/>
+
+ <typedef resource="aQute/bnd/ant/taskdef.properties" classpath="/usr/share/java/aqute-bnd.jar" />
+
+ <if><not><isset property="maven-deps-done"></isset></not><then>
<property name="maven-deps-done" value="yep!"/>
</then></if>
+
<!-- NOTE: ant properties are write-once: second writes are silently discarded; the logic below relies on this -->
<!-- Compute defaults (i.e., if not specified on command-line) for OSGi/maven version suffixes.
@@ -332,7 +306,7 @@ TODO:
<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">
@@ -450,6 +424,13 @@ TODO:
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"/>
@@ -560,13 +541,6 @@ TODO:
<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">
@@ -589,12 +563,10 @@ TODO:
<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>
@@ -631,18 +603,6 @@ TODO:
<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"/>
@@ -717,10 +677,6 @@ TODO:
<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"/>
@@ -749,7 +705,7 @@ TODO:
<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>
<!-- ===========================================================================
@@ -795,7 +751,8 @@ TODO:
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>
@@ -828,6 +785,7 @@ TODO:
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"/>
@@ -1167,10 +1125,7 @@ TODO:
<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">
@@ -1206,7 +1161,7 @@ TODO:
</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>
@@ -1221,7 +1176,7 @@ TODO:
<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">
@@ -1251,36 +1206,16 @@ TODO:
<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"/>
@@ -1315,7 +1250,7 @@ TODO:
<!-- ===========================================================================
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 -->
@@ -1362,7 +1297,6 @@ TODO:
</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}" />
@@ -1370,10 +1304,7 @@ TODO:
<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>
@@ -1503,81 +1434,6 @@ TODO:
<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
============================================================================ -->
@@ -1588,69 +1444,25 @@ TODO:
<!-- Obtain mima -->
<mkdir dir="${bc-build.dir}"/>
<!-- Pull down MIMA -->
- <artifact:dependencies pathId="mima.classpath">
- <dependency groupId="com.typesafe" artifactId="mima-reporter_2.9.2" version="0.1.5"/>
- </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 -->
<condition property="scaladoc.git.commit" value="v${maven.version.number}">
@@ -1672,6 +1484,7 @@ TODO:
</target>
<target name="docs.lib" depends="docs.start">
+
<staged-uptodate stage="docs" project="library">
<check><srcfiles dir="${src.dir}">
<include name="library/**"/>
@@ -1729,25 +1542,12 @@ TODO:
</staged-docs>
</target>
- <target name="docs.jline" depends="docs.start">
- <staged-docs project="jline" dir="jline/src/main/java" title="Scala JLine">
- <include name="**/*.scala"/>
- <include name="**/*.java"/>
- </staged-docs>
- </target>
-
<target name="docs.scalap" depends="docs.start">
<staged-docs project="scalap" title="Scalap">
<include name="**/*.scala"/>
</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"/>
@@ -1791,13 +1591,13 @@ TODO:
</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}"/>
@@ -1820,19 +1620,11 @@ TODO:
<mkdir dir="${dist.dir}/lib"/>
<copy toDir="${dist.dir}/lib">
<fileset dir="${build-pack.dir}/lib">
- <include name="jline.jar"/>
<include name="scalacheck.jar"/>
- <include name="scala-partest.jar"/>
<include name="scalap.jar"/>
</fileset>
</copy>
- <copy todir="${dist.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>
-
<mkdir dir="${dist.dir}/bin"/>
<!-- TODO - Stop being inefficient and don't copy OSGi bundles overtop other jars. -->
<copy-bundle name="scala-library"/>
@@ -2018,10 +1810,9 @@ TODO:
</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.">
@@ -2038,7 +1829,6 @@ TODO:
<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!">

66
scala-tooltemplate.patch Normal file
View File

@ -0,0 +1,66 @@
diff -ur ../scala-2.7.4.final-sources.orig/src/compiler/scala/tools/ant/templates/tool-unix.tmpl ./src/compiler/scala/tools/ant/templates/tool-unix.tmpl
--- ../scala-2.7.4.final-sources.orig/src/compiler/scala/tools/ant/templates/tool-unix.tmpl 2009-03-16 05:55:45.000000000 -0600
+++ ./src/compiler/scala/tools/ant/templates/tool-unix.tmpl 2009-05-18 21:34:52.000000000 -0600
@@ -8,31 +8,14 @@
# PARTICULAR PURPOSE.
##############################################################################
-cygwin=false;
-case "`uname`" in
- CYGWIN*) cygwin=true ;;
-esac
-
-# Finding the root folder for this Scala distribution
-SOURCE=$0;
-SCRIPT=`basename "$SOURCE"`;
-while [ -h "$SOURCE" ]; do
- SCRIPT=`basename "$SOURCE"`;
- LOOKUP=`ls -ld "$SOURCE"`;
- TARGET=`expr "$LOOKUP" : '.*-> \(.*\)$'`;
- if expr "${TARGET:-.}/" : '/.*/$' > /dev/null; then
- SOURCE=${TARGET:-.};
- else
- SOURCE=`dirname "$SOURCE"`/${TARGET:-.};
- fi;
-done;
-SCALA_HOME=`dirname "$SOURCE"`/..;
-SCALA_HOME=`cd "$SCALA_HOME"; pwd`;
-# Remove spaces from SCALA_HOME on windows
-if $cygwin; then
- SCALA_HOME=`cygpath --windows --short-name "$SCALA_HOME"`
- SCALA_HOME=`cygpath --unix "$SCALA_HOME"`
-fi
+[ -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
+
+SCALA_HOME="@@DATADIR@@/scala"
# Constructing the extension classpath
TOOL_CLASSPATH="@classpath@"
@@ -46,21 +29,8 @@
done
fi
-if $cygwin; then
- if [ "$OS" = "Windows_NT" ] && cygpath -m .>/dev/null 2>/dev/null ; then
- format=mixed
- else
- format=windows
- fi
- SCALA_HOME=`cygpath --$format "$SCALA_HOME"`
- TOOL_CLASSPATH=`cygpath --path --$format "$TOOL_CLASSPATH"`
-fi
# Reminder: substitution ${JAVA_OPTS:=-Xmx256M -Xms16M} DO NOT work on Solaris
[ -n "$JAVA_OPTS" ] || JAVA_OPTS="@javaflags@"
-if [ -z "$JAVACMD" -a -n "$JAVA_HOME" -a -x "$JAVA_HOME/bin/java" ]; then
- JAVACMD="$JAVA_HOME/bin/java"
-fi
-
-exec "${JAVACMD:=java}" $JAVA_OPTS -cp "$TOOL_CLASSPATH" -Dscala.home="$SCALA_HOME" -Denv.classpath="$CLASSPATH" -Denv.emacs="$EMACS" @properties@ @class@ @toolflags@ "$@@"
+exec "${JAVACMD}" $JAVA_OPTS -cp "$TOOL_CLASSPATH" -Dscala.home="$SCALA_HOME" -Denv.classpath="$CLASSPATH" -Denv.emacs="$EMACS" @properties@ @class@ @toolflags@ "$@@"

46
scala.in Normal file
View File

@ -0,0 +1,46 @@
#!/bin/sh
##############################################################################
# Scala code runner 2.6.1-RC2
##############################################################################
# (c) 2002-2007 LAMP/EPFL
#
# This is free software; see the distribution for copying conditions.
# There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
##############################################################################
[ -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
SCALA_HOME="@@DATADIR@@/scala"
# Constructing the extension classpath
EXTENSION_CLASSPATH=""
if [ -z "$EXTENSION_CLASSPATH" ] ; then
for ext in `ls -d "$SCALA_HOME"/lib/*` ; do
if [ -z "$EXTENSION_CLASSPATH" ] ; then
EXTENSION_CLASSPATH="$ext"
else
EXTENSION_CLASSPATH="$EXTENSION_CLASSPATH:$ext"
fi
done
fi
EXTENSION_CLASSPATH="$EXTENSION_CLASSPATH:`build-classpath jline`"
BOOT_CLASSPATH="`build-classpath scala/scala-library jline`"
if [ $? != 0 ]; then
echo $"Could not find the scala library jar." >&2
echo $"Please check that Java is configured properly." >&2
exit 6
fi
# Reminder: substitution ${JAVA_OPTS:=-Xmx256M -Xms16M} DO NOT work on Solaris
[ -n "$JAVA_OPTS" ] || JAVA_OPTS="-Xmx256M -Xms16M"
$JAVACMD $JAVA_OPTS -Xbootclasspath/a:"$BOOT_CLASSPATH" -cp "$EXTENSION_CLASSPATH" -Dscala.home="$SCALA_HOME" -Denv.classpath="$CLASSPATH" -Denv.emacs="$EMACS" scala.tools.nsc.MainGenericRunner "$@"

45
scalac.in Normal file
View File

@ -0,0 +1,45 @@
#!/bin/sh
##############################################################################
# Scala compiler 2.6.1-RC2
##############################################################################
# (c) 2002-2007 LAMP/EPFL
#
# This is free software; see the distribution for copying conditions.
# There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
##############################################################################
[ -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
SCALA_HOME="@@DATADIR@@/scala"
# Constructing the extension classpath
EXTENSION_CLASSPATH=""
if [ -z "$EXTENSION_CLASSPATH" ] ; then
for ext in `ls -d "$SCALA_HOME"/lib/*` ; do
if [ -z "$EXTENSION_CLASSPATH" ] ; then
EXTENSION_CLASSPATH="$ext"
else
EXTENSION_CLASSPATH="$EXTENSION_CLASSPATH:$ext"
fi
done
fi
BOOT_CLASSPATH="`build-classpath scala/scala-library jline`"
if [ $? != 0 ]; then
echo $"Could not find the scala library jar." >&2
echo $"Please check that Java is configured properly." >&2
exit 6
fi
# Reminder: substitution ${JAVA_OPTS:=-Xmx256M -Xms16M} DO NOT work on Solaris
[ -n "$JAVA_OPTS" ] || JAVA_OPTS="-Xmx256M -Xms16M"
$JAVACMD $JAVA_OPTS -Xbootclasspath/a:"$BOOT_CLASSPATH" -cp "$EXTENSION_CLASSPATH" -Dscala.home="$SCALA_HOME" -Denv.classpath="$CLASSPATH" -Denv.emacs="$EMACS" scala.tools.nsc.Main "$@"

45
scaladoc.in Normal file
View File

@ -0,0 +1,45 @@
#!/bin/sh
##############################################################################
# Scala doc generator 2.6.1-RC2
##############################################################################
# (c) 2002-2007 LAMP/EPFL
#
# This is free software; see the distribution for copying conditions.
# There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
##############################################################################
[ -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
SCALA_HOME="@@DATADIR@@/scala"
# Constructing the extension classpath
EXTENSION_CLASSPATH=""
if [ -z "$EXTENSION_CLASSPATH" ] ; then
for ext in `ls -d "$SCALA_HOME"/lib/*` ; do
if [ -z "$EXTENSION_CLASSPATH" ] ; then
EXTENSION_CLASSPATH="$ext"
else
EXTENSION_CLASSPATH="$EXTENSION_CLASSPATH:$ext"
fi
done
fi
BOOT_CLASSPATH="`build-classpath scala/scala-library`"
if [ $? != 0 ]; then
echo $"Could not find the scala library jar." >&2
echo $"Please check that Java is configured properly." >&2
exit 6
fi
# Reminder: substitution ${JAVA_OPTS:=-Xmx256M -Xms16M} DO NOT work on Solaris
[ -n "$JAVA_OPTS" ] || JAVA_OPTS="-Xmx256M -Xms16M"
$JAVACMD $JAVA_OPTS -Xbootclasspath/a:"$BOOT_CLASSPATH" -cp "$EXTENSION_CLASSPATH" -Dscala.home="$SCALA_HOME" -Denv.classpath="$CLASSPATH" -Denv.emacs="$EMACS" scala.tools.nsc.Main -Ydoc "$@"

3
sources Normal file
View File

@ -0,0 +1,3 @@
SHA512 (scala-2.10.6.tar.gz) = 2023caedb8d497fd1effd81da54620f6dd44b17ba874016cf43f822965864c68243a436098106384f6daf420bca6301511d8a8843c3dc2ed834cef248e111768
SHA512 (scala-2.10.3-bootstrap.tgz) = 3f48680ed578454852bb50f1132eaed7335e83a66a8a1991eeca30d23d72fccb9ee7161e504b1a68d3ae208853213e9507f50134f89b1074cc817436f0e9abfd
SHA512 (scala-2.10.4.tgz) = 06ad6d70e12a0e4b65b04e847212b4622b1a9c96b009b0f519d054f0af347231acd52c1c107108ff1fab93807cb12aa6e51a67f60118f5e43851833613694ecf