summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build.xml6
-rw-r--r--src/build/four.xml32
-rw-r--r--src/build/msil.xml38
-rw-r--r--src/dotnet-library/scala/List.scala2
4 files changed, 60 insertions, 18 deletions
diff --git a/build.xml b/build.xml
index 329648267b..e3fc55e28e 100644
--- a/build.xml
+++ b/build.xml
@@ -1015,11 +1015,13 @@ FORWARDED TARGETS FOR PACKAGING
<ant antfile="${src.dir}/build/pack.xml" target="pack-all.done" inheritall="yes" inheritrefs="yes"/>
</target>
- <target name="fourdistpack" depends="fourdist">
+ <target name="fourdistpack" depends="pack.done">
+ <ant antfile="${src.dir}/build/four.xml" target="four-dist.done" inheritall="yes" inheritrefs="yes"/>
<ant antfile="${src.dir}/build/pack.xml" target="fourpack-all.done" inheritall="yes" inheritrefs="yes"/>
</target>
- <target name="msildistpack" depends="msildist">
+ <target name="msildistpack" depends="pack.done">
+ <ant antfile="${src.dir}/build/msil.xml" target="msil-dist.done" inheritall="yes" inheritrefs="yes"/>
<ant antfile="${src.dir}/build/pack.xml" target="msilpack-all.done" inheritall="yes" inheritrefs="yes"/>
</target>
diff --git a/src/build/four.xml b/src/build/four.xml
index 6e31124203..6dd92f34f4 100644
--- a/src/build/four.xml
+++ b/src/build/four.xml
@@ -21,17 +21,37 @@ PROPERTIES
<!-- ===========================================================================
JAVA 1.4 LIBRARY AND COMPILER BUILD (FOUR)
============================================================================ -->
-
+
<target name="four.start"/>
-
+
<target name="four.src" depends="four.start">
+ <!-- simple sync & copy overwrite is not very nice, because overwritten files
+ will then have a new timestamp, and be recompiled -->
<mkdir dir="${build-four-src.dir}"/>
- <sync todir="${build-four-src.dir}">
- <fileset dir="${src.dir}/library"/>
- </sync>
<copy todir="${build-four-src.dir}" overwrite="true">
- <fileset dir="${src.dir}/jvm14-library"/>
+ <fileset dir="${src.dir}/library">
+ <and>
+ <present present="srconly" targetdir="${src.dir}/jvm14-library"/>
+ <different targetdir="${build-four-src.dir}" ignoreFileTimes="true"/>
+ </and>
+ </fileset>
+ <fileset dir="${src.dir}/jvm14-library">
+ <different targetdir="${build-four-src.dir}" ignoreFileTimes="true"/>
+ </fileset>
</copy>
+ <delete verbose="true">
+ <difference>
+ <fileset dir="${build-four-src.dir}"/>
+ <union>
+ <fileset dir="${build-four-src.dir}">
+ <present targetdir="${src.dir}/jvm14-library"/>
+ </fileset>
+ <fileset dir="${build-four-src.dir}">
+ <present targetdir="${src.dir}/library"/>
+ </fileset>
+ </union>
+ </difference>
+ </delete>
</target>
<target name="four.lib" depends="four.src">
diff --git a/src/build/msil.xml b/src/build/msil.xml
index 9167908304..a5e179e57b 100644
--- a/src/build/msil.xml
+++ b/src/build/msil.xml
@@ -6,11 +6,12 @@
SuperSabbus extension for the MSIL library targeted for the dotnet framework. THIS FILE IS NOT STAND-ALONE AND SHOULD ONLY BE USED THROUGH ENTRY POINTS IN SUPERSABBUS.
</description>
- <!-- TODO: run test suite (or at least a part of it) on .NET -->
- <!-- TODO: generate sbaz package scala-msil -->
<!-- TODO: test / make it work on Windows (use <ilasm/> task) -->
- <!-- TODO: (?) generate the runner scripts with scala.tools.ant.ScalaTool -->
+ <!-- TODO: for separate compilation: make sure only files that have been changed
+ since last run are re-compiled -->
+ <!-- TODO: run test suite (or at least a part of it) on .NET -->
<!-- TODO: generate scaladoc of .NET library -->
+ <!-- TODO: (?) generate the runner scripts with scala.tools.ant.ScalaTool -->
<!-- ===========================================================================
PROPERTIES
@@ -95,13 +96,33 @@ MSIL BUILD
<target name="msil.start" depends="msil.init"/>
<target name="msil.src" depends="msil.start">
+ <!-- simple sync & copy overwrite is not very nice, because overwritten files
+ will then have a new timestamp, and be recompiled -->
<mkdir dir="${build-msil-src.dir}"/>
- <sync todir="${build-msil-src.dir}">
- <fileset dir="${src.dir}/library"/>
- </sync>
<copy todir="${build-msil-src.dir}" overwrite="true">
- <fileset dir="${src.dir}/dotnet-library"/>
+ <fileset dir="${src.dir}/library">
+ <and>
+ <present present="srconly" targetdir="${src.dir}/dotnet-library"/>
+ <different targetdir="${build-msil-src.dir}" ignoreFileTimes="true"/>
+ </and>
+ </fileset>
+ <fileset dir="${src.dir}/dotnet-library">
+ <different targetdir="${build-msil-src.dir}" ignoreFileTimes="true"/>
+ </fileset>
</copy>
+ <delete verbose="true">
+ <difference>
+ <fileset dir="${build-msil-src.dir}"/>
+ <union>
+ <fileset dir="${build-msil-src.dir}">
+ <present targetdir="${src.dir}/dotnet-library"/>
+ </fileset>
+ <fileset dir="${build-msil-src.dir}">
+ <present targetdir="${src.dir}/library"/>
+ </fileset>
+ </union>
+ </difference>
+ </delete>
</target>
<target name="msil.lib" depends="msil.src">
@@ -113,8 +134,7 @@ MSIL BUILD
srcdir="${build-msil-src.dir}"
destdir="${build-msil.dir}/library"
target="msil"
- assemname="predef" assemrefs="${lib.dir}"
- failonerror="false">
+ assemname="predef" assemrefs="${lib.dir}">
<include name="**/*.scala"/>
<exclude name="scala/ScalaObject.scala"/>
</scalac>
diff --git a/src/dotnet-library/scala/List.scala b/src/dotnet-library/scala/List.scala
index 28228cc2f8..dea3a9a255 100644
--- a/src/dotnet-library/scala/List.scala
+++ b/src/dotnet-library/scala/List.scala
@@ -450,7 +450,7 @@ sealed abstract class List[+A] extends Seq[A] {
* @param x the element to append.
* @return the list with <code>x</code> added at the end.
*/
- def +[B >: A](x: B): List[B] =
+ override def +[B >: A](x: B): List[B] =
if (isEmpty) List(x)
else {
val buf = new ListBuffer[B]