Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optimize tail recursion on effectively final methods even when final keyword is absent #10629

Merged
merged 1 commit into from
Dec 14, 2023

Infer more final to permit tailrec

8df9830
Select commit
Failed to load commit list.
Merged

Optimize tail recursion on effectively final methods even when final keyword is absent #10629

Infer more final to permit tailrec
8df9830
Select commit
Failed to load commit list.
Travis CI / Travis CI - Pull Request required action Dec 14, 2023 in 1h 31m 21s

Build Errored

The build errored. This is a change from the previous build, which passed.

Details

This is a pull request build.

It is running a build against the merge commit, after merging #10629 Infer more final to permit tailrec.
Any changes that have been made to the 2.13.x branch before the build ran are also included.

Jobs and Stages

This build has six jobs, running in two sequential stages.

Stage 1: build

This stage passed.

Job ENV OS State
19250.1 build, publishLocal, build again ADOPTOPENJDK=8 Linux passed
19250.2 language spec ADOPTOPENJDK=8 Linux passed

Stage 2: test

This stage errored.

Job ENV OS State
19250.3 tests (junit, scalacheck, et al) ADOPTOPENJDK=8 Linux passed
19250.4 tests (partest) ADOPTOPENJDK=8 Linux passed
19250.5 build library with Scala 3 ADOPTOPENJDK=8 Linux errored
19250.6 build benchmarks ADOPTOPENJDK=8 Linux errored

Build Configuration

Build Option Setting
Language Scala
Operating System Linux (Xenial)
Build Configuration
{
  "templates": {
    "pr-jdk8": {
      "if": "type = pull_request OR repo != scala/scala"
    },
    "cron-jdk17": {
      "if": "type = cron AND repo = scala/scala",
      "env": "ADOPTOPENJDK=17"
    },
    "build-for-testing": {
      "stage": "build",
      "name": "build, publishLocal, build again",
      "script": [
        "set -e",
        "sbt -Dsbt.scala.version=2.12.18-M2 setupPublishCore generateBuildCharacterPropertiesFile headerCheck publishLocal",
        "STARR=$(sed -n 's/^maven\\.version\\.number=//p' buildcharacter.properties) && echo $STARR",
        "sbt -Dsbt.scala.version=2.12.18-M2 -Dstarr.version=$STARR setupValidateTest compile"
      ],
      "workspaces": {
        "create": {
          "name": "bootstrapped",
          "paths": [
            "buildcharacter.properties",
            "$HOME/.ivy2/local/org.scala-lang",
            "target",
            "project/target",
            "project/project/target",
            "project/project/project/target",
            "dist",
            "build"
          ]
        }
      }
    },
    "test1": {
      "stage": "test",
      "name": "tests (junit, scalacheck, et al)",
      "workspaces": {
        "use": "bootstrapped"
      },
      "script": [
        "set -e",
        "STARR=$(sed -n 's/^maven\\.version\\.number=//p' buildcharacter.properties) && echo $STARR",
        "sbt -Dsbt.scala.version=2.12.18-M2 -Dstarr.version=$STARR setupValidateTest Test/compile testAll1"
      ]
    },
    "test2": {
      "stage": "test",
      "name": "tests (partest)",
      "workspaces": {
        "use": "bootstrapped"
      },
      "script": [
        "set -e",
        "STARR=$(sed -n 's/^maven\\.version\\.number=//p' buildcharacter.properties) && echo $STARR",
        "sbt -Dsbt.scala.version=2.12.18-M2 -Dstarr.version=$STARR setupValidateTest testAll2"
      ]
    }
  },
  "language": "scala",
  "os": [
    "linux"
  ],
  "dist": "xenial",
  "version": "~> 1.0",
  "stages": [
    {
      "name": "build"
    },
    {
      "name": "test"
    }
  ],
  "jobs": {
    "include": [
      {
        "stage": "build",
        "if": "(type = push OR type = api) AND repo = scala/scala",
        "name": "publish (bootstrapped) to scala-integration or sonatype",
        "script": [
          "set -e",
          "(cd admin && ./init.sh)",
          "source scripts/common",
          "source scripts/bootstrap_fun",
          "determineScalaVersion",
          "removeExistingBuilds $integrationRepoUrl",
          "if [ ! -z \"$STARR_REF\" ]; then buildStarr; fi",
          "buildLocker",
          "buildQuick",
          "triggerScalaDist"
        ]
      },
      {
        "workspaces": {
          "create": {
            "name": "bootstrapped",
            "paths": [
              "buildcharacter.properties",
              "$HOME/.ivy2/local/org.scala-lang",
              "target",
              "project/target",
              "project/project/target",
              "project/project/project/target",
              "dist",
              "build"
            ]
          }
        },
        "stage": "build",
        "name": "build, publishLocal, build again",
        "script": [
          "set -e",
          "sbt -Dsbt.scala.version=2.12.18-M2 setupPublishCore generateBuildCharacterPropertiesFile headerCheck publishLocal",
          "STARR=$(sed -n 's/^maven\\.version\\.number=//p' buildcharacter.properties) && echo $STARR",
          "sbt -Dsbt.scala.version=2.12.18-M2 -Dstarr.version=$STARR setupValidateTest compile"
        ],
        "if": "type = pull_request OR repo != scala/scala"
      },
      {
        "workspaces": {
          "use": "bootstrapped"
        },
        "stage": "test",
        "name": "tests (junit, scalacheck, et al)",
        "script": [
          "set -e",
          "STARR=$(sed -n 's/^maven\\.version\\.number=//p' buildcharacter.properties) && echo $STARR",
          "sbt -Dsbt.scala.version=2.12.18-M2 -Dstarr.version=$STARR setupValidateTest Test/compile testAll1"
        ],
        "if": "type = pull_request OR repo != scala/scala"
      },
      {
        "workspaces": {
          "use": "bootstrapped"
        },
        "stage": "test",
        "name": "tests (partest)",
        "script": [
          "set -e",
          "STARR=$(sed -n 's/^maven\\.version\\.number=//p' buildcharacter.properties) && echo $STARR",
          "sbt -Dsbt.scala.version=2.12.18-M2 -Dstarr.version=$STARR setupValidateTest testAll2"
        ],
        "if": "type = pull_request OR repo != scala/scala"
      },
      {
        "workspaces": {
          "create": {
            "name": "bootstrapped",
            "paths": [
              "buildcharacter.properties",
              "$HOME/.ivy2/local/org.scala-lang",
              "target",
              "project/target",
              "project/project/target",
              "project/project/project/target",
              "dist",
              "build"
            ]
          }
        },
        "stage": "build",
        "name": "build, publishLocal, build again",
        "script": [
          "set -e",
          "sbt -Dsbt.scala.version=2.12.18-M2 setupPublishCore generateBuildCharacterPropertiesFile headerCheck publishLocal",
          "STARR=$(sed -n 's/^maven\\.version\\.number=//p' buildcharacter.properties) && echo $STARR",
          "sbt -Dsbt.scala.version=2.12.18-M2 -Dstarr.version=$STARR setupValidateTest compile"
        ],
        "if": "type = cron AND repo = scala/scala",
        "env": [
          {
            "ADOPTOPENJDK": "17"
          }
        ]
      },
      {
        "workspaces": {
          "use": "bootstrapped"
        },
        "stage": "test",
        "name": "tests (junit, scalacheck, et al)",
        "script": [
          "set -e",
          "STARR=$(sed -n 's/^maven\\.version\\.number=//p' buildcharacter.properties) && echo $STARR",
          "sbt -Dsbt.scala.version=2.12.18-M2 -Dstarr.version=$STARR setupValidateTest Test/compile testAll1"
        ],
        "if": "type = cron AND repo = scala/scala",
        "env": [
          {
            "ADOPTOPENJDK": "17"
          }
        ]
      },
      {
        "workspaces": {
          "use": "bootstrapped"
        },
        "stage": "test",
        "name": "tests (partest)",
        "script": [
          "set -e",
          "STARR=$(sed -n 's/^maven\\.version\\.number=//p' buildcharacter.properties) && echo $STARR",
          "sbt -Dsbt.scala.version=2.12.18-M2 -Dstarr.version=$STARR setupValidateTest testAll2"
        ],
        "if": "type = cron AND repo = scala/scala",
        "env": [
          {
            "ADOPTOPENJDK": "17"
          }
        ]
      },
      {
        "workspaces": {
          "use": "bootstrapped"
        },
        "stage": "test",
        "name": "build library with Scala 3",
        "if": "type = pull_request OR repo != scala/scala",
        "script": [
          "set -e",
          "STARR=$(sed -n 's/^maven\\.version\\.number=//p' buildcharacter.properties) && echo $STARR",
          "sbt -Dsbt.scala.version=2.12.18-M2 -Dscala.build.compileWithDotty=true library/compile"
        ]
      },
      {
        "workspaces": {
          "use": "bootstrapped"
        },
        "name": "build benchmarks",
        "if": "type = pull_request OR repo != scala/scala",
        "script": [
          "set -e",
          "STARR=$(sed -n 's/^maven\\.version\\.number=//p' buildcharacter.properties) && echo $STARR",
          "sbt -Dsbt.scala.version=2.12.18-M2 bench/Jmh/compile"
        ]
      },
      {
        "stage": "build",
        "if": "type = pull_request OR type = push",
        "name": "language spec",
        "dist": "focal",
        "language": "ruby",
        "install": [
          "ruby -v",
          "gem install bundler",
          "bundler --version",
          "bundle install --path vendor/bundle",
          "sudo apt-get update",
          "sudo apt-get install -y build-essential xorg xfonts-75dpi libpng16-16 libssl1.1",
          "wget --quiet \"https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.bionic_amd64.deb\"",
          "sudo dpkg -i \"wkhtmltox_0.12.6-1.bionic_amd64.deb\"",
          "rm \"wkhtmltox_0.12.6-1.bionic_amd64.deb\""
        ],
        "script": [
          "set -e",
          "(cd admin && ./init.sh)",
          "bundle exec jekyll build -s spec/ -d build/spec",
          "export JEKYLL_ENV=spec-pdf",
          "bundle exec jekyll build -s spec/ -d build/spec-pdf",
          "./scripts/generate-spec-pdf.sh"
        ],
        "after_success": [
          "./scripts/travis-publish-spec.sh"
        ]
      }
    ]
  },
  "env": [
    "global={:ADOPTOPENJDK=>\"8\"}=PRIV_KEY_SECRET=[secure]=PRIVATE_REPO_PASS=[secure]=GPG_SUBKEY_SECRET=[secure]=TRAVIS_TOKEN=[secure]=SONA_USER=[secure]=SONA_PASS=[secure]"
  ],
  "cache": {
    "directories": [
      "$HOME/.ivy2/cache",
      "$HOME/.sbt",
      "$HOME/.sdkman",
      "$HOME/.cache/coursier",
      "$HOME/.rvm"
    ]
  },
  "notifications": {
    "slack": [
],
"webhooks": [
  {
    "urls": [
      "https://scala-ci.typesafe.com/benchq/webhooks/travis"
    ]
  }
]

},
"before_install": [
"# adding $HOME/.sdkman to cache would create an empty directory, which interferes with the initial installation\n[[ -d $HOME/.sdkman/bin/ ]] || rm -rf $HOME/.sdkman/\ncurl -sL https://get.sdkman.io | bash\necho sdkman_auto_answer=true > $HOME/.sdkman/etc/config\necho sdkman_auto_selfupdate=true >> $HOME/.sdkman/etc/config\nsource $HOME/.sdkman/bin/sdkman-init.sh\nsdkJava=$(sdk list java | grep -o " $ADOPTOPENJDK\.[0-9\.]-tem" | head -1 | cut -c2-)\n# if we didn't find Temurin, accept an early access build from Java.net\nif [[ -z $sdkJava ]]; then sdkJava=$(sdk list java | egrep -o " $ADOPTOPENJDK\\.ea.[0-9]+-open" | head -1 | cut -c2-); fi\nif [[ -z $sdkJava ]]; then sdk list java; echo "no matching JDK found: $ADOPTOPENJDK"; travis_terminate 1; fi\nsdk install java $sdkJava || true # install fails if it's already installed\nsdk use java $sdkJava\nunset JAVA_HOME\nif [[ $ADOPTOPENJDK == 8 ]]; then versionPrefix="1\.8"; else versionPrefix=$ADOPTOPENJDK; fi\njava -version\n",
"java -version 2>&1 | grep 'OpenJDK.[^0-9]'$versionPrefix'[^0-9]' || exit 1",
"unset SBT_OPTS\nunset JVM_OPTS\nunset SBT_ETC_FILE\ncurl -L --silent "https://raw.githubusercontent.com/sbt/sbt/1.6.x/sbt" > $HOME/sbt\nchmod +x $HOME/sbt && sudo mv $HOME/sbt /usr/local/bin/sbt\n"
],
"before_cache": [
"rm -fv $HOME/.ivy2/.sbt.ivy.lock",
"rm -fv $HOME/.sdkman/var/broadcast",
"rm -fv $HOME/.sdkman/var/broadcast_id",
"find $HOME/.ivy2/cache -name "ivydata-.properties"     -print -delete",
"find $HOME/.sbt        -name ".lock"                   -print -delete",
"find $HOME/.sbt        -name "compiler-bridge_-bin-*" -print -delete"
]
}