<commit_before><?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ci [
  <!ELEMENT ci (task*,matrix*)>
  <!ELEMENT task (#PCDATA)>
  <!ATTLIST task id ID #REQUIRED>
  <!ELEMENT matrix (run*)>
  <!ATTLIST matrix id ID #REQUIRED>
  <!ELEMENT run (v*)>
  <!ATTLIST run matrix IDREF #IMPLIED>
  <!ATTLIST run task IDREF #IMPLIED>
  <!ELEMENT v (#PCDATA)>
  <!ATTLIST v n CDATA #REQUIRED>
]>
<ci>

  <task id="main"><![CDATA[
    setJavaVersion $java
    sbtretry ++$scala helloworld/run \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala helloworld/run \
        'set scalaJSStage in Global := FullOptStage' \
        ++$scala helloworld/run \
        helloworld/clean &&
    sbtretry 'set scalaJSOptimizerOptions in helloworld ~= (_.withDisableOptimizer(true))' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala helloworld/run \
        helloworld/clean &&
    sbtretry 'set scalaJSSemantics in helloworld ~= (_.withAsInstanceOfs(org.scalajs.core.tools.sem.CheckedBehavior.Unchecked))' \
        ++$scala helloworld/run \
        helloworld/clean &&
    sbtretry 'set inScope(ThisScope in helloworld)(postLinkJSEnv := new org.scalajs.jsenv.RetryingComJSEnv(PhantomJSEnv().value))' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala helloworld/run \
        'set scalaJSStage in Global := FullOptStage' \
        ++$scala helloworld/run &&
    sbtretry 'set inScope(ThisScope in testingExample)(postLinkJSEnv := new org.scalajs.jsenv.RetryingComJSEnv(PhantomJSEnv().value))' \
        ++$scala testingExample/test \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testingExample/test \
        'set scalaJSStage in Global := FullOptStage' \
        ++$scala testingExample/test \
        testingExample/clean &&
    sbtretry 'set inScope(ThisScope in testingExample)(postLinkJSEnv := new org.scalajs.jsenv.RetryingComJSEnv(PhantomJSEnv().value))' \
        'set scalaJSOptimizerOptions in testingExample ~= (_.withDisableOptimizer(true))' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testingExample/test &&
    sbtretry ++$scala testSuiteJVM/test testSuiteJVM/clean &&
    sbtretry 'set scalaJSStage in Global := FastOptStage' \
        ++$scala javalibExTestSuite/test \
        'set scalaJSStage in Global := FullOptStage' \
        ++$scala javalibExTestSuite/test &&
    sbtretry ++$scala testSuite/test:doc compiler/test reversi/fastOptJS reversi/fullOptJS &&
    sbtretry ++$scala compiler/compile:doc library/compile:doc javalibEx/compile:doc \
        testInterface/compile:doc jasmineTestFramework/compile:doc &&
    sbtretry ++$scala partest/fetchScalaSource &&
    sbtretry ++$scala library/mimaReportBinaryIssues testInterface/mimaReportBinaryIssues &&
    sh ci/checksizes.sh $scala &&
    sh ci/check-partest-coverage.sh $scala
  ]]></task>

  <task id="test-suite-ecma-script5"><![CDATA[
    setJavaVersion $java
    sbtretry ++$scala testSuite/test noIrCheckTest/test \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testSuite/test noIrCheckTest/test \
        'set scalaJSStage in Global := FullOptStage' \
        ++$scala testSuite/test noIrCheckTest/test \
        testSuite/clean noIrCheckTest/clean &&
    sbtretry 'set scalaJSOptimizerOptions in testSuite ~= (_.withDisableOptimizer(true))' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testSuite/test \
        testSuite/clean &&
    sbtretry 'set scalaJSSemantics in testSuite ~= {
           _.withAsInstanceOfs(org.scalajs.core.tools.sem.CheckedBehavior.Compliant)
            .withModuleInit(org.scalajs.core.tools.sem.CheckedBehavior.Compliant)
            .withStrictFloats(true)
         }' \
        ++$scala testSuite/test \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testSuite/test \
        'set scalaJSStage in Global := FullOptStage' \
        ++$scala testSuite/test \
        testSuite/clean &&
    sbtretry 'set scalaJSSemantics in testSuite ~= {
           _.withAsInstanceOfs(org.scalajs.core.tools.sem.CheckedBehavior.Compliant)
            .withModuleInit(org.scalajs.core.tools.sem.CheckedBehavior.Compliant)
            .withStrictFloats(true)
         }' \
        'set scalaJSOptimizerOptions in testSuite ~= (_.withDisableOptimizer(true))' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testSuite/test \
        testSuite/clean &&
    sbtretry 'set inScope(ThisScope in testSuite)(postLinkJSEnv := new org.scalajs.jsenv.RetryingComJSEnv(PhantomJSEnv().value))' \
        'set parallelExecution in (testSuite, Test) := false' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testSuite/test \
        'set scalaJSStage in Global := FullOptStage' \
        ++$scala testSuite/test \
        testSuite/clean &&
    sbtretry 'set scalacOptions in testSuite += "-Xexperimental"' \
        ++$scala testSuite/test \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testSuite/test \
        'set scalaJSStage in Global := FullOptStage' \
        ++$scala testSuite/test
  ]]></task>

  <task id="test-suite-ecma-script6"><![CDATA[
    setJavaVersion $java
    sbtretry 'set Seq(testSuite, noIrCheckTest).map(pr => scalaJSOutputMode in pr := org.scalajs.core.tools.javascript.OutputMode.ECMAScript6)' \
        'set Seq(testSuite, noIrCheckTest).map(pr => postLinkJSEnv in pr := NodeJSEnv(executable = "/home/jenkins/apps/iojs-2.0/bin/iojs", args = Seq("--harmony-rest-parameters")).value.withSourceMap(false))' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testSuite/test noIrCheckTest/test \
        testSuite/clean noIrCheckTest/clean &&
    sbtretry 'set scalaJSOutputMode in testSuite := org.scalajs.core.tools.javascript.OutputMode.ECMAScript6' \
        'set postLinkJSEnv in testSuite := NodeJSEnv(executable = "/home/jenkins/apps/iojs-2.0/bin/iojs", args = Seq("--harmony-rest-parameters")).value.withSourceMap(false)' \
        'set scalaJSOptimizerOptions in testSuite ~= (_.withDisableOptimizer(true))' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testSuite/test \
        testSuite/clean &&
    sbtretry 'set scalaJSOutputMode in testSuite := org.scalajs.core.tools.javascript.OutputMode.ECMAScript6' \
        'set postLinkJSEnv in testSuite := NodeJSEnv(executable = "/home/jenkins/apps/iojs-2.0/bin/iojs", args = Seq("--harmony-rest-parameters")).value.withSourceMap(false)' \
        'set scalaJSSemantics in testSuite ~= {
           _.withAsInstanceOfs(org.scalajs.core.tools.sem.CheckedBehavior.Compliant)
            .withModuleInit(org.scalajs.core.tools.sem.CheckedBehavior.Compliant)
            .withStrictFloats(true)
         }' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testSuite/test \
        testSuite/clean &&
    sbtretry 'set scalaJSOutputMode in testSuite := org.scalajs.core.tools.javascript.OutputMode.ECMAScript6' \
        'set postLinkJSEnv in testSuite := NodeJSEnv(executable = "/home/jenkins/apps/iojs-2.0/bin/iojs", args = Seq("--harmony-rest-parameters")).value.withSourceMap(false)' \
        'set scalaJSSemantics in testSuite ~= {
           _.withAsInstanceOfs(org.scalajs.core.tools.sem.CheckedBehavior.Compliant)
            .withModuleInit(org.scalajs.core.tools.sem.CheckedBehavior.Compliant)
            .withStrictFloats(true)
         }' \
        'set scalaJSOptimizerOptions in testSuite ~= (_.withDisableOptimizer(true))' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testSuite/test \
        testSuite/clean &&
    sbtretry 'set scalaJSOutputMode in testSuite := org.scalajs.core.tools.javascript.OutputMode.ECMAScript6' \
        'set postLinkJSEnv in testSuite := NodeJSEnv(executable = "/home/jenkins/apps/iojs-2.0/bin/iojs", args = Seq("--harmony-rest-parameters")).value.withSourceMap(false)' \
        'set scalaJSSemantics in testSuite ~= { _.optimized }' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testSuite/test \
        testSuite/clean &&
    sbtretry 'set scalaJSOutputMode in testSuite := org.scalajs.core.tools.javascript.OutputMode.ECMAScript6' \
        'set postLinkJSEnv in testSuite := NodeJSEnv(executable = "/home/jenkins/apps/iojs-2.0/bin/iojs", args = Seq("--harmony-rest-parameters")).value.withSourceMap(false)' \
        'set scalaJSSemantics in testSuite ~= { _.optimized }' \
        'set scalaJSOptimizerOptions in testSuite ~= (_.withDisableOptimizer(true))' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testSuite/test \
        testSuite/clean
  ]]></task>

  <task id="test-suite-ecma-script6-strong-mode"><![CDATA[
    setJavaVersion $java
    sbtretry 'set Seq(testSuite, noIrCheckTest).map(pr => scalaJSOutputMode in pr := org.scalajs.core.tools.javascript.OutputMode.ECMAScript6StrongMode)' \
        'set Seq(testSuite, noIrCheckTest).map(pr => postLinkJSEnv in pr := NodeJSEnv(executable = "/home/jenkins/apps/iojs-2.0/bin/iojs", args = Seq("--harmony-rest-parameters", "--strong-mode")).value.withSourceMap(false))' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testSuite/test noIrCheckTest/test \
        testSuite/clean noIrCheckTest/clean &&
    sbtretry 'set scalaJSOutputMode in testSuite := org.scalajs.core.tools.javascript.OutputMode.ECMAScript6StrongMode' \
        'set postLinkJSEnv in testSuite := NodeJSEnv(executable = "/home/jenkins/apps/iojs-2.0/bin/iojs", args = Seq("--harmony-rest-parameters", "--strong-mode")).value.withSourceMap(false)' \
        'set scalaJSOptimizerOptions in testSuite ~= (_.withDisableOptimizer(true))' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testSuite/test \
        testSuite/clean &&
    sbtretry 'set scalaJSOutputMode in testSuite := org.scalajs.core.tools.javascript.OutputMode.ECMAScript6StrongMode' \
        'set postLinkJSEnv in testSuite := NodeJSEnv(executable = "/home/jenkins/apps/iojs-2.0/bin/iojs", args = Seq("--harmony-rest-parameters", "--strong-mode")).value.withSourceMap(false)' \
        'set scalaJSSemantics in testSuite ~= {
           _.withAsInstanceOfs(org.scalajs.core.tools.sem.CheckedBehavior.Compliant)
            .withModuleInit(org.scalajs.core.tools.sem.CheckedBehavior.Compliant)
            .withStrictFloats(true)
         }' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testSuite/test \
        testSuite/clean &&
    sbtretry 'set scalaJSOutputMode in testSuite := org.scalajs.core.tools.javascript.OutputMode.ECMAScript6StrongMode' \
        'set postLinkJSEnv in testSuite := NodeJSEnv(executable = "/home/jenkins/apps/iojs-2.0/bin/iojs", args = Seq("--harmony-rest-parameters", "--strong-mode")).value.withSourceMap(false)' \
        'set scalaJSSemantics in testSuite ~= {
           _.withAsInstanceOfs(org.scalajs.core.tools.sem.CheckedBehavior.Compliant)
            .withModuleInit(org.scalajs.core.tools.sem.CheckedBehavior.Compliant)
            .withStrictFloats(true)
         }' \
        'set scalaJSOptimizerOptions in testSuite ~= (_.withDisableOptimizer(true))' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testSuite/test \
        testSuite/clean &&
    sbtretry 'set scalaJSOutputMode in testSuite := org.scalajs.core.tools.javascript.OutputMode.ECMAScript6StrongMode' \
        'set postLinkJSEnv in testSuite := NodeJSEnv(executable = "/home/jenkins/apps/iojs-2.0/bin/iojs", args = Seq("--harmony-rest-parameters", "--strong-mode")).value.withSourceMap(false)' \
        'set scalaJSSemantics in testSuite ~= { _.optimized }' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testSuite/test \
        testSuite/clean &&
    sbtretry 'set scalaJSOutputMode in testSuite := org.scalajs.core.tools.javascript.OutputMode.ECMAScript6StrongMode' \
        'set postLinkJSEnv in testSuite := NodeJSEnv(executable = "/home/jenkins/apps/iojs-2.0/bin/iojs", args = Seq("--harmony-rest-parameters", "--strong-mode")).value.withSourceMap(false)' \
        'set scalaJSSemantics in testSuite ~= { _.optimized }' \
        'set scalaJSOptimizerOptions in testSuite ~= (_.withDisableOptimizer(true))' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testSuite/test \
        testSuite/clean
  ]]></task>

  <task id="bootstrap"><![CDATA[
    setJavaVersion $java
    sbt 'set postLinkJSEnv in toolsJS := NodeJSEnv(args = Seq("--max_old_space_size=2048")).value.withSourceMap(false)' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala toolsJS/test \
        'set scalaJSStage in Global := FullOptStage' \
        ++$scala toolsJS/test \
        irJS/mimaReportBinaryIssues toolsJS/mimaReportBinaryIssues
  ]]></task>

  <task id="tools-cli-stubs"><![CDATA[
    setJavaVersion $java
    sbt ++$scala tools/package tools/test cli/package cli/assembly \
        stubs/package jsEnvs/test \
        ir/mimaReportBinaryIssues tools/mimaReportBinaryIssues \
        jsEnvs/mimaReportBinaryIssues testAdapter/mimaReportBinaryIssues \
        stubs/mimaReportBinaryIssues cli/mimaReportBinaryIssues &&
    sbt ++$scala ir/compile:doc tools/compile:doc jsEnvs/compile:doc \
        testAdapter/compile:doc stubs/compile:doc
  ]]></task>

  <task id="tools-cli-stubs-sbtplugin"><![CDATA[
    setJavaVersion $java
    sbt ++$scala tools/package tools/test cli/package cli/assembly \
        stubs/package jsEnvs/test \
        sbtPlugin/package \
        ir/mimaReportBinaryIssues tools/mimaReportBinaryIssues \
        jsEnvs/mimaReportBinaryIssues testAdapter/mimaReportBinaryIssues \
        stubs/mimaReportBinaryIssues cli/mimaReportBinaryIssues \
        sbtPlugin/mimaReportBinaryIssues &&
    sbt ++$scala library/scalastyle javalanglib/scalastyle javalib/scalastyle \
        javalibEx/scalastyle ir/scalastyle compiler/scalastyle \
        compiler/test:scalastyle tools/scalastyle tools/test:scalastyle \
        jsEnvs/scalastyle jsEnvs/test:scalastyle testAdapter/scalastyle \
        sbtPlugin/scalastyle testInterface/scalastyle \
        jasmineTestFramework/scalastyle testSuite/test:scalastyle  testSuiteJVM/test:scalastyle \
        javalibExTestSuite/test:scalastyle helloworld/scalastyle \
        reversi/scalastyle testingExample/scalastyle \
        testingExample/test:scalastyle &&
    sbt ++$scala ir/compile:doc tools/compile:doc jsEnvs/compile:doc \
        testAdapter/compile:doc stubs/compile:doc sbtPlugin/compile:doc
  ]]></task>

  <task id="partestc"><![CDATA[
    setJavaVersion $java
    sbt ++$scala partest/compile
  ]]></task>

  <task id="sbtplugin-test"><![CDATA[
    # Publish Scala.js artifacts locally
    # Then go into standalone project and test
    sbt ++2.11.7 compiler/publishLocal library/publishLocal javalibEx/publishLocal \
                 testInterface/publishLocal jasmineTestFramework/publishLocal stubs/publishLocal \
                 jUnitPlugin/publishLocal jUnitRuntime/publishLocal \
        ++2.10.6 ir/publishLocal tools/publishLocal jsEnvs/publishLocal \
                 testAdapter/publishLocal sbtPlugin/publishLocal &&
    cd sbt-plugin-test &&
    sbt noDOM/run withDOM/run test \
        'set scalaJSStage in Global := FastOptStage' \
        jetty9/run test \
        jsDependenciesTest/packageJSDependencies \
        jsDependenciesTest/packageMinifiedJSDependencies
  ]]></task>

  <task id="partest-noopt"><![CDATA[
    setJavaVersion $java
    sbt ++$scala package "partestSuite/testOnly -- --showDiff"
  ]]></task>

  <task id="partest-fastopt"><![CDATA[
    setJavaVersion $java
    sbt ++$scala package "partestSuite/testOnly -- --fastOpt --showDiff"
  ]]></task>

  <task id="partest-fullopt"><![CDATA[
    setJavaVersion $java
    sbt ++$scala package "partestSuite/testOnly -- --fullOpt --showDiff"
  ]]></task>

  <matrix id="pr">
    <!-- Main test tasks -->
    <run task="main">
      <v n="scala">2.10.2</v>
      <v n="java">1.6</v>
    </run>
    <run task="main">
      <v n="scala">2.10.2</v>
      <v n="java">1.7</v>
    </run>
    <run task="main">
      <v n="scala">2.10.2</v>
      <v n="java">1.8</v>
    </run>
    <run task="main">
      <v n="scala">2.11.7</v>
      <v n="java">1.6</v>
    </run>
    <run task="main">
      <v n="scala">2.11.7</v>
      <v n="java">1.7</v>
    </run>
    <run task="main">
      <v n="scala">2.11.7</v>
      <v n="java">1.8</v>
    </run>
    <run task="main">
      <v n="scala">2.12.0-M3</v>
      <v n="java">1.8</v>
    </run>

    <!-- Test suite on ECMAScript5 tasks -->
    <run task="test-suite-ecma-script5">
      <v n="scala">2.10.2</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.10.2</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.10.2</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.11.7</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.11.7</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.11.7</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.12.0-M3</v>
      <v n="java">1.8</v>
    </run>

    <!-- Test suite on ECMAScript6 tasks -->
    <run task="test-suite-ecma-script6">
      <v n="scala">2.10.2</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.10.2</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.10.2</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.11.7</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.11.7</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.11.7</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.12.0-M3</v>
      <v n="java">1.8</v>
    </run>

    <!-- Test suite on ECMAScript6 strong mode tasks -->
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.10.2</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.10.2</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.10.2</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.11.7</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.11.7</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.11.7</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.12.0-M3</v>
      <v n="java">1.8</v>
    </run>

    <!-- Bootstrap test tasks -->
    <run task="bootstrap">
      <v n="scala">2.10.2</v>
      <v n="java">1.6</v>
    </run>
    <run task="bootstrap">
      <v n="scala">2.10.2</v>
      <v n="java">1.7</v>
    </run>
    <run task="bootstrap">
      <v n="scala">2.10.2</v>
      <v n="java">1.8</v>
    </run>
    <!-- Tools do not compile on JDK6, Scala 2.11.x (see #1235) -->
    <run task="bootstrap">
      <v n="scala">2.11.7</v>
      <v n="java">1.7</v>
    </run>
    <run task="bootstrap">
      <v n="scala">2.11.7</v>
      <v n="java">1.8</v>
    </run>
    <run task="bootstrap">
      <v n="scala">2.12.0-M3</v>
      <v n="java">1.8</v>
    </run>

    <!-- Tools / CLI / Stubs / sbtPlugin test tasks -->
    <run task="tools-cli-stubs-sbtplugin">
      <v n="scala">2.10.6</v>
      <v n="java">1.6</v>
    </run>
    <run task="tools-cli-stubs-sbtplugin">
      <v n="scala">2.10.6</v>
      <v n="java">1.7</v>
    </run>
    <run task="tools-cli-stubs-sbtplugin">
      <v n="scala">2.10.6</v>
      <v n="java">1.8</v>
    </run>
    <!-- Tools do not compile on JDK6, Scala 2.11.x (see #1235) -->
    <run task="tools-cli-stubs">
      <v n="scala">2.11.7</v>
      <v n="java">1.7</v>
    </run>
    <run task="tools-cli-stubs">
      <v n="scala">2.11.7</v>
      <v n="java">1.8</v>
    </run>

    <!-- Partest compilation test tasks -->
    <run task="partestc">
      <v n="scala">2.11.0</v>
      <v n="java">1.7</v>
    </run>
    <run task="partestc">
      <v n="scala">2.11.7</v>
      <v n="java">1.7</v>
    </run>

    <run task="sbtplugin-test" />
  </matrix>

  <matrix id="nightly">
    <run matrix="pr" />

    <!-- Main test tasks (all remaining Scala versions) -->
    <run task="main">
      <v n="scala">2.10.3</v>
      <v n="java">1.7</v>
    </run>
    <run task="main">
      <v n="scala">2.10.4</v>
      <v n="java">1.7</v>
    </run>
    <run task="main">
      <v n="scala">2.10.5</v>
      <v n="java">1.6</v>
    </run>
    <run task="main">
      <v n="scala">2.10.5</v>
      <v n="java">1.7</v>
    </run>
    <run task="main">
      <v n="scala">2.10.5</v>
      <v n="java">1.8</v>
    </run>
    <run task="main">
      <v n="scala">2.10.6</v>
      <v n="java">1.6</v>
    </run>
    <run task="main">
      <v n="scala">2.10.6</v>
      <v n="java">1.7</v>
    </run>
    <run task="main">
      <v n="scala">2.10.6</v>
      <v n="java">1.8</v>
    </run>
    <run task="main">
      <v n="scala">2.11.0</v>
      <v n="java">1.7</v>
    </run>
    <run task="main">
      <v n="scala">2.11.1</v>
      <v n="java">1.7</v>
    </run>
    <run task="main">
      <v n="scala">2.11.2</v>
      <v n="java">1.6</v>
    </run>
    <run task="main">
      <v n="scala">2.11.2</v>
      <v n="java">1.7</v>
    </run>
    <run task="main">
      <v n="scala">2.11.2</v>
      <v n="java">1.8</v>
    </run>
    <run task="main">
      <v n="scala">2.11.4</v>
      <v n="java">1.6</v>
    </run>
    <run task="main">
      <v n="scala">2.11.4</v>
      <v n="java">1.7</v>
    </run>
    <run task="main">
      <v n="scala">2.11.4</v>
      <v n="java">1.8</v>
    </run>
    <run task="main">
      <v n="scala">2.11.5</v>
      <v n="java">1.6</v>
    </run>
    <run task="main">
      <v n="scala">2.11.5</v>
      <v n="java">1.7</v>
    </run>
    <run task="main">
      <v n="scala">2.11.5</v>
      <v n="java">1.8</v>
    </run>
    <run task="main">
      <v n="scala">2.11.6</v>
      <v n="java">1.6</v>
    </run>
    <run task="main">
      <v n="scala">2.11.6</v>
      <v n="java">1.7</v>
    </run>
    <run task="main">
      <v n="scala">2.11.6</v>
      <v n="java">1.8</v>
    </run>

    <!-- Test suite on ECMAScript5 tasks (all remaining Scala versions) -->
    <run task="test-suite-ecma-script5">
      <v n="scala">2.10.3</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.10.4</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.10.5</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.10.5</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.10.5</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.10.6</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.10.6</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.10.6</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.11.0</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.11.1</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.11.2</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.11.2</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.11.2</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.11.4</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.11.4</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.11.4</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.11.5</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.11.5</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.11.5</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.11.6</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.11.6</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.11.6</v>
      <v n="java">1.8</v>
    </run>

    <!-- Test suite on ECMAScript6 tasks (all remaining Scala versions) -->
    <run task="test-suite-ecma-script6">
      <v n="scala">2.10.3</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.10.4</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.10.5</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.10.5</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.10.5</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.10.6</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.10.6</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.10.6</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.11.0</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.11.1</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.11.2</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.11.2</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.11.2</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.11.4</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.11.4</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.11.4</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.11.5</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.11.5</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.11.5</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.11.6</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.11.6</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.11.6</v>
      <v n="java">1.8</v>
    </run>

    <!-- Test suite on ECMAScript6 strong mode tasks (all remaining Scala versions) -->
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.10.3</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.10.4</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.10.5</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.10.5</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.10.5</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.10.6</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.10.6</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.10.6</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.11.0</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.11.1</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.11.2</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.11.2</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.11.2</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.11.4</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.11.4</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.11.4</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.11.5</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.11.5</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.11.5</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.11.6</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.11.6</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.11.6</v>
      <v n="java">1.8</v>
    </run>

    <!-- Bootstrap test tasks (all remaining Scala versions) -->
    <run task="bootstrap">
      <v n="scala">2.10.3</v>
      <v n="java">1.7</v>
    </run>
    <run task="bootstrap">
      <v n="scala">2.10.4</v>
      <v n="java">1.7</v>
    </run>
    <run task="bootstrap">
      <v n="scala">2.10.5</v>
      <v n="java">1.6</v>
    </run>
    <run task="bootstrap">
      <v n="scala">2.10.5</v>
      <v n="java">1.7</v>
    </run>
    <run task="bootstrap">
      <v n="scala">2.10.5</v>
      <v n="java">1.8</v>
    </run>
    <run task="bootstrap">
      <v n="scala">2.10.6</v>
      <v n="java">1.6</v>
    </run>
    <run task="bootstrap">
      <v n="scala">2.10.6</v>
      <v n="java">1.7</v>
    </run>
    <run task="bootstrap">
      <v n="scala">2.10.6</v>
      <v n="java">1.8</v>
    </run>
    <run task="bootstrap">
      <v n="scala">2.11.0</v>
      <v n="java">1.7</v>
    </run>
    <run task="bootstrap">
      <v n="scala">2.11.1</v>
      <v n="java">1.7</v>
    </run>
    <run task="bootstrap">
      <v n="scala">2.11.2</v>
      <v n="java">1.7</v>
    </run>
    <!-- Tools do not compile on Scala 2.11.4 (see #1215). -->
    <run task="bootstrap">
      <v n="scala">2.11.5</v>
      <v n="java">1.7</v>
    </run>
    <run task="bootstrap">
      <v n="scala">2.11.5</v>
      <v n="java">1.8</v>
    </run>
    <run task="bootstrap">
      <v n="scala">2.11.6</v>
      <v n="java">1.7</v>
    </run>
    <run task="bootstrap">
      <v n="scala">2.11.6</v>
      <v n="java">1.8</v>
    </run>

    <run task="partest-noopt">
      <v n="scala">2.11.7</v>
      <v n="java">1.7</v>
    </run>
    <run task="partest-fastopt">
      <v n="scala">2.11.7</v>
      <v n="java">1.7</v>
    </run>
    <run task="partest-fullopt">
      <v n="scala">2.11.7</v>
      <v n="java">1.7</v>
    </run>
    <run task="partest-noopt">
      <v n="scala">2.12.0-M3</v>
      <v n="java">1.8</v>
    </run>
    <run task="partest-fastopt">
      <v n="scala">2.12.0-M3</v>
      <v n="java">1.8</v>
    </run>
    <run task="partest-fullopt">
      <v n="scala">2.12.0-M3</v>
      <v n="java">1.8</v>
    </run>
  </matrix>

  <matrix id="weekly">
    <!-- weekly does not have to run nightly, since they will run at the same time -->

    <run task="partest-noopt">
      <v n="scala">2.11.0</v>
      <v n="java">1.7</v>
    </run>
    <run task="partest-fastopt">
      <v n="scala">2.11.0</v>
      <v n="java">1.7</v>
    </run>
    <run task="partest-fullopt">
      <v n="scala">2.11.0</v>
      <v n="java">1.7</v>
    </run>
    <run task="partest-noopt">
      <v n="scala">2.11.1</v>
      <v n="java">1.7</v>
    </run>
    <run task="partest-fastopt">
      <v n="scala">2.11.1</v>
      <v n="java">1.7</v>
    </run>
    <run task="partest-fullopt">
      <v n="scala">2.11.1</v>
      <v n="java">1.7</v>
    </run>
    <run task="partest-noopt">
      <v n="scala">2.11.2</v>
      <v n="java">1.7</v>
    </run>
    <run task="partest-fastopt">
      <v n="scala">2.11.2</v>
      <v n="java">1.7</v>
    </run>
    <run task="partest-fullopt">
      <v n="scala">2.11.2</v>
      <v n="java">1.7</v>
    </run>
    <run task="partest-noopt">
      <v n="scala">2.11.2</v>
      <v n="java">1.8</v>
    </run>
    <run task="partest-fastopt">
      <v n="scala">2.11.2</v>
      <v n="java">1.8</v>
    </run>
    <run task="partest-fullopt">
      <v n="scala">2.11.2</v>
      <v n="java">1.8</v>
    </run>
    <!-- Partest does not compile on Scala 2.11.4 (see #1215). -->
    <run task="partest-noopt">
      <v n="scala">2.11.5</v>
      <v n="java">1.7</v>
    </run>
    <run task="partest-fastopt">
      <v n="scala">2.11.5</v>
      <v n="java">1.7</v>
    </run>
    <run task="partest-fullopt">
      <v n="scala">2.11.5</v>
      <v n="java">1.7</v>
    </run>
    <run task="partest-noopt">
      <v n="scala">2.11.5</v>
      <v n="java">1.8</v>
    </run>
    <run task="partest-fastopt">
      <v n="scala">2.11.5</v>
      <v n="java">1.8</v>
    </run>
    <run task="partest-fullopt">
      <v n="scala">2.11.5</v>
      <v n="java">1.8</v>
    </run>
    <run task="partest-noopt">
      <v n="scala">2.11.6</v>
      <v n="java">1.7</v>
    </run>
    <run task="partest-fastopt">
      <v n="scala">2.11.6</v>
      <v n="java">1.7</v>
    </run>
    <run task="partest-fullopt">
      <v n="scala">2.11.6</v>
      <v n="java">1.7</v>
    </run>
    <run task="partest-noopt">
      <v n="scala">2.11.6</v>
      <v n="java">1.8</v>
    </run>
    <run task="partest-fastopt">
      <v n="scala">2.11.6</v>
      <v n="java">1.8</v>
    </run>
    <run task="partest-fullopt">
      <v n="scala">2.11.6</v>
      <v n="java">1.8</v>
    </run>
    <run task="partest-noopt">
      <v n="scala">2.11.7</v>
      <v n="java">1.8</v>
    </run>
    <run task="partest-fastopt">
      <v n="scala">2.11.7</v>
      <v n="java">1.8</v>
    </run>
    <run task="partest-fullopt">
      <v n="scala">2.11.7</v>
      <v n="java">1.8</v>
    </run>
    <!--
        Partest does sometimes not compile on JDK6 (see #1227) we
        therefore do not run any JDK6 partests.
      -->
  </matrix>

</ci>
<commit_msg>Replace io.js 2.0 with Node.js v4.2.1.<commit_after><?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ci [
  <!ELEMENT ci (task*,matrix*)>
  <!ELEMENT task (#PCDATA)>
  <!ATTLIST task id ID #REQUIRED>
  <!ELEMENT matrix (run*)>
  <!ATTLIST matrix id ID #REQUIRED>
  <!ELEMENT run (v*)>
  <!ATTLIST run matrix IDREF #IMPLIED>
  <!ATTLIST run task IDREF #IMPLIED>
  <!ELEMENT v (#PCDATA)>
  <!ATTLIST v n CDATA #REQUIRED>
]>
<ci>

  <task id="main"><![CDATA[
    setJavaVersion $java
    sbtretry ++$scala helloworld/run \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala helloworld/run \
        'set scalaJSStage in Global := FullOptStage' \
        ++$scala helloworld/run \
        helloworld/clean &&
    sbtretry 'set scalaJSOptimizerOptions in helloworld ~= (_.withDisableOptimizer(true))' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala helloworld/run \
        helloworld/clean &&
    sbtretry 'set scalaJSSemantics in helloworld ~= (_.withAsInstanceOfs(org.scalajs.core.tools.sem.CheckedBehavior.Unchecked))' \
        ++$scala helloworld/run \
        helloworld/clean &&
    sbtretry 'set inScope(ThisScope in helloworld)(postLinkJSEnv := new org.scalajs.jsenv.RetryingComJSEnv(PhantomJSEnv().value))' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala helloworld/run \
        'set scalaJSStage in Global := FullOptStage' \
        ++$scala helloworld/run &&
    sbtretry 'set inScope(ThisScope in testingExample)(postLinkJSEnv := new org.scalajs.jsenv.RetryingComJSEnv(PhantomJSEnv().value))' \
        ++$scala testingExample/test \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testingExample/test \
        'set scalaJSStage in Global := FullOptStage' \
        ++$scala testingExample/test \
        testingExample/clean &&
    sbtretry 'set inScope(ThisScope in testingExample)(postLinkJSEnv := new org.scalajs.jsenv.RetryingComJSEnv(PhantomJSEnv().value))' \
        'set scalaJSOptimizerOptions in testingExample ~= (_.withDisableOptimizer(true))' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testingExample/test &&
    sbtretry ++$scala testSuiteJVM/test testSuiteJVM/clean &&
    sbtretry 'set scalaJSStage in Global := FastOptStage' \
        ++$scala javalibExTestSuite/test \
        'set scalaJSStage in Global := FullOptStage' \
        ++$scala javalibExTestSuite/test &&
    sbtretry ++$scala testSuite/test:doc compiler/test reversi/fastOptJS reversi/fullOptJS &&
    sbtretry ++$scala compiler/compile:doc library/compile:doc javalibEx/compile:doc \
        testInterface/compile:doc jasmineTestFramework/compile:doc &&
    sbtretry ++$scala partest/fetchScalaSource &&
    sbtretry ++$scala library/mimaReportBinaryIssues testInterface/mimaReportBinaryIssues &&
    sh ci/checksizes.sh $scala &&
    sh ci/check-partest-coverage.sh $scala
  ]]></task>

  <task id="test-suite-ecma-script5"><![CDATA[
    setJavaVersion $java
    sbtretry ++$scala testSuite/test noIrCheckTest/test \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testSuite/test noIrCheckTest/test \
        'set scalaJSStage in Global := FullOptStage' \
        ++$scala testSuite/test noIrCheckTest/test \
        testSuite/clean noIrCheckTest/clean &&
    sbtretry 'set scalaJSOptimizerOptions in testSuite ~= (_.withDisableOptimizer(true))' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testSuite/test \
        testSuite/clean &&
    sbtretry 'set scalaJSSemantics in testSuite ~= {
           _.withAsInstanceOfs(org.scalajs.core.tools.sem.CheckedBehavior.Compliant)
            .withModuleInit(org.scalajs.core.tools.sem.CheckedBehavior.Compliant)
            .withStrictFloats(true)
         }' \
        ++$scala testSuite/test \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testSuite/test \
        'set scalaJSStage in Global := FullOptStage' \
        ++$scala testSuite/test \
        testSuite/clean &&
    sbtretry 'set scalaJSSemantics in testSuite ~= {
           _.withAsInstanceOfs(org.scalajs.core.tools.sem.CheckedBehavior.Compliant)
            .withModuleInit(org.scalajs.core.tools.sem.CheckedBehavior.Compliant)
            .withStrictFloats(true)
         }' \
        'set scalaJSOptimizerOptions in testSuite ~= (_.withDisableOptimizer(true))' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testSuite/test \
        testSuite/clean &&
    sbtretry 'set inScope(ThisScope in testSuite)(postLinkJSEnv := new org.scalajs.jsenv.RetryingComJSEnv(PhantomJSEnv().value))' \
        'set parallelExecution in (testSuite, Test) := false' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testSuite/test \
        'set scalaJSStage in Global := FullOptStage' \
        ++$scala testSuite/test \
        testSuite/clean &&
    sbtretry 'set scalacOptions in testSuite += "-Xexperimental"' \
        ++$scala testSuite/test \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testSuite/test \
        'set scalaJSStage in Global := FullOptStage' \
        ++$scala testSuite/test
  ]]></task>

  <task id="test-suite-ecma-script6"><![CDATA[
    setJavaVersion $java
    sbtretry 'set Seq(testSuite, noIrCheckTest).map(pr => scalaJSOutputMode in pr := org.scalajs.core.tools.javascript.OutputMode.ECMAScript6)' \
        'set Seq(testSuite, noIrCheckTest).map(pr => postLinkJSEnv in pr := NodeJSEnv(args = Seq("--harmony-rest-parameters")).value.withSourceMap(false))' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testSuite/test noIrCheckTest/test \
        testSuite/clean noIrCheckTest/clean &&
    sbtretry 'set scalaJSOutputMode in testSuite := org.scalajs.core.tools.javascript.OutputMode.ECMAScript6' \
        'set postLinkJSEnv in testSuite := NodeJSEnv(args = Seq("--harmony-rest-parameters")).value.withSourceMap(false)' \
        'set scalaJSOptimizerOptions in testSuite ~= (_.withDisableOptimizer(true))' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testSuite/test \
        testSuite/clean &&
    sbtretry 'set scalaJSOutputMode in testSuite := org.scalajs.core.tools.javascript.OutputMode.ECMAScript6' \
        'set postLinkJSEnv in testSuite := NodeJSEnv(args = Seq("--harmony-rest-parameters")).value.withSourceMap(false)' \
        'set scalaJSSemantics in testSuite ~= {
           _.withAsInstanceOfs(org.scalajs.core.tools.sem.CheckedBehavior.Compliant)
            .withModuleInit(org.scalajs.core.tools.sem.CheckedBehavior.Compliant)
            .withStrictFloats(true)
         }' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testSuite/test \
        testSuite/clean &&
    sbtretry 'set scalaJSOutputMode in testSuite := org.scalajs.core.tools.javascript.OutputMode.ECMAScript6' \
        'set postLinkJSEnv in testSuite := NodeJSEnv(args = Seq("--harmony-rest-parameters")).value.withSourceMap(false)' \
        'set scalaJSSemantics in testSuite ~= {
           _.withAsInstanceOfs(org.scalajs.core.tools.sem.CheckedBehavior.Compliant)
            .withModuleInit(org.scalajs.core.tools.sem.CheckedBehavior.Compliant)
            .withStrictFloats(true)
         }' \
        'set scalaJSOptimizerOptions in testSuite ~= (_.withDisableOptimizer(true))' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testSuite/test \
        testSuite/clean &&
    sbtretry 'set scalaJSOutputMode in testSuite := org.scalajs.core.tools.javascript.OutputMode.ECMAScript6' \
        'set postLinkJSEnv in testSuite := NodeJSEnv(args = Seq("--harmony-rest-parameters")).value.withSourceMap(false)' \
        'set scalaJSSemantics in testSuite ~= { _.optimized }' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testSuite/test \
        testSuite/clean &&
    sbtretry 'set scalaJSOutputMode in testSuite := org.scalajs.core.tools.javascript.OutputMode.ECMAScript6' \
        'set postLinkJSEnv in testSuite := NodeJSEnv(args = Seq("--harmony-rest-parameters")).value.withSourceMap(false)' \
        'set scalaJSSemantics in testSuite ~= { _.optimized }' \
        'set scalaJSOptimizerOptions in testSuite ~= (_.withDisableOptimizer(true))' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testSuite/test \
        testSuite/clean
  ]]></task>

  <task id="test-suite-ecma-script6-strong-mode"><![CDATA[
    setJavaVersion $java
    sbtretry 'set Seq(testSuite, noIrCheckTest).map(pr => scalaJSOutputMode in pr := org.scalajs.core.tools.javascript.OutputMode.ECMAScript6StrongMode)' \
        'set Seq(testSuite, noIrCheckTest).map(pr => postLinkJSEnv in pr := NodeJSEnv(args = Seq("--harmony-rest-parameters", "--strong-mode")).value.withSourceMap(false))' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testSuite/test noIrCheckTest/test \
        testSuite/clean noIrCheckTest/clean &&
    sbtretry 'set scalaJSOutputMode in testSuite := org.scalajs.core.tools.javascript.OutputMode.ECMAScript6StrongMode' \
        'set postLinkJSEnv in testSuite := NodeJSEnv(args = Seq("--harmony-rest-parameters", "--strong-mode")).value.withSourceMap(false)' \
        'set scalaJSOptimizerOptions in testSuite ~= (_.withDisableOptimizer(true))' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testSuite/test \
        testSuite/clean &&
    sbtretry 'set scalaJSOutputMode in testSuite := org.scalajs.core.tools.javascript.OutputMode.ECMAScript6StrongMode' \
        'set postLinkJSEnv in testSuite := NodeJSEnv(args = Seq("--harmony-rest-parameters", "--strong-mode")).value.withSourceMap(false)' \
        'set scalaJSSemantics in testSuite ~= {
           _.withAsInstanceOfs(org.scalajs.core.tools.sem.CheckedBehavior.Compliant)
            .withModuleInit(org.scalajs.core.tools.sem.CheckedBehavior.Compliant)
            .withStrictFloats(true)
         }' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testSuite/test \
        testSuite/clean &&
    sbtretry 'set scalaJSOutputMode in testSuite := org.scalajs.core.tools.javascript.OutputMode.ECMAScript6StrongMode' \
        'set postLinkJSEnv in testSuite := NodeJSEnv(args = Seq("--harmony-rest-parameters", "--strong-mode")).value.withSourceMap(false)' \
        'set scalaJSSemantics in testSuite ~= {
           _.withAsInstanceOfs(org.scalajs.core.tools.sem.CheckedBehavior.Compliant)
            .withModuleInit(org.scalajs.core.tools.sem.CheckedBehavior.Compliant)
            .withStrictFloats(true)
         }' \
        'set scalaJSOptimizerOptions in testSuite ~= (_.withDisableOptimizer(true))' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testSuite/test \
        testSuite/clean &&
    sbtretry 'set scalaJSOutputMode in testSuite := org.scalajs.core.tools.javascript.OutputMode.ECMAScript6StrongMode' \
        'set postLinkJSEnv in testSuite := NodeJSEnv(args = Seq("--harmony-rest-parameters", "--strong-mode")).value.withSourceMap(false)' \
        'set scalaJSSemantics in testSuite ~= { _.optimized }' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testSuite/test \
        testSuite/clean &&
    sbtretry 'set scalaJSOutputMode in testSuite := org.scalajs.core.tools.javascript.OutputMode.ECMAScript6StrongMode' \
        'set postLinkJSEnv in testSuite := NodeJSEnv(args = Seq("--harmony-rest-parameters", "--strong-mode")).value.withSourceMap(false)' \
        'set scalaJSSemantics in testSuite ~= { _.optimized }' \
        'set scalaJSOptimizerOptions in testSuite ~= (_.withDisableOptimizer(true))' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala testSuite/test \
        testSuite/clean
  ]]></task>

  <task id="bootstrap"><![CDATA[
    setJavaVersion $java
    sbt 'set postLinkJSEnv in toolsJS := NodeJSEnv(args = Seq("--max_old_space_size=2048")).value.withSourceMap(false)' \
        'set scalaJSStage in Global := FastOptStage' \
        ++$scala toolsJS/test \
        'set scalaJSStage in Global := FullOptStage' \
        ++$scala toolsJS/test \
        irJS/mimaReportBinaryIssues toolsJS/mimaReportBinaryIssues
  ]]></task>

  <task id="tools-cli-stubs"><![CDATA[
    setJavaVersion $java
    sbt ++$scala tools/package tools/test cli/package cli/assembly \
        stubs/package jsEnvs/test \
        ir/mimaReportBinaryIssues tools/mimaReportBinaryIssues \
        jsEnvs/mimaReportBinaryIssues testAdapter/mimaReportBinaryIssues \
        stubs/mimaReportBinaryIssues cli/mimaReportBinaryIssues &&
    sbt ++$scala ir/compile:doc tools/compile:doc jsEnvs/compile:doc \
        testAdapter/compile:doc stubs/compile:doc
  ]]></task>

  <task id="tools-cli-stubs-sbtplugin"><![CDATA[
    setJavaVersion $java
    sbt ++$scala tools/package tools/test cli/package cli/assembly \
        stubs/package jsEnvs/test \
        sbtPlugin/package \
        ir/mimaReportBinaryIssues tools/mimaReportBinaryIssues \
        jsEnvs/mimaReportBinaryIssues testAdapter/mimaReportBinaryIssues \
        stubs/mimaReportBinaryIssues cli/mimaReportBinaryIssues \
        sbtPlugin/mimaReportBinaryIssues &&
    sbt ++$scala library/scalastyle javalanglib/scalastyle javalib/scalastyle \
        javalibEx/scalastyle ir/scalastyle compiler/scalastyle \
        compiler/test:scalastyle tools/scalastyle tools/test:scalastyle \
        jsEnvs/scalastyle jsEnvs/test:scalastyle testAdapter/scalastyle \
        sbtPlugin/scalastyle testInterface/scalastyle \
        jasmineTestFramework/scalastyle testSuite/test:scalastyle  testSuiteJVM/test:scalastyle \
        javalibExTestSuite/test:scalastyle helloworld/scalastyle \
        reversi/scalastyle testingExample/scalastyle \
        testingExample/test:scalastyle &&
    sbt ++$scala ir/compile:doc tools/compile:doc jsEnvs/compile:doc \
        testAdapter/compile:doc stubs/compile:doc sbtPlugin/compile:doc
  ]]></task>

  <task id="partestc"><![CDATA[
    setJavaVersion $java
    sbt ++$scala partest/compile
  ]]></task>

  <task id="sbtplugin-test"><![CDATA[
    # Publish Scala.js artifacts locally
    # Then go into standalone project and test
    sbt ++2.11.7 compiler/publishLocal library/publishLocal javalibEx/publishLocal \
                 testInterface/publishLocal jasmineTestFramework/publishLocal stubs/publishLocal \
                 jUnitPlugin/publishLocal jUnitRuntime/publishLocal \
        ++2.10.6 ir/publishLocal tools/publishLocal jsEnvs/publishLocal \
                 testAdapter/publishLocal sbtPlugin/publishLocal &&
    cd sbt-plugin-test &&
    sbt noDOM/run withDOM/run test \
        'set scalaJSStage in Global := FastOptStage' \
        jetty9/run test \
        jsDependenciesTest/packageJSDependencies \
        jsDependenciesTest/packageMinifiedJSDependencies
  ]]></task>

  <task id="partest-noopt"><![CDATA[
    setJavaVersion $java
    sbt ++$scala package "partestSuite/testOnly -- --showDiff"
  ]]></task>

  <task id="partest-fastopt"><![CDATA[
    setJavaVersion $java
    sbt ++$scala package "partestSuite/testOnly -- --fastOpt --showDiff"
  ]]></task>

  <task id="partest-fullopt"><![CDATA[
    setJavaVersion $java
    sbt ++$scala package "partestSuite/testOnly -- --fullOpt --showDiff"
  ]]></task>

  <matrix id="pr">
    <!-- Main test tasks -->
    <run task="main">
      <v n="scala">2.10.2</v>
      <v n="java">1.6</v>
    </run>
    <run task="main">
      <v n="scala">2.10.2</v>
      <v n="java">1.7</v>
    </run>
    <run task="main">
      <v n="scala">2.10.2</v>
      <v n="java">1.8</v>
    </run>
    <run task="main">
      <v n="scala">2.11.7</v>
      <v n="java">1.6</v>
    </run>
    <run task="main">
      <v n="scala">2.11.7</v>
      <v n="java">1.7</v>
    </run>
    <run task="main">
      <v n="scala">2.11.7</v>
      <v n="java">1.8</v>
    </run>
    <run task="main">
      <v n="scala">2.12.0-M3</v>
      <v n="java">1.8</v>
    </run>

    <!-- Test suite on ECMAScript5 tasks -->
    <run task="test-suite-ecma-script5">
      <v n="scala">2.10.2</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.10.2</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.10.2</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.11.7</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.11.7</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.11.7</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.12.0-M3</v>
      <v n="java">1.8</v>
    </run>

    <!-- Test suite on ECMAScript6 tasks -->
    <run task="test-suite-ecma-script6">
      <v n="scala">2.10.2</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.10.2</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.10.2</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.11.7</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.11.7</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.11.7</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.12.0-M3</v>
      <v n="java">1.8</v>
    </run>

    <!-- Test suite on ECMAScript6 strong mode tasks -->
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.10.2</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.10.2</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.10.2</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.11.7</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.11.7</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.11.7</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.12.0-M3</v>
      <v n="java">1.8</v>
    </run>

    <!-- Bootstrap test tasks -->
    <run task="bootstrap">
      <v n="scala">2.10.2</v>
      <v n="java">1.6</v>
    </run>
    <run task="bootstrap">
      <v n="scala">2.10.2</v>
      <v n="java">1.7</v>
    </run>
    <run task="bootstrap">
      <v n="scala">2.10.2</v>
      <v n="java">1.8</v>
    </run>
    <!-- Tools do not compile on JDK6, Scala 2.11.x (see #1235) -->
    <run task="bootstrap">
      <v n="scala">2.11.7</v>
      <v n="java">1.7</v>
    </run>
    <run task="bootstrap">
      <v n="scala">2.11.7</v>
      <v n="java">1.8</v>
    </run>
    <run task="bootstrap">
      <v n="scala">2.12.0-M3</v>
      <v n="java">1.8</v>
    </run>

    <!-- Tools / CLI / Stubs / sbtPlugin test tasks -->
    <run task="tools-cli-stubs-sbtplugin">
      <v n="scala">2.10.6</v>
      <v n="java">1.6</v>
    </run>
    <run task="tools-cli-stubs-sbtplugin">
      <v n="scala">2.10.6</v>
      <v n="java">1.7</v>
    </run>
    <run task="tools-cli-stubs-sbtplugin">
      <v n="scala">2.10.6</v>
      <v n="java">1.8</v>
    </run>
    <!-- Tools do not compile on JDK6, Scala 2.11.x (see #1235) -->
    <run task="tools-cli-stubs">
      <v n="scala">2.11.7</v>
      <v n="java">1.7</v>
    </run>
    <run task="tools-cli-stubs">
      <v n="scala">2.11.7</v>
      <v n="java">1.8</v>
    </run>

    <!-- Partest compilation test tasks -->
    <run task="partestc">
      <v n="scala">2.11.0</v>
      <v n="java">1.7</v>
    </run>
    <run task="partestc">
      <v n="scala">2.11.7</v>
      <v n="java">1.7</v>
    </run>

    <run task="sbtplugin-test" />
  </matrix>

  <matrix id="nightly">
    <run matrix="pr" />

    <!-- Main test tasks (all remaining Scala versions) -->
    <run task="main">
      <v n="scala">2.10.3</v>
      <v n="java">1.7</v>
    </run>
    <run task="main">
      <v n="scala">2.10.4</v>
      <v n="java">1.7</v>
    </run>
    <run task="main">
      <v n="scala">2.10.5</v>
      <v n="java">1.6</v>
    </run>
    <run task="main">
      <v n="scala">2.10.5</v>
      <v n="java">1.7</v>
    </run>
    <run task="main">
      <v n="scala">2.10.5</v>
      <v n="java">1.8</v>
    </run>
    <run task="main">
      <v n="scala">2.10.6</v>
      <v n="java">1.6</v>
    </run>
    <run task="main">
      <v n="scala">2.10.6</v>
      <v n="java">1.7</v>
    </run>
    <run task="main">
      <v n="scala">2.10.6</v>
      <v n="java">1.8</v>
    </run>
    <run task="main">
      <v n="scala">2.11.0</v>
      <v n="java">1.7</v>
    </run>
    <run task="main">
      <v n="scala">2.11.1</v>
      <v n="java">1.7</v>
    </run>
    <run task="main">
      <v n="scala">2.11.2</v>
      <v n="java">1.6</v>
    </run>
    <run task="main">
      <v n="scala">2.11.2</v>
      <v n="java">1.7</v>
    </run>
    <run task="main">
      <v n="scala">2.11.2</v>
      <v n="java">1.8</v>
    </run>
    <run task="main">
      <v n="scala">2.11.4</v>
      <v n="java">1.6</v>
    </run>
    <run task="main">
      <v n="scala">2.11.4</v>
      <v n="java">1.7</v>
    </run>
    <run task="main">
      <v n="scala">2.11.4</v>
      <v n="java">1.8</v>
    </run>
    <run task="main">
      <v n="scala">2.11.5</v>
      <v n="java">1.6</v>
    </run>
    <run task="main">
      <v n="scala">2.11.5</v>
      <v n="java">1.7</v>
    </run>
    <run task="main">
      <v n="scala">2.11.5</v>
      <v n="java">1.8</v>
    </run>
    <run task="main">
      <v n="scala">2.11.6</v>
      <v n="java">1.6</v>
    </run>
    <run task="main">
      <v n="scala">2.11.6</v>
      <v n="java">1.7</v>
    </run>
    <run task="main">
      <v n="scala">2.11.6</v>
      <v n="java">1.8</v>
    </run>

    <!-- Test suite on ECMAScript5 tasks (all remaining Scala versions) -->
    <run task="test-suite-ecma-script5">
      <v n="scala">2.10.3</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.10.4</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.10.5</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.10.5</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.10.5</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.10.6</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.10.6</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.10.6</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.11.0</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.11.1</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.11.2</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.11.2</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.11.2</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.11.4</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.11.4</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.11.4</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.11.5</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.11.5</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.11.5</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.11.6</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.11.6</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script5">
      <v n="scala">2.11.6</v>
      <v n="java">1.8</v>
    </run>

    <!-- Test suite on ECMAScript6 tasks (all remaining Scala versions) -->
    <run task="test-suite-ecma-script6">
      <v n="scala">2.10.3</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.10.4</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.10.5</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.10.5</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.10.5</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.10.6</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.10.6</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.10.6</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.11.0</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.11.1</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.11.2</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.11.2</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.11.2</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.11.4</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.11.4</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.11.4</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.11.5</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.11.5</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.11.5</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.11.6</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.11.6</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6">
      <v n="scala">2.11.6</v>
      <v n="java">1.8</v>
    </run>

    <!-- Test suite on ECMAScript6 strong mode tasks (all remaining Scala versions) -->
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.10.3</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.10.4</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.10.5</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.10.5</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.10.5</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.10.6</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.10.6</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.10.6</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.11.0</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.11.1</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.11.2</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.11.2</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.11.2</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.11.4</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.11.4</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.11.4</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.11.5</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.11.5</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.11.5</v>
      <v n="java">1.8</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.11.6</v>
      <v n="java">1.6</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.11.6</v>
      <v n="java">1.7</v>
    </run>
    <run task="test-suite-ecma-script6-strong-mode">
      <v n="scala">2.11.6</v>
      <v n="java">1.8</v>
    </run>

    <!-- Bootstrap test tasks (all remaining Scala versions) -->
    <run task="bootstrap">
      <v n="scala">2.10.3</v>
      <v n="java">1.7</v>
    </run>
    <run task="bootstrap">
      <v n="scala">2.10.4</v>
      <v n="java">1.7</v>
    </run>
    <run task="bootstrap">
      <v n="scala">2.10.5</v>
      <v n="java">1.6</v>
    </run>
    <run task="bootstrap">
      <v n="scala">2.10.5</v>
      <v n="java">1.7</v>
    </run>
    <run task="bootstrap">
      <v n="scala">2.10.5</v>
      <v n="java">1.8</v>
    </run>
    <run task="bootstrap">
      <v n="scala">2.10.6</v>
      <v n="java">1.6</v>
    </run>
    <run task="bootstrap">
      <v n="scala">2.10.6</v>
      <v n="java">1.7</v>
    </run>
    <run task="bootstrap">
      <v n="scala">2.10.6</v>
      <v n="java">1.8</v>
    </run>
    <run task="bootstrap">
      <v n="scala">2.11.0</v>
      <v n="java">1.7</v>
    </run>
    <run task="bootstrap">
      <v n="scala">2.11.1</v>
      <v n="java">1.7</v>
    </run>
    <run task="bootstrap">
      <v n="scala">2.11.2</v>
      <v n="java">1.7</v>
    </run>
    <!-- Tools do not compile on Scala 2.11.4 (see #1215). -->
    <run task="bootstrap">
      <v n="scala">2.11.5</v>
      <v n="java">1.7</v>
    </run>
    <run task="bootstrap">
      <v n="scala">2.11.5</v>
      <v n="java">1.8</v>
    </run>
    <run task="bootstrap">
      <v n="scala">2.11.6</v>
      <v n="java">1.7</v>
    </run>
    <run task="bootstrap">
      <v n="scala">2.11.6</v>
      <v n="java">1.8</v>
    </run>

    <run task="partest-noopt">
      <v n="scala">2.11.7</v>
      <v n="java">1.7</v>
    </run>
    <run task="partest-fastopt">
      <v n="scala">2.11.7</v>
      <v n="java">1.7</v>
    </run>
    <run task="partest-fullopt">
      <v n="scala">2.11.7</v>
      <v n="java">1.7</v>
    </run>
    <run task="partest-noopt">
      <v n="scala">2.12.0-M3</v>
      <v n="java">1.8</v>
    </run>
    <run task="partest-fastopt">
      <v n="scala">2.12.0-M3</v>
      <v n="java">1.8</v>
    </run>
    <run task="partest-fullopt">
      <v n="scala">2.12.0-M3</v>
      <v n="java">1.8</v>
    </run>
  </matrix>

  <matrix id="weekly">
    <!-- weekly does not have to run nightly, since they will run at the same time -->

    <run task="partest-noopt">
      <v n="scala">2.11.0</v>
      <v n="java">1.7</v>
    </run>
    <run task="partest-fastopt">
      <v n="scala">2.11.0</v>
      <v n="java">1.7</v>
    </run>
    <run task="partest-fullopt">
      <v n="scala">2.11.0</v>
      <v n="java">1.7</v>
    </run>
    <run task="partest-noopt">
      <v n="scala">2.11.1</v>
      <v n="java">1.7</v>
    </run>
    <run task="partest-fastopt">
      <v n="scala">2.11.1</v>
      <v n="java">1.7</v>
    </run>
    <run task="partest-fullopt">
      <v n="scala">2.11.1</v>
      <v n="java">1.7</v>
    </run>
    <run task="partest-noopt">
      <v n="scala">2.11.2</v>
      <v n="java">1.7</v>
    </run>
    <run task="partest-fastopt">
      <v n="scala">2.11.2</v>
      <v n="java">1.7</v>
    </run>
    <run task="partest-fullopt">
      <v n="scala">2.11.2</v>
      <v n="java">1.7</v>
    </run>
    <run task="partest-noopt">
      <v n="scala">2.11.2</v>
      <v n="java">1.8</v>
    </run>
    <run task="partest-fastopt">
      <v n="scala">2.11.2</v>
      <v n="java">1.8</v>
    </run>
    <run task="partest-fullopt">
      <v n="scala">2.11.2</v>
      <v n="java">1.8</v>
    </run>
    <!-- Partest does not compile on Scala 2.11.4 (see #1215). -->
    <run task="partest-noopt">
      <v n="scala">2.11.5</v>
      <v n="java">1.7</v>
    </run>
    <run task="partest-fastopt">
      <v n="scala">2.11.5</v>
      <v n="java">1.7</v>
    </run>
    <run task="partest-fullopt">
      <v n="scala">2.11.5</v>
      <v n="java">1.7</v>
    </run>
    <run task="partest-noopt">
      <v n="scala">2.11.5</v>
      <v n="java">1.8</v>
    </run>
    <run task="partest-fastopt">
      <v n="scala">2.11.5</v>
      <v n="java">1.8</v>
    </run>
    <run task="partest-fullopt">
      <v n="scala">2.11.5</v>
      <v n="java">1.8</v>
    </run>
    <run task="partest-noopt">
      <v n="scala">2.11.6</v>
      <v n="java">1.7</v>
    </run>
    <run task="partest-fastopt">
      <v n="scala">2.11.6</v>
      <v n="java">1.7</v>
    </run>
    <run task="partest-fullopt">
      <v n="scala">2.11.6</v>
      <v n="java">1.7</v>
    </run>
    <run task="partest-noopt">
      <v n="scala">2.11.6</v>
      <v n="java">1.8</v>
    </run>
    <run task="partest-fastopt">
      <v n="scala">2.11.6</v>
      <v n="java">1.8</v>
    </run>
    <run task="partest-fullopt">
      <v n="scala">2.11.6</v>
      <v n="java">1.8</v>
    </run>
    <run task="partest-noopt">
      <v n="scala">2.11.7</v>
      <v n="java">1.8</v>
    </run>
    <run task="partest-fastopt">
      <v n="scala">2.11.7</v>
      <v n="java">1.8</v>
    </run>
    <run task="partest-fullopt">
      <v n="scala">2.11.7</v>
      <v n="java">1.8</v>
    </run>
    <!--
        Partest does sometimes not compile on JDK6 (see #1227) we
        therefore do not run any JDK6 partests.
      -->
  </matrix>

</ci>

{'fraction_non_alphanumeric': 0.2063354829565587, 'fraction_numerical': 0.035334136489263694, 'mean_word_length': 2.3940735039445835, 'pattern_counts': {'":': 0, '<': 2279, '<?xml version=': 2, '>': 2287, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 2}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3654796', 'n_tokens_mistral': 29094, 'n_tokens_neox': 28128, 'n_words': 4579}