summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build.xml439
-rw-r--r--src/forkjoin/scala/concurrent/util/Unsafe.java (renamed from src/library/scala/concurrent/util/Unsafe.java)0
2 files changed, 252 insertions, 187 deletions
diff --git a/build.xml b/build.xml
index a9e0aa257e..b5f5d07e54 100644
--- a/build.xml
+++ b/build.xml
@@ -135,16 +135,6 @@ END-USER TARGETS
<antcall target="palo.bin"/>
</target>
- <target name="newlibs"
- description="Requires libraries (MSIL, FJBG) to be rebuilt. Add this target before any other if class file format is incompatible.">
- <property name="libs.outdated" value="yes"/>
- </target>
-
- <target name="newforkjoin"
- description="Requires forkjoin library to be rebuilt. Add this target before any other if class file format is incompatible.">
- <property name="forkjoin.outdated" value="yes"/>
- </target>
-
<!-- ===========================================================================
PROPERTIES
============================================================================ -->
@@ -175,6 +165,7 @@ PROPERTIES
<!-- Sets location of pre-compiled libraries -->
<property name="lib.starr.jar" value="${lib.dir}/scala-library.jar"/>
+ <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"/>
@@ -342,6 +333,16 @@ INITIALISATION
<target name="init.version.done" depends="init.version.release, init.version.snapshot"/>
+ <target name="init.testjava6">
+ <fail message="This build requires JDK 1.6">
+ <condition>
+ <not>
+ <equals arg1="${ant.java.version}" arg2="1.6"/>
+ </not>
+ </condition>
+ </fail>
+ </target>
+
<target name="init" depends="init.jars, init.maven.jars, init.version.done">
<property name="scalac.args.always" value="" />
<!-- scalac.args.optimise is selectively overridden in certain antcall tasks. -->
@@ -377,13 +378,16 @@ INITIALISATION
</fileset>
</path>
- <!-- Auxiliary libs placed on every classpath. -->
- <path id="aux.libs">
+ <!-- Libraries only used for STARR -->
+ <path id="starr.dep.libs">
<fileset dir="${lib.dir}">
<include name="fjbg.jar"/>
- <include name="msil.jar"/>
<include name="forkjoin.jar"/>
+ <include name="msil.jar"/>
</fileset>
+ </path>
+ <!-- Auxiliary libs placed on every classpath. -->
+ <path id="aux.libs">
<pathelement location="${ant.jar}"/>
<path refid="lib.extra"/>
<path refid="dependency.classpath"/>
@@ -391,7 +395,7 @@ INITIALISATION
<!-- And print-out what we are building -->
<echo message=" build time: ${time.human}" />
- <echo message=" java version: ${java.vm.name} ${java.version}" />
+ <echo message=" java version: ${java.vm.name} ${java.version} (${ant.java.version})" />
<echo message=" java args: ${env.ANT_OPTS} ${jvm.opts}" />
<echo message=" javac args: ${javac.args}" />
<echo message=" scalac args: ${scalac.args.all}" />
@@ -408,23 +412,24 @@ INITIALISATION
<pathelement location="${reflect.starr.jar}"/>
<pathelement location="${comp.starr.jar}"/>
<path refid="aux.libs"/>
+ <path refid="starr.dep.libs"/>
</path>
<!-- What to have on the compilation path when compiling during certain phases -->
<path id="quick.compilation.path">
<pathelement location="${build-quick.dir}/classes/library"/>
- <pathelement location="${lib.dir}/forkjoin.jar"/>
+ <pathelement location="${build-libs.dir}/classes/forkjoin"/>
<path refid="lib.extra"/>
</path>
<path id="strap.compilation.path">
<pathelement location="${build-strap.dir}/classes/library"/>
- <pathelement location="${lib.dir}/forkjoin.jar"/>
+ <pathelement location="${build-libs.dir}/classes/forkjoin"/>
<path refid="lib.extra"/>
</path>
<taskdef resource="scala/tools/ant/sabbus/antlib.xml" classpathref="starr.classpath"/>
</target>
<!-- ===========================================================================
-LOCAL Adapted ASM
+LOCAL DEPENDENCY (Adapted ASM)
============================================================================ -->
<target name="asm.start" depends="init">
@@ -455,12 +460,106 @@ LOCAL Adapted ASM
</path>
</target>
+ <target name="asm.clean" depends="init">
+ <delete dir="${build-asm.dir}" includeemptydirs="yes" quiet="yes" failonerror="no"/>
+ </target>
+
+<!-- ===========================================================================
+LOCAL DEPENDENCY (FORKJOIN)
+============================================================================ -->
+ <target name="forkjoin.start" depends="init, init.testjava6">
+ <uptodate property="forkjoin.available" targetfile="${build-libs.dir}/forkjoin.complete">
+ <srcfiles dir="${src.dir}/forkjoin">
+ <include name="**/*.java"/>
+ <include name="**/*.scala"/>
+ </srcfiles>
+ </uptodate>
+ </target>
+
+ <target name="forkjoin.lib" depends="forkjoin.start" unless="forkjoin.available">
+ <mkdir dir="${build-libs.dir}/classes/forkjoin"/>
+ <javac
+ fork="yes"
+ compiler="javac1.6"
+ srcdir="${src.dir}/forkjoin"
+ destdir="${build-libs.dir}/classes/forkjoin"
+ classpath="${build-libs.dir}/classes/forkjoin"
+ includes="**/*.java"
+ debug="true"
+ target="1.5" source="1.5">
+ <compilerarg line="${javac.args}"/>
+ </javac>
+ <touch file="${build-libs.dir}/forkjoin.complete" verbose="no"/>
+ </target>
+
+ <target name="forkjoin.pack" depends="forkjoin.lib">
+ <jar destfile="${build-libs.dir}/forkjoin.jar">
+ <fileset dir="${build-libs.dir}/classes/forkjoin"/>
+ </jar>
+ </target>
+
+ <target name="forkjoin.done" depends="forkjoin.pack">
+ <!-- TODO - jar or classfiles? -->
+ <path id="forkjoin.classpath">
+ <pathelement location="${build-libs.dir}/classes/forkjoin"/>
+ </path>
+ </target>
+
+ <target name="forkjoin.clean" depends="init">
+ <delete dir="${build-libs.dir}/classes/forkjoin" includeemptydirs="yes" quiet="yes" failonerror="no"/>
+ <delete file="${build-libs.dir}/forkjoin.complete" quiet="yes" failonerror="no"/>
+ </target>
+
+<!-- ===========================================================================
+LOCAL DEPENDENCY (FJBG)
+============================================================================ -->
+
+ <target name="fjbg.init" depends="init">
+ <uptodate property="fjbg.available" targetfile="${build-libs.dir}/fjbg.complete">
+ <srcfiles dir="${src.dir}/fjbg">
+ <include name="**/*.java"/>
+ <include name="**/*.scala"/>
+ </srcfiles>
+ </uptodate>
+ </target>
+
+ <target name="fjbg.lib" depends="fjbg.init" unless="fjbg.available">
+ <mkdir dir="${build-libs.dir}/classes/fjbg"/>
+ <javac
+ srcdir="${src.dir}/fjbg"
+ destdir="${build-libs.dir}/classes/fjbg"
+ classpath="${build-libs.dir}/classes/fjbg"
+ includes="**/*.java"
+ debug="true"
+ target="1.5" source="1.4">
+ <compilerarg line="${javac.args}"/>
+ </javac>
+ <touch file="${build-libs.dir}/fjbg.complete" verbose="no"/>
+ </target>
+
+ <target name="fjbg.pack" depends="fjbg.lib">
+ <jar destfile="${build-libs.dir}/fjbg.jar">
+ <fileset dir="${build-libs.dir}/classes/fjbg"/>
+ </jar>
+ </target>
+
+ <target name="fjbg.done" depends="fjbg.pack">
+ <!-- TODO - jar or classfiles? -->
+ <path id="fjbg.classpath">
+ <pathelement location="${build-libs.dir}/classes/fjbg"/>
+ </path>
+ </target>
+
+ <target name="fjbg.clean" depends="init">
+ <delete dir="${build-libs.dir}/classes/fjbg" includeemptydirs="yes" quiet="yes" failonerror="no"/>
+ <delete file="${build-libs.dir}/fjbg.complete" quiet="yes" failonerror="no"/>
+ </target>
<!-- ===========================================================================
LOCAL REFERENCE BUILD (LOCKER)
============================================================================ -->
- <target name="locker.start" depends="asm.done">
+ <target name="locker.start" depends="asm.done, forkjoin.done, fjbg.done">
<condition property="locker.available">
<available file="${build-locker.dir}/all.complete"/>
</condition>
@@ -478,10 +577,13 @@ LOCAL REFERENCE BUILD (LOCKER)
<javac
srcdir="${src.dir}/library"
destdir="${build-locker.dir}/classes/library"
- classpath="${build-locker.dir}/classes/library"
includes="**/*.java"
target="1.5" source="1.5">
<compilerarg line="${javac.args} -XDignore.symbol.file"/>
+ <classpath>
+ <path refid="forkjoin.classpath"/>
+ <pathelement location="${build-locker.dir}/classes/library"/>
+ </classpath>
</javac>
<!-- NOTE: Potential problem with maximal command line length on Windows
(32768 characters for XP, since executed with Java's "exec"). See
@@ -496,7 +598,7 @@ LOCAL REFERENCE BUILD (LOCKER)
<include name="**/*.scala"/>
<compilationpath>
<pathelement location="${build-locker.dir}/classes/library"/>
- <pathelement location="${lib.dir}/forkjoin.jar"/>
+ <path refid="forkjoin.classpath"/>
</compilationpath>
</scalacfork>
<propertyfile file="${build-locker.dir}/classes/library/library.properties">
@@ -575,6 +677,33 @@ LOCAL REFERENCE BUILD (LOCKER)
<target name="locker.comp" depends="locker.pre-comp" if="locker.comp.needed">
<stopwatch name="locker.comp.timer"/>
<mkdir dir="${build-locker.dir}/classes/compiler"/>
+ <!-- Compile MSIL inside of locker.... -->
+ <javac
+ srcdir="${src.dir}/msil"
+ destdir="${build-locker.dir}/classes/compiler"
+ classpath="${build-locker.dir}/classes/compiler"
+ includes="**/*.java"
+ excludes="**/tests/**"
+ debug="true"
+ target="1.5" source="1.4">
+ <compilerarg line="${javac.args}"/>
+ </javac>
+ <scalacfork
+ destdir="${build-locker.dir}/classes/compiler"
+ compilerpathref="starr.classpath"
+ params="${scalac.args.all}"
+ srcdir="${src.dir}/msil"
+ jvmargs="${scalacfork.jvmargs}">
+ <include name="**/*.scala"/>
+ <compilationpath>
+ <pathelement location="${build-locker.dir}/classes/library"/>
+ <pathelement location="${build-locker.dir}/classes/reflect"/>
+ <pathelement location="${build-locker.dir}/classes/compiler"/>
+ <path refid="fjbg.classpath"/>
+ <path refid="aux.libs"/>
+ <pathelement location="${jline.jar}"/>
+ </compilationpath>
+ </scalacfork>
<scalacfork
destdir="${build-locker.dir}/classes/compiler"
compilerpathref="starr.classpath"
@@ -586,6 +715,7 @@ LOCAL REFERENCE BUILD (LOCKER)
<pathelement location="${build-locker.dir}/classes/library"/>
<pathelement location="${build-locker.dir}/classes/reflect"/>
<pathelement location="${build-locker.dir}/classes/compiler"/>
+ <path refid="fjbg.classpath"/>
<path refid="aux.libs"/>
<path refid="asm.classpath"/>
<pathelement location="${jline.jar}"/>
@@ -620,6 +750,8 @@ LOCAL REFERENCE BUILD (LOCKER)
<pathelement location="${build-locker.dir}/classes/library"/>
<pathelement location="${build-locker.dir}/classes/reflect"/>
<pathelement location="${build-locker.dir}/classes/compiler"/>
+ <path refid="fjbg.classpath"/>
+ <path refid="forkjoin.classpath"/>
<path refid="asm.classpath"/>
<path refid="aux.libs"/>
</path>
@@ -628,6 +760,8 @@ LOCAL REFERENCE BUILD (LOCKER)
<pathelement location="${build-quick.dir}/classes/library"/>
<pathelement location="${build-quick.dir}/classes/reflect"/>
<pathelement location="${build-quick.dir}/classes/compiler"/>
+ <path refid="fjbg.classpath"/>
+ <path refid="forkjoin.classpath"/>
<path refid="asm.classpath"/>
<path refid="aux.libs"/>
</path>
@@ -694,6 +828,7 @@ PACKED LOCKER BUILD (PALO)
<mkdir dir="${build-palo.dir}/lib"/>
<jar destfile="${build-palo.dir}/lib/scala-library.jar">
<fileset dir="${build-locker.dir}/classes/library"/>
+ <fileset dir="${build-libs.dir}/classes/forkjoin"/>
</jar>
</target>
@@ -723,9 +858,7 @@ PACKED LOCKER BUILD (PALO)
<jar destfile="${build-palo.dir}/lib/scala-compiler.jar" manifest="${basedir}/META-INF/MANIFEST.MF">
<fileset dir="${build-locker.dir}/classes/compiler"/>
<fileset dir="${build-asm.dir}/classes/"/>
- <!-- filemode / dirmode: see trac ticket #1294 -->
- <zipfileset dirmode="755" filemode="644" src="${lib.dir}/fjbg.jar"/>
- <zipfileset dirmode="755" filemode="644" src="${lib.dir}/msil.jar"/>
+ <fileset dir="${build-libs.dir}/classes/fjbg"/>
</jar>
<copy file="${jline.jar}" toDir="${build-palo.dir}/lib"/>
</target>
@@ -807,18 +940,24 @@ QUICK BUILD (QUICK)
<javac
srcdir="${src.dir}/library"
destdir="${build-quick.dir}/classes/library"
- classpath="${build-quick.dir}/classes/library"
includes="**/*.java"
target="1.5" source="1.5">
<compilerarg line="${javac.args} -XDignore.symbol.file"/>
+ <classpath>
+ <path refid="forkjoin.classpath"/>
+ <pathelement location="${build-quick.dir}/classes/library"/>
+ </classpath>
</javac>
<javac
srcdir="${src.dir}/actors"
destdir="${build-quick.dir}/classes/library"
- classpath="${build-quick.dir}/classes/library"
includes="**/*.java"
target="1.5" source="1.5">
<compilerarg line="${javac.args}"/>
+ <classpath>
+ <path refid="forkjoin.classpath"/>
+ <pathelement location="${build-quick.dir}/classes/library"/>
+ </classpath>
</javac>
<scalacfork
destdir="${build-quick.dir}/classes/library"
@@ -916,27 +1055,7 @@ QUICK BUILD (QUICK)
<stopwatch name="quick.reflect.timer" action="total"/>
</target>
- <target name="quick.newlibs" depends="quick.reflect" if="libs.outdated">
- <antcall target="libs.done" inheritRefs="true"/>
- <property name="fjbg.jar" value="${build-libs.dir}/fjbg.jar"/>
- <property name="msil.jar" value="${build-libs.dir}/msil.jar"/>
- </target>
-
- <target name="quick.libs" depends="quick.newlibs" unless="libs.outdated">
- <property name="fjbg.jar" value="${lib.dir}/fjbg.jar"/>
- <property name="msil.jar" value="${lib.dir}/msil.jar"/>
- </target>
-
- <target name="quick.newforkjoin" depends="quick.libs" if="forkjoin.outdated">
- <antcall target="forkjoin.done" inheritRefs="true"/>
- <property name="forkjoin.jar" value="${build-libs.dir}/forkjoin.jar"/>
- </target>
-
- <target name="quick.forkjoin" depends="quick.newforkjoin" unless="forkjoin.outdated">
- <property name="forkjoin.jar" value="${lib.dir}/forkjoin.jar"/>
- </target>
-
- <target name="quick.pre-comp" depends="quick.forkjoin">
+ <target name="quick.pre-comp" depends="quick.reflect">
<uptodate property="quick.comp.available" targetfile="${build-quick.dir}/compiler.complete">
<srcfiles dir="${src.dir}/compiler"/>
</uptodate>
@@ -945,6 +1064,33 @@ QUICK BUILD (QUICK)
<target name="quick.comp" depends="quick.pre-comp" unless="quick.comp.available">
<stopwatch name="quick.comp.timer"/>
<mkdir dir="${build-quick.dir}/classes/compiler"/>
+ <!-- Compile MSIL inside of quick.... -->
+ <javac
+ srcdir="${src.dir}/msil"
+ destdir="${build-quick.dir}/classes/compiler"
+ classpath="${build-quick.dir}/classes/compiler"
+ includes="**/*.java"
+ excludes="**/tests/**"
+ debug="true"
+ target="1.5" source="1.4">
+ <compilerarg line="${javac.args}"/>
+ </javac>
+ <scalacfork
+ destdir="${build-quick.dir}/classes/compiler"
+ compilerpathref="starr.classpath"
+ params="${scalac.args.all}"
+ srcdir="${src.dir}/msil"
+ jvmargs="${scalacfork.jvmargs}">
+ <include name="**/*.scala"/>
+ <compilationpath>
+ <pathelement location="${build-quick.dir}/classes/library"/>
+ <pathelement location="${build-quick.dir}/classes/reflect"/>
+ <pathelement location="${build-quick.dir}/classes/compiler"/>
+ <path refid="fjbg.classpath"/>
+ <path refid="aux.libs"/>
+ <pathelement location="${jline.jar}"/>
+ </compilationpath>
+ </scalacfork>
<scalacfork
destdir="${build-quick.dir}/classes/compiler"
compilerpathref="locker.classpath"
@@ -957,6 +1103,8 @@ QUICK BUILD (QUICK)
<pathelement location="${build-quick.dir}/classes/reflect"/>
<pathelement location="${build-quick.dir}/classes/compiler"/>
<path refid="aux.libs"/>
+ <path refid="forkjoin.classpath"/>
+ <path refid="fjbg.classpath"/>
<path refid="asm.classpath"/>
<pathelement location="${jline.jar}"/>
</compilationpath>
@@ -1006,6 +1154,8 @@ QUICK BUILD (QUICK)
<pathelement location="${build-quick.dir}/classes/reflect"/>
<pathelement location="${build-quick.dir}/classes/compiler"/>
<pathelement location="${build-quick.dir}/classes/continuations-plugin"/>
+ <path refid="forkjoin.classpath"/>
+ <path refid="fjbg.classpath"/>
<path refid="aux.libs"/>
</compilationpath>
</scalacfork>
@@ -1052,6 +1202,7 @@ QUICK BUILD (QUICK)
<compilationpath>
<pathelement location="${build-quick.dir}/classes/library"/>
<pathelement location="${build-quick.dir}/classes/actors-migration"/>
+ <path refid="forkjoin.classpath"/>
</compilationpath>
</scalacfork>
<touch file="${build-quick.dir}/actors-migration.complete" verbose="no"/>
@@ -1106,7 +1257,7 @@ QUICK BUILD (QUICK)
<pathelement location="${build-quick.dir}/classes/scalap"/>
<pathelement location="${build-quick.dir}/classes/partest"/>
<pathelement location="${ant.jar}"/>
- <pathelement location="${lib.dir}/forkjoin.jar"/>
+ <path refid="forkjoin.classpath"/>
</compilationpath>
</scalacfork>
<touch file="${build-quick.dir}/scalap.complete" verbose="no"/>
@@ -1150,7 +1301,8 @@ QUICK BUILD (QUICK)
<pathelement location="${build-quick.dir}/classes/scalap"/>
<pathelement location="${build-quick.dir}/classes/partest"/>
<pathelement location="${ant.jar}"/>
- <pathelement location="${lib.dir}/forkjoin.jar"/>
+ <path refid="forkjoin.classpath"/>
+ <path refid="fjbg.classpath"/>
<pathelement location="${scalacheck.jar}"/>
</compilationpath>
</scalacfork>
@@ -1179,6 +1331,8 @@ QUICK BUILD (QUICK)
<pathelement location="${build-quick.dir}/classes/reflect"/>
<pathelement location="${build-quick.dir}/classes/compiler"/>
<pathelement location="${build-quick.dir}/classes/scalap"/>
+ <path refid="forkjoin.classpath"/>
+ <path refid="fjbg.classpath"/>
<path refid="aux.libs"/>
<pathelement location="${jline.jar}"/>
</path>
@@ -1256,7 +1410,7 @@ PACKED QUICK BUILD (PACK)
<exclude name="scala/swing/**"/>
<exclude name="scala/actors/**"/>
</fileset>
- <zipfileset dirmode="755" filemode="644" src="${forkjoin.jar}"/>
+ <fileset dir="${build-libs.dir}/classes/forkjoin"/>
</jar>
<jar destfile="${build-pack.dir}/lib/scala-swing.jar">
<fileset dir="${build-quick.dir}/classes/library">
@@ -1304,9 +1458,7 @@ PACKED QUICK BUILD (PACK)
<jar destfile="${build-pack.dir}/lib/scala-compiler.jar" manifest="${build-pack.dir}/META-INF/MANIFEST.MF">
<fileset dir="${build-quick.dir}/classes/compiler"/>
<fileset dir="${build-asm.dir}/classes"/>
- <!-- filemode / dirmode: see trac ticket #1294 -->
- <zipfileset dirmode="755" filemode="644" src="${fjbg.jar}"/>
- <zipfileset dirmode="755" filemode="644" src="${msil.jar}"/>
+ <fileset dir="${build-libs.dir}/classes/fjbg"/>
</jar>
<copy file="${jline.jar}" toDir="${build-pack.dir}/lib"/>
<copy todir="${build-pack.dir}/lib">
@@ -1453,18 +1605,24 @@ BOOTSTRAPPING BUILD (STRAP)
<javac
srcdir="${src.dir}/library"
destdir="${build-strap.dir}/classes/library"
- classpath="${build-strap.dir}/classes/library"
includes="**/*.java"
target="1.5" source="1.5">
<compilerarg line="${javac.args} -XDignore.symbol.file"/>
+ <classpath>
+ <path refid="forkjoin.classpath"/>
+ <pathelement location="${build-strap.dir}/classes/library"/>
+ </classpath>
</javac>
<javac
srcdir="${src.dir}/actors"
destdir="${build-strap.dir}/classes/library"
- classpath="${build-strap.dir}/classes/library"
includes="**/*.java"
target="1.5" source="1.5">
<compilerarg line="${javac.args}"/>
+ <classpath>
+ <path refid="forkjoin.classpath"/>
+ <pathelement location="${build-strap.dir}/classes/library"/>
+ </classpath>
</javac>
<scalacfork
destdir="${build-strap.dir}/classes/library"
@@ -1531,6 +1689,7 @@ BOOTSTRAPPING BUILD (STRAP)
<compilationpath>
<pathelement location="${build-strap.dir}/classes/library"/>
<pathelement location="${build-strap.dir}/classes/reflect"/>
+ <path refid="forkjoin.classpath"/>
<path refid="aux.libs"/>
<pathelement location="${jline.jar}"/>
</compilationpath>
@@ -1568,7 +1727,33 @@ BOOTSTRAPPING BUILD (STRAP)
<target name="strap.comp" depends="strap.pre-comp" unless="strap.comp.available">
<stopwatch name="strap.comp.timer"/>
<mkdir dir="${build-strap.dir}/classes/compiler"/>
- <!-- TODO If we have cross dependencies, move this below scalacfork... -->
+ <!-- Compile MSIL inside of strap.... -->
+ <javac
+ srcdir="${src.dir}/msil"
+ destdir="${build-strap.dir}/classes/compiler"
+ classpath="${build-strap.dir}/classes/compiler"
+ includes="**/*.java"
+ excludes="**/tests/**"
+ debug="true"
+ target="1.5" source="1.4">
+ <compilerarg line="${javac.args}"/>
+ </javac>
+ <scalacfork
+ destdir="${build-strap.dir}/classes/compiler"
+ compilerpathref="starr.classpath"
+ params="${scalac.args.all}"
+ srcdir="${src.dir}/msil"
+ jvmargs="${scalacfork.jvmargs}">
+ <include name="**/*.scala"/>
+ <compilationpath>
+ <pathelement location="${build-strap.dir}/classes/library"/>
+ <pathelement location="${build-strap.dir}/classes/reflect"/>
+ <pathelement location="${build-strap.dir}/classes/compiler"/>
+ <path refid="fjbg.classpath"/>
+ <path refid="aux.libs"/>
+ <pathelement location="${jline.jar}"/>
+ </compilationpath>
+ </scalacfork>
<scalacfork
destdir="${build-strap.dir}/classes/compiler"
compilerpathref="pack.classpath"
@@ -1581,6 +1766,8 @@ BOOTSTRAPPING BUILD (STRAP)
<pathelement location="${build-strap.dir}/classes/reflect"/>
<pathelement location="${build-strap.dir}/classes/compiler"/>
<path refid="aux.libs"/>
+ <path refid="forkjoin.classpath"/>
+ <path refid="fjbg.classpath"/>
<path refid="asm.classpath"/>
<pathelement location="${jline.jar}"/>
</compilationpath>
@@ -1630,6 +1817,8 @@ BOOTSTRAPPING BUILD (STRAP)
<pathelement location="${build-strap.dir}/classes/reflect"/>
<pathelement location="${build-strap.dir}/classes/compiler"/>
<pathelement location="${build-strap.dir}/classes/continuations-plugin"/>
+ <path refid="forkjoin.classpath"/>
+ <path refid="fjbg.classpath"/>
<path refid="aux.libs"/>
</compilationpath>
</scalacfork>
@@ -1695,7 +1884,7 @@ BOOTSTRAPPING BUILD (STRAP)
<pathelement location="${build-strap.dir}/classes/scalap"/>
<pathelement location="${build-strap.dir}/classes/partest"/>
<pathelement location="${ant.jar}"/>
- <pathelement location="${lib.dir}/forkjoin.jar"/>
+ <path refid="forkjoin.classpath"/>
</compilationpath>
</scalacfork>
<touch file="${build-strap.dir}/scalap.complete" verbose="no"/>
@@ -1739,7 +1928,7 @@ BOOTSTRAPPING BUILD (STRAP)
<pathelement location="${build-strap.dir}/classes/scalap"/>
<pathelement location="${build-strap.dir}/classes/partest"/>
<pathelement location="${ant.jar}"/>
- <pathelement location="${lib.dir}/forkjoin.jar"/>
+ <path refid="forkjoin.classpath"/>
<pathelement location="${scalacheck.jar}"/>
</compilationpath>
</scalacfork>
@@ -1759,135 +1948,11 @@ BOOTSTRAPPING BUILD (STRAP)
</target>
<!-- ===========================================================================
-LIBRARIES (MSIL, FJBG maybe later)
+LIBRARIES (Forkjoin, FJBG, ASM)
============================================================================ -->
- <target name="libs.start"/>
-
- <target name="libs.pre-forkjoin" depends="libs.start">
- <property name="java6.home" value="/home/linuxsoft/apps/java-1.6"/>
- <fail message="Compiling forkjoin.jar requires java 1.6. Please set the property `java6.home` in build.properties or using `-Djava6.home=/path/to/java6`">
- <condition><not>
- <available file="${java6.home}/bin/javac"/>
- </not></condition>
- </fail>
-
- <uptodate property="libs.forkjoin.available" targetfile="${build-libs.dir}/forkjoin.complete">
- <srcfiles dir="${src.dir}/forkjoin">
- <include name="**/*.java"/>
- <include name="**/*.scala"/>
- </srcfiles>
- </uptodate>
- </target>
-
- <target name="libs.forkjoin" depends="libs.pre-forkjoin" unless="libs.forkjoin.available">
- <mkdir dir="${build-libs.dir}/classes/forkjoin"/>
- <javac
- executable="${java6.home}/bin/javac"
- fork="yes"
- compiler="javac1.6"
- srcdir="${src.dir}/forkjoin"
- destdir="${build-libs.dir}/classes/forkjoin"
- classpath="${build-libs.dir}/classes/forkjoin"
- includes="**/*.java"
- debug="true"
- target="1.5" source="1.5">
- <compilerarg line="${javac.args}"/>
- </javac>
- <touch file="${build-libs.dir}/forkjoin.complete" verbose="no"/>
- </target>
-
- <target name="libs.pre-forkjoinpack" depends="libs.forkjoin">
- </target>
-
- <target name="libs.forkjoinpack" depends="libs.pre-forkjoinpack" unless="libs.forkjoinpack.available">
- <jar destfile="${build-libs.dir}/forkjoin.jar">
- <fileset dir="${build-libs.dir}/classes/forkjoin"/>
- </jar>
- </target>
-
- <target name="libs.pre-msil" depends="libs.start">
- <uptodate property="libs.msil.available" targetfile="${build-libs.dir}/msil.complete">
- <srcfiles dir="${src.dir}/msil">
- <include name="**/*.java"/>
- <include name="**/*.scala"/>
- </srcfiles>
- </uptodate>
- </target>
-
- <target name="libs.msil" depends="libs.pre-msil" unless="libs.msil.available">
- <mkdir dir="${build-libs.dir}/classes/msil"/>
- <javac
- srcdir="${src.dir}/msil"
- destdir="${build-libs.dir}/classes/msil"
- classpath="${build-libs.dir}/classes/msil"
- includes="**/*.java"
- excludes="**/tests/**"
- debug="true"
- target="1.5" source="1.4">
- <compilerarg line="${javac.args}"/>
- </javac>
- <scalacfork
- destdir="${build-libs.dir}/classes/msil"
- compilerpathref="locker.classpath"
- params="${scalac.args.all}"
- srcdir="${src.dir}/msil"
- jvmargs="${scalacfork.jvmargs}">
- <include name="**/*.scala"/>
- <compilationpath>
- <pathelement location="${build-quick.dir}/classes/library"/>
- <pathelement location="${build-libs.dir}/classes/msil"/>
- </compilationpath>
- </scalacfork>
- <touch file="${build-libs.dir}/msil.complete" verbose="no"/>
- </target>
-
- <target name="libs.pre-msilpack" depends="libs.msil">
- </target>
-
- <target name="libs.msilpack" depends="libs.pre-msilpack" unless="libs.msilpack.available">
- <jar destfile="${build-libs.dir}/msil.jar">
- <fileset dir="${build-libs.dir}/classes/msil"/>
- </jar>
- </target>
-
- <target name="libs.pre-fjbg" depends="libs.start">
- <uptodate property="libs.fjbg.available" targetfile="${build-libs.dir}/fjbg.complete">
- <srcfiles dir="${src.dir}/fjbg">
- <include name="**/*.java"/>
- <include name="**/*.scala"/>
- </srcfiles>
- </uptodate>
- </target>
-
- <target name="libs.fjbg" depends="libs.pre-fjbg" unless="libs.fjbg.available">
- <mkdir dir="${build-libs.dir}/classes/fjbg"/>
- <javac
- srcdir="${src.dir}/fjbg"
- destdir="${build-libs.dir}/classes/fjbg"
- classpath="${build-libs.dir}/classes/fjbg"
- includes="**/*.java"
- debug="true"
- target="1.5" source="1.4">
- <compilerarg line="${javac.args}"/>
- </javac>
- <touch file="${build-libs.dir}/fjbg.complete" verbose="no"/>
- </target>
-
- <target name="libs.pre-fjbgpack" depends="libs.fjbg">
- </target>
-
- <target name="libs.fjbgpack" depends="libs.pre-fjbgpack" unless="libs.fjbgpack.available">
- <jar destfile="${build-libs.dir}/fjbg.jar">
- <fileset dir="${build-libs.dir}/classes/fjbg"/>
- </jar>
- </target>
-
- <target name="libs.done" depends="libs.msilpack, libs.fjbgpack"/>
-
- <target name="forkjoin.done" depends="libs.forkjoinpack"/>
-
- <target name="libs.clean" depends="pack.clean">
+
+ <target name="libs.clean" depends="pack.clean, asm.clean">
<delete dir="${build-libs.dir}" includeemptydirs="yes" quiet="yes" failonerror="no"/>
</target>
@@ -2166,7 +2231,7 @@ DOCUMENTATION
BOOTRAPING TEST AND TEST SUITE
============================================================================ -->
- <target name="test.stability" depends="strap.done">
+ <target name="test.stability" depends="strap.done, init">
<same dir="${build-quick.dir}" todir="${build-strap.dir}" failondifferent="yes">
<exclude name="**/*.properties"/>
<exclude name="bin/**"/>
@@ -2446,11 +2511,11 @@ STABLE REFERENCE (STARR)
</jar>
</target>
- <target name="starr.libs" depends="starr.src" if="libs.outdated">
+ <target name="starr.libs" depends="starr.src, forkjoin.done, fjbg.done">
+ <!-- TODO - Do we even *need* this in starr? -->
<copy toDir="${lib.dir}" overwrite="yes">
<fileset dir="${build-libs.dir}">
<include name="fjbg.jar"/>
- <include name="msil.jar"/>
<include name="forkjoin.jar"/>
</fileset>
</copy>
diff --git a/src/library/scala/concurrent/util/Unsafe.java b/src/forkjoin/scala/concurrent/util/Unsafe.java
index 0cd48758d5..0cd48758d5 100644
--- a/src/library/scala/concurrent/util/Unsafe.java
+++ b/src/forkjoin/scala/concurrent/util/Unsafe.java