diff --git a/.github/workflows/bench.yml b/.github/workflows/bench.yml index 659352e4e6..cb345c806e 100644 --- a/.github/workflows/bench.yml +++ b/.github/workflows/bench.yml @@ -17,7 +17,6 @@ on: jobs: pre_job: runs-on: ubuntu-latest - if: contains(github.event.pull_request.labels.*.name, 'performance') outputs: should_skip: ${{ steps.skip_check.outputs.should_skip }} steps: @@ -53,8 +52,8 @@ jobs: # see discussion https://github.com/haskell/haskell-language-server/pull/4118 # also possible to add more GHCs if we performs better in the future. ghc: - - '9.6' - '9.8' + - '9.10' os: - ubuntu-latest @@ -62,7 +61,7 @@ jobs: # change of the strategy may require changing the bootstrapping/run code steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: # By default, the `pull_request` event has a `GITHUB_SHA` env variable @@ -101,27 +100,28 @@ jobs: tar -czf cabal.tar.gz * - name: Upload workspace - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: workspace-${{ matrix.ghc }}-${{ matrix.os }} retention-days: 1 path: workspace.tar.gz - name: Upload .cabal - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: cabal-home-${{ matrix.ghc }}-${{ matrix.os }} retention-days: 1 path: ~/.cabal/cabal.tar.gz bench_example: + if: contains(github.event.pull_request.labels.*.name, 'performance') needs: [bench_init, pre_job] runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: - ghc: ['9.6', '9.8'] + ghc: ['9.8', '9.10'] os: [ubuntu-latest] cabal: ['3.10'] example: ['cabal', 'lsp-types'] @@ -134,13 +134,13 @@ jobs: enable-stack: false - name: Download cabal home - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: cabal-home-${{ matrix.ghc }}-${{ matrix.os }} path: . - name: Download workspace - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: workspace-${{ matrix.ghc }}-${{ matrix.os }} path: . @@ -165,7 +165,7 @@ jobs: run: find bench-results -name "*.csv" -or -name "*.svg" -or -name "*.html" | xargs tar -czf benchmark-artifacts.tar.gz - name: Archive benchmarking artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: bench-results-${{ matrix.example }}-${{ runner.os }}-${{ matrix.ghc }} path: benchmark-artifacts.tar.gz @@ -175,7 +175,7 @@ jobs: run: find bench-results -name "*.log" -or -name "*.hp" | xargs tar -czf benchmark-logs.tar.gz - name: Archive benchmark logs - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: bench-logs-${{ matrix.example }}-${{ runner.os }}-${{ matrix.ghc }} path: benchmark-logs.tar.gz diff --git a/cabal.project b/cabal.project index 7e488eae8c..d63c47ff99 100644 --- a/cabal.project +++ b/cabal.project @@ -49,9 +49,6 @@ constraints: -- in the future, thus: TODO: remove this flag. bitvec -simd, -if impl(ghc >= 9.9) - -- https://github.com/haskell/haskell-language-server/issues/4324 - benchmarks: False if impl(ghc >= 9.8.4) && impl(ghc < 9.8.5) -- By depending on ghc-lib-parser and ghc, we are encountering diff --git a/haskell-language-server.cabal b/haskell-language-server.cabal index dcbb546733..5f011472fb 100644 --- a/haskell-language-server.cabal +++ b/haskell-language-server.cabal @@ -2100,7 +2100,7 @@ benchmark benchmark hs-source-dirs: bench build-tool-depends: haskell-language-server:ghcide-bench, - hp2pretty:hp2pretty, + eventlog2html:eventlog2html, default-extensions: LambdaCase RecordWildCards diff --git a/shake-bench/shake-bench.cabal b/shake-bench/shake-bench.cabal index d5852a6310..eccd84edeb 100644 --- a/shake-bench/shake-bench.cabal +++ b/shake-bench/shake-bench.cabal @@ -16,8 +16,6 @@ source-repository head location: https://github.com/haskell/haskell-language-server.git library - if impl(ghc >= 9.10) - buildable: False exposed-modules: Development.Benchmark.Rules hs-source-dirs: src build-depends: diff --git a/shake-bench/src/Development/Benchmark/Rules.hs b/shake-bench/src/Development/Benchmark/Rules.hs index 98cfd717d2..81510b3101 100644 --- a/shake-bench/src/Development/Benchmark/Rules.hs +++ b/shake-bench/src/Development/Benchmark/Rules.hs @@ -535,7 +535,7 @@ heapProfileRules build = do build -/- "*/*/*/*/*.heap.svg" %> \out -> do let hpFile = dropExtension2 out <.> "hp" need [hpFile] - cmd_ ("hp2pretty" :: String) [hpFile] + cmd_ ("eventlog2html" :: String) ["--heap-profile", hpFile] liftIO $ renameFile (dropExtension hpFile <.> "svg") out dropExtension2 :: FilePath -> FilePath