Skip to content

Commit

Permalink
Merge branch 'master' into merge-inline
Browse files Browse the repository at this point in the history
Conflicts:
	lib/scala-compiler.jar.desired.sha1
	lib/scala-library-src.jar.desired.sha1
	lib/scala-library.jar.desired.sha1
	src/compiler/scala/reflect/internal/Definitions.scala
	src/compiler/scala/reflect/internal/Importers.scala
	src/compiler/scala/reflect/internal/Symbols.scala
	src/compiler/scala/reflect/internal/Trees.scala
	src/compiler/scala/reflect/internal/Types.scala
	src/compiler/scala/tools/nsc/Global.scala
	src/compiler/scala/tools/nsc/transform/Erasure.scala
	src/compiler/scala/tools/nsc/transform/LiftCode.scala
	src/compiler/scala/tools/nsc/transform/UnCurry.scala
	src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
	src/compiler/scala/tools/nsc/typechecker/Typers.scala
	test/files/run/programmatic-main.check
	test/files/speclib/instrumented.jar.desired.sha1
  • Loading branch information
paulp committed Mar 14, 2012
2 parents b6dde2b + 5dca64c commit 3ab383a
Show file tree
Hide file tree
Showing 741 changed files with 26,911 additions and 8,895 deletions.
5 changes: 0 additions & 5 deletions build.number

This file was deleted.

3 changes: 3 additions & 0 deletions build.number.maven
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
version.major=2
version.minor=10
version.patch=0
203 changes: 169 additions & 34 deletions build.xml
Original file line number Diff line number Diff line change
Expand Up @@ -210,28 +210,33 @@ PROPERTIES
INITIALISATION
============================================================================ -->

<condition property="starr.absent">
<not><available file="${lib.dir}/scala-library.jar"/></not>
</condition>

<!-- It's such a PITA to perform the amazing && in ant, forget it.
I'll just check the compiler jar. -->
<target name="init.starr.check">
<uptodate property="starr.compiler.uptodate"
srcfile="${lib.dir}/scala-compiler.jar.desired.sha1"
targetfile="${lib.dir}/scala-compiler.jar" />
<target name="init.jars.check">
<uptodate property="lib.jars.uptodate">
<srcfiles dir="${basedir}">
<include name="lib/**/*.desired.sha1"/>
<include name="test/files/**/*.desired.sha1"/>
<include name="tools/**/*.desired.sha1"/>
</srcfiles>
<mapper type="glob" from="*.desired.sha1" to="*"/>
</uptodate>
</target>

<target name="init.starr" depends="init.starr.check" unless="starr.compiler.uptodate">
<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 file="${lib.dir}/scala-library.jar" />
<touch file="${lib.dir}/scala-compiler.jar" />
<touch>
<fileset dir="${basedir}">
<include name="lib/**/*.desired.sha1"/>
<include name="test/files/**/*.desired.sha1"/>
<include name="tools/**/*.desired.sha1"/>
</fileset>
<mapper type="glob" from="*.desired.sha1" to="*"/>
</touch>
</target>

<target name="init" depends="init.starr">
<target name="init" depends="init.jars">
<!-- scalac.args.optimise is selectively overridden in certain antcall tasks. -->
<property name="scalac.args.optimise" value=""/>
<!-- scalac.args.quickonly are added to quick.* targets but not others (particularly, locker.)
Expand Down Expand Up @@ -1505,20 +1510,33 @@ LIBRARIES (MSIL, FJBG maybe later)
DOCUMENTATION
============================================================================ -->

<target name="docs.start" depends="pack.done"/>
<target name="docs.start" depends="pack.done">
<macrodef name="doc-uptodate-check">
<attribute name="name" />
<attribute name="srcdir" />
<element name="source-includes" optional="yes" />
<sequential>
<uptodate property="docs.@{name}.available" targetfile="${build-docs.dir}/@{name}.complete">
<srcfiles dir="@{srcdir}">
<source-includes/>
</srcfiles>
</uptodate>
</sequential>
</macrodef>
</target>

<target name="docs.pre-lib" depends="docs.start">
<uptodate property="docs.lib.available" targetfile="${build-docs.dir}/library.complete">
<srcfiles dir="${src.dir}">
<doc-uptodate-check name="library" srcdir="${src.dir}">
<source-includes>
<include name="library/**"/>
<include name="dbc/**"/>
<include name="actors/**"/>
<include name="swing/**"/>
</srcfiles>
</uptodate>
</source-includes>
</doc-uptodate-check>
</target>

<target name="docs.lib" depends="docs.pre-lib" unless="docs.lib.available">
<target name="docs.lib" depends="docs.pre-lib" unless="docs.library.available">
<stopwatch name="docs.lib.timer"/>
<mkdir dir="${build-docs.dir}/library"/>
<scaladoc
Expand All @@ -1530,7 +1548,8 @@ DOCUMENTATION
docUncompilable="${src.dir}/library-aux"
sourcepath="${src.dir}"
classpathref="pack.classpath"
docRootContent="${build-docs.dir}/library/lib/rootdoc.txt">
addparams="${scalac.args.all}"
docRootContent="${src.dir}/library/rootdoc.txt">
<src>
<files includes="${src.dir}/actors"/>
<files includes="${src.dir}/library/scala"/>
Expand All @@ -1552,12 +1571,10 @@ DOCUMENTATION
</target>

<target name="docs.pre-man" depends="docs.lib">
<uptodate property="docs.man.available" targetfile="${build-docs.dir}/manual.complete">
<srcfiles dir="${src.dir}/manual"/>
</uptodate>
<doc-uptodate-check name="manual" srcdir="${src.dir}/manual"/>
</target>

<target name="docs.manmaker" depends="docs.pre-man" unless="docs.man.available">
<target name="docs.manmaker" depends="docs.pre-man" unless="docs.manual.available">
<mkdir dir="${build.dir}/manmaker/classes"/>
<scalac
destdir="${build.dir}/manmaker/classes"
Expand All @@ -1571,7 +1588,7 @@ DOCUMENTATION
</path>
</target>

<target name="docs.man" depends="docs.manmaker" unless="docs.man.available">
<target name="docs.man" depends="docs.manmaker" unless="docs.manual.available">
<mkdir dir="${build-docs.dir}/manual/man/man1"/>
<mkdir dir="${build-docs.dir}/manual/html"/>
<mkdir dir="${build-docs.dir}/manual/genman/man1"/>
Expand All @@ -1598,12 +1615,10 @@ DOCUMENTATION
</target>

<target name="docs.pre-comp" depends="docs.man">
<uptodate property="docs.comp.available" targetfile="${build-docs.dir}/compiler.complete">
<srcfiles dir="${src.dir}/compiler"/>
</uptodate>
<doc-uptodate-check name="compiler" srcdir="${src.dir}/compiler"/>
</target>

<target name="docs.comp" depends="docs.pre-comp" unless="docs.comp.available">
<target name="docs.comp" depends="docs.pre-comp" unless="docs.compiler.available">
<stopwatch name="docs.comp.timer"/>
<mkdir dir="${build-docs.dir}/compiler"/>
<scaladoc
Expand All @@ -1613,15 +1628,105 @@ DOCUMENTATION
docsourceurl="https://lampsvn.epfl.ch/trac/scala/browser/scala/trunk/src/€{FILE_PATH}.scala#L1"
sourcepath="${src.dir}"
classpathref="pack.classpath"
srcdir="${src.dir}/compiler">
srcdir="${src.dir}/compiler"
docRootContent="${src.dir}/compiler/rootdoc.txt"
addparams="${scalac.args.all}">
<include name="**/*.scala"/>
</scaladoc>
<touch file="${build-docs.dir}/compiler.complete" verbose="no"/>
<stopwatch name="docs.comp.timer" action="total"/>
</target>

<target name="docs.pre-jline" depends="docs.start">
<doc-uptodate-check name="jline" srcdir="${src.dir}/jline/src/main/java" />
</target>

<target name="docs.jline" depends="docs.pre-jline" unless="docs.jline.available">
<stopwatch name="docs.jline.timer"/>
<mkdir dir="${build-docs.dir}/jline"/>
<scaladoc
destdir="${build-docs.dir}/jline"
doctitle="Scala JLine"
docversion="${version.number}"
sourcepath="${src.dir}"
classpathref="pack.classpath"
srcdir="${src.dir}/jline/src/main/java"
addparams="${scalac.args.all}">
<include name="**/*.scala"/>
<include name="**/*.java"/>
</scaladoc>
<touch file="${build-docs.dir}/jline.complete" verbose="no"/>
<stopwatch name="docs.jline.timer" action="total"/>
</target>

<target name="docs.pre-scalap" depends="docs.start">
<doc-uptodate-check name="scalap" srcdir="${src.dir}/scalap" />
</target>

<target name="docs.scalap" depends="docs.pre-scalap" unless="docs.scalap.available">
<stopwatch name="docs.scalap.timer"/>
<mkdir dir="${build-docs.dir}/scalap"/>
<scaladoc
destdir="${build-docs.dir}/scalap"
doctitle="Scalap"
docversion="${version.number}"
docsourceurl="https://lampsvn.epfl.ch/trac/scala/browser/scala/trunk/src/€{FILE_PATH}.scala#L1"
sourcepath="${src.dir}"
classpathref="pack.classpath"
srcdir="${src.dir}/scalap"
addparams="${scalac.args.all}">
<include name="**/*.scala"/>
</scaladoc>
<touch file="${build-docs.dir}/scalap.complete" verbose="no"/>
<stopwatch name="docs.scalap.timer" action="total"/>
</target>

<target name="docs.pre-partest" depends="docs.start">
<doc-uptodate-check name="partest" srcdir="${src.dir}/partest" />
</target>

<target name="docs.partest" depends="docs.pre-partest" unless="docs.partest.available">
<stopwatch name="docs.partest.timer"/>
<mkdir dir="${build-docs.dir}/scala-partest"/>
<scaladoc
destdir="${build-docs.dir}/scala-partest"
doctitle="Scala Parallel Testing Framework"
docversion="${version.number}"
sourcepath="${src.dir}"
classpathref="pack.classpath"
srcdir="${src.dir}/partest"
addparams="${scalac.args.all}">
<include name="**/*.scala"/>
</scaladoc>
<touch file="${build-docs.dir}/partest.complete" verbose="no"/>
<stopwatch name="docs.partest.timer" action="total"/>
</target>

<target name="docs.pre-continuations-plugin" depends="docs.start">
<doc-uptodate-check name="continuations-plugin" srcdir="${src.dir}/continuations/plugin" />
</target>

<target name="docs.continuations-plugin" depends="docs.pre-continuations-plugin" unless="docs.continuations-plugin.available">
<stopwatch name="docs.continuations-plugin.timer"/>
<mkdir dir="${build-docs.dir}/continuations-plugin"/>
<scaladoc
destdir="${build-docs.dir}/continuations-plugin"
doctitle="Delimited Continuations Compiler Plugin"
docversion="${version.number}"
sourcepath="${src.dir}"
classpathref="pack.classpath"
srcdir="${src.dir}/continuations/plugin"
addparams="${scalac.args.all}">
<include name="**/*.scala"/>
</scaladoc>
<touch file="${build-docs.dir}/continuations-plugin.complete" verbose="no"/>
<stopwatch name="docs.continuations-plugin.timer" action="total"/>
</target>

<target name="docs.done" depends="docs.man"/>

<target name="docs.all" depends="docs.jline, docs.comp, docs.man, docs.lib, docs.scalap, docs.partest, docs.continuations-plugin"/>

<target name="docs.clean">
<delete dir="${build-docs.dir}" includeemptydirs="yes" quiet="yes" failonerror="no"/>
<delete dir="${build.dir}/manmaker" includeemptydirs="yes" quiet="yes" failonerror="no"/>
Expand Down Expand Up @@ -1905,25 +2010,55 @@ STABLE REFERENCE (STARR)
<include name="forkjoin.jar"/>
</fileset>
</copy>
<!-- remove SHA1 files for no starr, so we don't loose artifacts. -->
<delete>
<fileset dir="${lib.dir}">
<include name="fjbg.jar.desired.sha1"/>
<include name="msil.jar.desired.sha1"/>
<include name="forkjoin.jar.desired.sha1"/>
</fileset>
</delete>
</target>

<target name="starr.done" depends="starr.libs"/>
<target name="starr.removesha1" depends="starr.libs">
<!-- remove SHA1 files for no starr, so we don't loose artifacts. -->
<delete>
<fileset dir="${lib.dir}">
<include name="scala-compiler.jar.desired.sha1"/>
<include name="scala-library.jar.desired.sha1"/>
<include name="scala-library-src.jar.desired.sha1"/>
</fileset>
</delete>
</target>

<target name="starr.done" depends="starr.libs, starr.removesha1"/>

<!-- ===========================================================================
FORWARDED TARGETS FOR PACKAGING
============================================================================ -->

<target name="distpack" depends="dist.done">
<target name="distpack" depends="dist.done, docs.all">
<ant antfile="${src.dir}/build/pack.xml" target="pack-all.done" inheritall="yes" inheritrefs="yes"/>
</target>

<target name="distpack-maven" depends="dist.done, docs.all">
<ant antfile="${src.dir}/build/pack.xml" target="pack-maven.done" inheritall="yes" inheritrefs="yes"/>
</target>

<target name="distpack-opt"
description="Builds an optimised distribution.">
<antcall target="distpack">
<param name="scalac.args.optimise" value="-optimise"/>
</antcall>
</target>

<target name="distpack-maven-opt"
description="Builds an optimised maven distribution.">
<antcall target="distpack-maven">
<param name="scalac.args.optimise" value="-optimise"/>
</antcall>
</target>

<!-- Used by the scala-installer script -->
<target name="allallclean" depends="all.clean"/>

Expand All @@ -1937,7 +2072,7 @@ FORWARDED TARGETS FOR NIGHTLY BUILDS
</antcall>
</target>

<target name="nightly-nopt" depends="all.done">
<target name="nightly-nopt" depends="all.done, docs.all">
<!-- cannot antcall all.done, the properties defined in there (dist.dir) are not returned. need depends. -->
<ant antfile="${src.dir}/build/pack.xml" target="pack-all.done" inheritall="yes" inheritrefs="yes"/>
</target>
Expand Down
2 changes: 1 addition & 1 deletion lib/forkjoin.jar.desired.sha1
Original file line number Diff line number Diff line change
@@ -1 +1 @@
12c479a33ee283599fdb7aa91d6a1df0197a52cf ?forkjoin.jar
e29a62ba3abe56ba004b344e22be86dbeb12176f ?forkjoin.jar
12 changes: 12 additions & 0 deletions pull-binary-libs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,18 @@
#
# Script to pull binary artifacts for scala from the remote repository.

# Avoid corrupting the jar cache in ~/.sbt and the ugly crash when curl is not installed
# This affects Linux systems mostly, because wget is the default download tool and curl
# is not installed at all.
curl --version &> /dev/null
if [ $? -ne 0 ]
then
echo ""
echo "Please install curl to download the jar files necessary for building Scala."
echo ""
exit 1
fi

. $(dirname $0)/tools/binary-repo-lib.sh

# TODO - argument parsing...
Expand Down
4 changes: 2 additions & 2 deletions src/actors/scala/actors/scheduler/DrainableForkJoinPool.scala
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ package scheduler
import java.util.Collection
import scala.concurrent.forkjoin.{ForkJoinPool, ForkJoinTask}

private class DrainableForkJoinPool extends ForkJoinPool {
private class DrainableForkJoinPool(parallelism: Int, maxPoolSize: Int) extends ForkJoinPool(parallelism, ForkJoinPool.defaultForkJoinWorkerThreadFactory, null, true) {

override def drainTasksTo(c: Collection[ForkJoinTask[_]]): Int =
override def drainTasksTo(c: Collection[ _ >: ForkJoinTask[_]]): Int =
super.drainTasksTo(c)

}
9 changes: 2 additions & 7 deletions src/actors/scala/actors/scheduler/ForkJoinScheduler.scala
Original file line number Diff line number Diff line change
Expand Up @@ -38,13 +38,8 @@ class ForkJoinScheduler(val initCoreSize: Int, val maxSize: Int, daemon: Boolean
}

private def makeNewPool(): DrainableForkJoinPool = {
val p = new DrainableForkJoinPool()
// enable locally FIFO scheduling mode
p.setAsyncMode(true)
p.setParallelism(initCoreSize)
p.setMaximumPoolSize(maxSize)
val p = new DrainableForkJoinPool(initCoreSize, maxSize)
Debug.info(this+": parallelism "+p.getParallelism())
Debug.info(this+": max pool size "+p.getMaximumPoolSize())
p
}

Expand Down Expand Up @@ -144,7 +139,7 @@ class ForkJoinScheduler(val initCoreSize: Int, val maxSize: Int, daemon: Boolean
ForkJoinPool.managedBlock(new ForkJoinPool.ManagedBlocker {
def block = blocker.block()
def isReleasable() = blocker.isReleasable
}, true)
})
}

/** Suspends the scheduler. All threads that were in use by the
Expand Down

0 comments on commit 3ab383a

Please sign in to comment.