Skip to content

Commit 513232f

Browse files
committed
Merge remote-tracking branches 'axel22/feature/checkinit-transient' and 'jsuereth/mirrored-seq-extractors' into develop
2 parents f90efea + b3efb3d commit 513232f

File tree

84 files changed

+1718
-533
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

84 files changed

+1718
-533
lines changed

build.number

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#Tue Sep 11 19:21:09 CEST 2007
2+
version.major=2
3+
version.minor=10
4+
version.patch=0
5+
# This is the -N part of a version. if it's 0, it's dropped from maven versions.
6+
version.bnum=0
7+
8+
# Note: To build a release run ant with -Dbuild.release=true
9+
# To build an RC, run ant with -Dmaven.version.suffix=-RCN

build.xml

Lines changed: 69 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,8 @@ PROPERTIES
166166

167167
<!-- Loads custom properties definitions -->
168168
<property file="${basedir}/build.properties"/>
169+
<!-- Generating version number -->
170+
<property file="${basedir}/build.number"/>
169171

170172
<!-- Additional command line arguments for scalac. They are added to all build targets -->
171173
<property name="scalac.args" value=""/>
@@ -236,7 +238,30 @@ INITIALISATION
236238
</touch>
237239
</target>
238240

239-
<target name="init" depends="init.jars">
241+
<!-- Determines OSGi string + maven extension. -->
242+
<target name="init.hasbuildnum">
243+
<condition property="version.hasbuildnum">
244+
<not><equals arg1="${version.bnum}" arg2="0"/></not>
245+
</condition>
246+
</target>
247+
<target name="init.build.snapshot" unless="build.release">
248+
<property name="maven.version.suffix" value="-SNAPSHOT"/>
249+
</target>
250+
<target name="init.build.release" if="build.release" depends="init.hasbuildnum, init.build.snapshot">
251+
<property name="maven.version.suffix" value=""/>
252+
</target>
253+
<target name="init.build.nopatch.release" unless="version.hasbuildnum" depends="init.hasbuildnum">
254+
<property name="version.suffix" value=""/>
255+
</target>
256+
<!-- funny thing, ant is. Can only specify *one* property in if check. Guaranteed that both are true here,
257+
since properties are immutable. -->
258+
<target name="init.build.patch.release" if="version.hasbuildnum" depends="init.build.nopatch.release">
259+
<property name="version.suffix" value="-${version.bnum}"/>
260+
</target>
261+
262+
<target name="init.build.suffix.done" depends="init.build.release, init.build.patch.release"/>
263+
264+
<target name="init" depends="init.jars, init.build.suffix.done">
240265
<!-- scalac.args.optimise is selectively overridden in certain antcall tasks. -->
241266
<property name="scalac.args.optimise" value=""/>
242267
<!-- scalac.args.quickonly are added to quick.* targets but not others (particularly, locker.)
@@ -255,22 +280,30 @@ INITIALISATION
255280
<condition property="os.win">
256281
<os family="windows"/>
257282
</condition>
258-
259-
<!-- Generating version string -->
260-
<exec osfamily="unix" executable="tools/get-scala-revision" outputproperty="version.number" failifexecutionfails="false" />
261-
<exec osfamily="windows" executable="tools/get-scala-revision.bat" outputproperty="version.number" failifexecutionfails="false" />
283+
284+
<exec osfamily="unix" executable="tools/get-scala-commit-sha" outputproperty="git.commit.sha" failifexecutionfails="false" />
285+
<exec osfamily="windows" executable="tools/get-scala-commit-sha.bat" outputproperty="git.commit.sha" failifexecutionfails="false" />
286+
<exec osfamily="unix" executable="tools/get-scala-commit-date" outputproperty="git.commit.date" failifexecutionfails="false" />
287+
<exec osfamily="windows" executable="tools/get-scala-commit-date.bat" outputproperty="git.commit.date" failifexecutionfails="false" />
288+
<exec osfamily="unix" executable="tools/get-scala-commit-drift" outputproperty="git.commit.drift" failifexecutionfails="false" />
289+
<exec osfamily="windows" executable="tools/get-scala-commit-drift.bat" outputproperty="git.commit.drift" failifexecutionfails="false" />
290+
<!-- some default in case something went wrong getting the revision -->
291+
<property name="git.describe" value="-unknown-"/>
292+
293+
<!-- We use the git describe to determine the OSGi modifier for our build. -->
294+
<property
295+
name="maven.version.number"
296+
value="${version.major}.${version.minor}.${version.patch}${version.suffix}${maven.version.suffix}"/>
297+
<property
298+
name="version.number"
299+
value="${maven.version.number}-${git.commit.date}-${git.commit.drift}-${git.commit.sha}"/>
300+
<property
301+
name="osgi.version.number"
302+
value="${version.major}.${version.minor}.${version.patch}.v${git.commit.date}${version.suffix}-${git.commit.sha}"/>
262303
<!-- some default in case something went wrong getting the revision -->
263304
<property name="version.number" value="-unknown-"/>
264305
<property name="init.avail" value="yes"/>
265306

266-
<!-- And print-out what we are building -->
267-
<echo message=" build time: ${time.human}" />
268-
<echo message=" java version: ${java.vm.name} ${java.version}" />
269-
<echo message=" java args: ${env.ANT_OPTS} ${jvm.opts}" />
270-
<echo message=" javac args: ${javac.args}" />
271-
<echo message=" scalac args: ${scalac.args}" />
272-
<echo message=" build number: ${version.number}" />
273-
274307
<!-- Local libs (developer use.) -->
275308
<mkdir dir="${lib-extra.dir}"/>
276309

@@ -293,7 +326,17 @@ INITIALISATION
293326
<path refid="lib.extra"/>
294327
</path>
295328

296-
<!-- Define tasks that can be run with Starr -->
329+
<!-- And print-out what we are building -->
330+
<echo message=" build time: ${time.human}" />
331+
<echo message=" java version: ${java.vm.name} ${java.version}" />
332+
<echo message=" java args: ${env.ANT_OPTS} ${jvm.opts}" />
333+
<echo message=" javac args: ${javac.args}" />
334+
<echo message=" scalac args: ${scalac.args}" />
335+
<echo message=" maven version: ${maven.version.number}"/>
336+
<echo message=" OSGi version: ${osgi.version.number}" />
337+
<echo message="canonical version: ${version.number}" />
338+
339+
<!-- Define tasks that can be run with Starr -->
297340
<path id="starr.classpath">
298341
<pathelement location="${lib.starr.jar}"/>
299342
<pathelement location="${comp.starr.jar}"/>
@@ -358,6 +401,8 @@ LOCAL REFERENCE BUILD (LOCKER)
358401
</scalacfork>
359402
<propertyfile file="${build-locker.dir}/classes/library/library.properties">
360403
<entry key="version.number" value="${version.number}"/>
404+
<entry key="maven.version.number" value="${maven.version.number}"/>
405+
<entry key="osgi.version.number" value="${osgi.version.number}"/>
361406
<entry key="copyright.string" value="${copyright.string}"/>
362407
</propertyfile>
363408
<copy todir="${build-locker.dir}/classes/library">
@@ -397,6 +442,8 @@ LOCAL REFERENCE BUILD (LOCKER)
397442
</scalacfork>
398443
<propertyfile file="${build-locker.dir}/classes/compiler/compiler.properties">
399444
<entry key="version.number" value="${version.number}"/>
445+
<entry key="maven.version.number" value="${maven.version.number}"/>
446+
<entry key="osgi.version.number" value="${osgi.version.number}"/>
400447
<entry key="copyright.string" value="${copyright.string}"/>
401448
</propertyfile>
402449
<copy todir="${build-locker.dir}/classes/compiler">
@@ -628,6 +675,8 @@ QUICK BUILD (QUICK)
628675
</scalacfork>
629676
<propertyfile file="${build-quick.dir}/classes/library/library.properties">
630677
<entry key="version.number" value="${version.number}"/>
678+
<entry key="maven.version.number" value="${maven.version.number}"/>
679+
<entry key="osgi.version.number" value="${osgi.version.number}"/>
631680
<entry key="copyright.string" value="${copyright.string}"/>
632681
</propertyfile>
633682
<copy todir="${build-quick.dir}/classes/library">
@@ -687,6 +736,8 @@ QUICK BUILD (QUICK)
687736
</scalacfork>
688737
<propertyfile file="${build-quick.dir}/classes/compiler/compiler.properties">
689738
<entry key="version.number" value="${version.number}"/>
739+
<entry key="maven.version.number" value="${maven.version.number}"/>
740+
<entry key="osgi.version.number" value="${osgi.version.number}"/>
690741
<entry key="copyright.string" value="${copyright.string}"/>
691742
</propertyfile>
692743
<copy todir="${build-quick.dir}/classes/compiler">
@@ -1169,6 +1220,8 @@ BOOTSTRAPPING BUILD (STRAP)
11691220
</scalacfork>
11701221
<propertyfile file="${build-strap.dir}/classes/library/library.properties">
11711222
<entry key="version.number" value="${version.number}"/>
1223+
<entry key="maven.version.number" value="${maven.version.number}"/>
1224+
<entry key="osgi.version.number" value="${osgi.version.number}"/>
11721225
<entry key="copyright.string" value="${copyright.string}"/>
11731226
</propertyfile>
11741227
<copy todir="${build-strap.dir}/classes/library">
@@ -1208,6 +1261,8 @@ BOOTSTRAPPING BUILD (STRAP)
12081261
</scalacfork>
12091262
<propertyfile file="${build-strap.dir}/classes/compiler/compiler.properties">
12101263
<entry key="version.number" value="${version.number}"/>
1264+
<entry key="maven.version.number" value="${maven.version.number}"/>
1265+
<entry key="osgi.version.number" value="${osgi.version.number}"/>
12111266
<entry key="copyright.string" value="${copyright.string}"/>
12121267
</propertyfile>
12131268
<copy todir="${build-strap.dir}/classes/compiler">
@@ -2077,12 +2132,6 @@ FORWARDED TARGETS FOR NIGHTLY BUILDS
20772132
<ant antfile="${src.dir}/build/pack.xml" target="pack-all.done" inheritall="yes" inheritrefs="yes"/>
20782133
</target>
20792134

2080-
<target name="nightly.checkinit">
2081-
<antcall target="nightly-nopt">
2082-
<param name="scalac.args.optimise" value="-Xcheckinit"/>
2083-
</antcall>
2084-
</target>
2085-
20862135
<target name="nightly.checkall">
20872136
<antcall target="nightly-nopt">
20882137
<param name="partest.scalacopts" value="-Ycheck:all"/>

src/build/maven/maven-deploy.xml

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,15 @@
1616
<property name="local.release.repository" value="${user.home}/.m2/repository" />
1717
<property name="repository.credentials.id" value="sonatype-nexus" />
1818
<property name="settings.file" value="${user.home}/.m2/settings.xml" />
19-
19+
<condition property="version.is.snapshot">
20+
<contains string="${maven.version.number}" substring="-SNAPSHOT"/>
21+
</condition>
22+
2023
<echo>Using server[${repository.credentials.id}] for maven repository credentials.
2124
Please make sure that your ~/.m2/settings.xml has the needed username/password for this server id
2225
</echo>
26+
27+
2328
</target>
2429

2530
<target name="init.maven" depends="init.properties">
@@ -241,28 +246,31 @@
241246
</target>
242247

243248
<!-- Local Targets -->
244-
<target name="deploy.snapshot.local" depends="deploy.local.init" description="Deploys the bundled snapshot of the Scala Lanaguage to a local maven repository">
245-
<deploy-local-all version="${maven.snapshot.version.number}" repository="${local.snapshot.repository}" />
249+
<target name="deploy.snapshot.local" depends="deploy.local.init" if="version.is.snapshot" description="Deploys the bundled snapshot of the Scala Lanaguage to a local maven repository">
250+
<deploy-local-all version="${maven.version.number}" repository="${local.snapshot.repository}" />
246251
</target>
247252

248-
<target name="deploy.release.local" depends="deploy.local.init" description="Deploys the bundled files as a release into the local Maven repository">
249-
<deploy-local-all version="${version.number}" repository="${local.release.repository}" />
253+
<target name="deploy.release.local" depends="deploy.local.init" unless="version.is.snapshot" description="Deploys the bundled files as a release into the local Maven repository">
254+
<deploy-local-all version="${maven.version.number}" repository="${local.release.repository}" />
250255
</target>
256+
<target name="deploy.local" depends="deploy.snapshot.local, deploy.release.local" description="Deploys the bundle files to the local maven repo."/>
251257

252-
<!-- Remote Targets -->
253-
<target name="deploy.signed.snapshot" depends="deploy.remote.init" description="Deploys the bundled files as a snapshot into the desired remote Maven repository">
254-
<deploy-remote-signed-all version="${maven.snapshot.version.number}" repository="${remote.snapshot.repository}" />
258+
<!-- Remote Signed Targets -->
259+
<target name="deploy.signed.snapshot" depends="deploy.remote.init" if="version.is.snapshot" description="Deploys the bundled files as a snapshot into the desired remote Maven repository">
260+
<deploy-remote-signed-all version="${maven.version.number}" repository="${remote.snapshot.repository}" />
255261
</target>
256262

257-
<target name="deploy.signed.release" depends="deploy.remote.init" description="Deploys the bundled files as a release into the desired remote Maven repository">
258-
<deploy-remote-signed-all version="${version.number}" repository="${remote.release.repository}" />
263+
<target name="deploy.signed.release" depends="deploy.remote.init" unless="version.is.snapshot" description="Deploys the bundled files as a release into the desired remote Maven repository">
264+
<deploy-remote-signed-all version="${maven.version.number}" repository="${remote.release.repository}" />
259265
</target>
260-
261-
<target name="deploy.snapshot" depends="deploy.remote.init" description="Deploys the bundled files as a snapshot into the desired remote Maven repository">
262-
<deploy-remote-all version="${maven.snapshot.version.number}" repository="${remote.snapshot.repository}" />
266+
<target name="deploy.signed" depends="deploy.signed.release, deploy.signed.snapshot" description="Deploys signed bundles to remote repo"/>
267+
<!-- Remote unsigned targets -->
268+
<target name="deploy.snapshot" depends="deploy.remote.init" if="version.is.snapshot" description="Deploys the bundled files as a snapshot into the desired remote Maven repository">
269+
<deploy-remote-all version="${maven.version.number}" repository="${remote.snapshot.repository}" />
263270
</target>
264271

265-
<target name="deploy.release" depends="deploy.remote.init" description="Deploys the bundled files as a release into the desired remote Maven repository">
266-
<deploy-remote-all version="${version.number}" repository="${remote.release.repository}" />
272+
<target name="deploy.release" depends="deploy.remote.init" unless="version.is.snapshot" description="Deploys the bundled files as a release into the desired remote Maven repository">
273+
<deploy-remote-all version="${maven.version.number}" repository="${remote.release.repository}" />
267274
</target>
275+
<target name="deploy" depends="deploy.snapshot, deploy.release" description="Deploys unsigned artifacts to the maven repo."/>
268276
</project>

src/build/pack.xml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -315,8 +315,6 @@ MAIN DISTRIBUTION SBAZ
315315
<copy tofile="${dists.dir}/maven/${version.number}/build.xml"
316316
file="${src.dir}/build/maven/maven-deploy.xml"/>
317317
<!-- export properties for use when deploying -->
318-
<property name="maven.snapshot.version.number"
319-
value="${version.major}.${version.minor}.${version.patch}-SNAPSHOT"/>
320318
<echoproperties destfile="${dists.dir}/maven/${version.number}/build.properties"/>
321319
</target>
322320

src/compiler/scala/reflect/internal/Definitions.scala

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -904,13 +904,28 @@ trait Definitions extends reflect.api.StandardDefinitions {
904904
def termMember(owner: Symbol, name: String): Symbol = owner.info.member(newTermName(name))
905905
def typeMember(owner: Symbol, name: String): Symbol = owner.info.member(newTypeName(name))
906906

907+
def findMemberFromRoot(fullName: Name): Symbol = {
908+
val segs = nme.segments(fullName.toString, fullName.isTermName)
909+
if (segs.isEmpty) NoSymbol
910+
else findNamedMember(segs.tail, definitions.RootClass.info member segs.head)
911+
}
912+
def findNamedMember(fullName: Name, root: Symbol): Symbol = {
913+
val segs = nme.segments(fullName.toString, fullName.isTermName)
914+
if (segs.isEmpty || segs.head != root.simpleName) NoSymbol
915+
else findNamedMember(segs.tail, root)
916+
}
917+
def findNamedMember(segs: List[Name], root: Symbol): Symbol =
918+
if (segs.isEmpty) root
919+
else findNamedMember(segs.tail, root.info member segs.head)
920+
907921
def getMember(owner: Symbol, name: Name): Symbol = {
908922
if (owner == NoSymbol) NoSymbol
909923
else owner.info.nonPrivateMember(name) match {
910924
case NoSymbol => throw new FatalError(owner + " does not have a member " + name)
911925
case result => result
912926
}
913927
}
928+
914929
def packageExists(packageName: String): Boolean =
915930
getModuleIfDefined(packageName).isPackage
916931

src/compiler/scala/reflect/internal/Flags.scala

Lines changed: 26 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -468,33 +468,34 @@ class Flags extends ModifierFlags {
468468
protected final val rawFlagPickledOrder: Array[Long] = pickledListOrder.toArray
469469

470470
def flagOfModifier(mod: Modifier): Long = mod match {
471-
case Modifier.`protected` => PROTECTED
472-
case Modifier.`private` => PRIVATE
473-
case Modifier.`override` => OVERRIDE
474-
case Modifier.`abstract` => ABSTRACT
475-
case Modifier.`final`=> FINAL
476-
case Modifier.`sealed`=> SEALED
477-
case Modifier.`implicit`=> IMPLICIT
478-
case Modifier.`lazy`=> LAZY
479-
case Modifier.`case`=> CASE
480-
case Modifier.`trait`=> TRAIT
481-
case Modifier.deferred => DEFERRED
482-
case Modifier.interface => INTERFACE
483-
case Modifier.mutable => MUTABLE
484-
case Modifier.parameter => PARAM
485-
case Modifier.`macro` => MACRO
486-
case Modifier.covariant => COVARIANT
487-
case Modifier.contravariant => CONTRAVARIANT
488-
case Modifier.preSuper => PRESUPER
471+
case Modifier.`protected` => PROTECTED
472+
case Modifier.`private` => PRIVATE
473+
case Modifier.`override` => OVERRIDE
474+
case Modifier.`abstract` => ABSTRACT
475+
case Modifier.`final` => FINAL
476+
case Modifier.`sealed` => SEALED
477+
case Modifier.`implicit` => IMPLICIT
478+
case Modifier.`lazy` => LAZY
479+
case Modifier.`case` => CASE
480+
case Modifier.`trait` => TRAIT
481+
case Modifier.deferred => DEFERRED
482+
case Modifier.interface => INTERFACE
483+
case Modifier.mutable => MUTABLE
484+
case Modifier.parameter => PARAM
485+
case Modifier.`macro` => MACRO
486+
case Modifier.covariant => COVARIANT
487+
case Modifier.contravariant => CONTRAVARIANT
488+
case Modifier.preSuper => PRESUPER
489489
case Modifier.abstractOverride => ABSOVERRIDE
490-
case Modifier.local => LOCAL
491-
case Modifier.java => JAVA
492-
case Modifier.static => STATIC
493-
case Modifier.caseAccessor => CASEACCESSOR
490+
case Modifier.local => LOCAL
491+
case Modifier.java => JAVA
492+
case Modifier.static => STATIC
493+
case Modifier.caseAccessor => CASEACCESSOR
494494
case Modifier.defaultParameter => DEFAULTPARAM
495-
case Modifier.defaultInit => DEFAULTINIT
496-
case Modifier.paramAccessor => PARAMACCESSOR
497-
case Modifier.bynameParameter => BYNAMEPARAM
495+
case Modifier.defaultInit => DEFAULTINIT
496+
case Modifier.paramAccessor => PARAMACCESSOR
497+
case Modifier.bynameParameter => BYNAMEPARAM
498+
case _ => 0
498499
}
499500

500501
def flagsOfModifiers(mods: List[Modifier]): Long =

src/compiler/scala/tools/nsc/Global.scala

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ class Global(var currentSettings: Settings, var reporter: Reporter) extends Symb
4444
with symtab.Positions {
4545

4646
override def settings = currentSettings
47+
48+
import definitions.{ findNamedMember, findMemberFromRoot }
4749

4850
// alternate constructors ------------------------------------------
4951

@@ -1494,21 +1496,6 @@ class Global(var currentSettings: Settings, var reporter: Reporter) extends Symb
14941496
afterPhase(phase) { currentRun.units foreach (treePrinter.print(_)) }
14951497
}
14961498

1497-
private def findMemberFromRoot(fullName: Name): Symbol = {
1498-
val segs = nme.segments(fullName.toString, fullName.isTermName)
1499-
if (segs.isEmpty) NoSymbol
1500-
else findNamedMember(segs.tail, definitions.RootClass.info member segs.head)
1501-
}
1502-
1503-
private def findNamedMember(fullName: Name, root: Symbol): Symbol = {
1504-
val segs = nme.segments(fullName.toString, fullName.isTermName)
1505-
if (segs.isEmpty || segs.head != root.simpleName) NoSymbol
1506-
else findNamedMember(segs.tail, root)
1507-
}
1508-
private def findNamedMember(segs: List[Name], root: Symbol): Symbol =
1509-
if (segs.isEmpty) root
1510-
else findNamedMember(segs.tail, root.info member segs.head)
1511-
15121499
/** We resolve the class/object ambiguity by passing a type/term name.
15131500
*/
15141501
def showDef(fullName: Name, declsOnly: Boolean, ph: Phase) = {

0 commit comments

Comments
 (0)