Merge 2.10.x: #2346 edition #2347

Merged
merged 7 commits into from Apr 4, 2013

4 participants

@adriaanm
The Scala Programming Language member

Merge #2346 into master

adriaanm added some commits Mar 27, 2013
@adriaanm adriaanm get rid of args element in staged-scalac 5dca660
@adriaanm adriaanm Regularity for build.xml: 1 output dir / project
Untangle actors, msil builds from library/compiler builds.
For further regularity, always build java files.

TODO: update IDE projects
ceeb40c
@adriaanm adriaanm Preliminary support for zinc.
To use Zinc with the ant build:
  - install zinc and symlink the installed zinc script to ${basedir}/tools/zinc
    (${basedir} is where build.xml and the rest of your checkout resides)
  - make sure to set ZINC_OPTS to match ANT_OPTS!
  - invoke ant as `ant -Dstarr.version="2.10.1" -Dlocker.skip=1`
    (zinc does not work if locker is only classfiles, needs jars
     TODO rework the build to pack locker and build using that when using zinc?)

Mostly to enable dog fooding of incremental compilation work for now.
7c0e8f0
@adriaanm adriaanm formatting 92a1785
@adriaanm adriaanm Merge 2.10.x into master
Conflicts:
	build.xml
f4814f0
@paulp

If this is important, why do we leave it for the user to do?

The Scala Programming Language member

True, I felt like pleasure-delaying one last addition to my ant skill set.

@paulp

If someone has zinc on their path, they shouldn't have to do this manual step.

@paulp

Is "NOT SET" something you made up or something ant understands? Either way, does it have semantics which are documented somewhere?

The Scala Programming Language member

Agreed with @paulp.

The Scala Programming Language member

Actually, if you scroll down you see:

+      <if><not><equals arg1="@{srcpath}" arg2="NOT SET"/></not><then>
+        <property name="args" value="@{params} -sourcepath @{srcpath}"/>
+      </then></if>

So NOT SET seems to be just a dummy value that you'll need to compare against later on. I don't know if there's an ant standard for that but a comment explaining "NOT SET" would help.

@gkossakowski
The Scala Programming Language member

The fact that attributes got reordered made it a little bit more difficult to review this commit but I verified this change is ok.

@gkossakowski
The Scala Programming Language member

This comment is not very illuminating. Is this a hack because we might not have anything to compile? Is that the reason why we are getting rid of <pre/> and <post/>?

What would be non-hacky way to do it?

The Scala Programming Language member

Correct. Alternatives would be to have an attribute to say whether javac should be invoked or not, but I figured it's more robust to just always compile it because it's so fast.

The Scala Programming Language member

Yep, so it's not really a hack in my opinion. That's the best way to do it.

The Scala Programming Language member

ok, I'll fix the comment :-)

The Scala Programming Language member

Don't forget about commit message mentioning this ;-)

@gkossakowski
The Scala Programming Language member

Could it because the last time starr got replaced was in d3095cb which was long before 2.10.0 final and is binary incompatible with final? I believe zinc ships with precompiled compiler interface and does not compile it on demand. Right?

The Scala Programming Language member

I haven't double checked, but I think I saw the compiler interface being compiled in zinc as well. However, it could still explain the problem if it cached the compiled interface too eagerly. /cc @pvlugter

Zinc will compile and cache the compiler interface as needed. The compiler interface is cached under ~/.zinc/$zincVersion/compiler-interface-$scalaActualVersion-$javaClassVersion.

@adriaanm
The Scala Programming Language member

TODO note to self: remove java-excludes as that attribute was only used to compile msil (could probably also get rid of those files that aren't even compiled in 2.10.x and drop the attribute as well)

@adriaanm adriaanm merged commit 7bb981a into scala:master Apr 4, 2013

1 check was pending

Details default pr-checkin-per-commit OK but waiting for Some(https://scala-webapps.epfl.ch/jenkins/job/pr-checkin-per-commit/1406/) for commit 6591ac
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment