Skip to content

Draft: Fix #8045 - Move I/O manager benchmarks into the GHC tree

Alina Banerjee requested to merge wip/fix-8045 into master

This MR replaces !4955 (closed).

The following points are relevant for this MR:

  • Relevant changes in the base library have been made for Event-related modules

  • All original benchmark programs have been included in the branch for comparison as the some of these required extensive updates/changes for them to be able to work with the newer GHC versions and/or libraries.

  • The following libraries need to be locally installed:

    • network-v3.1.2.1
    • attoparsec-0.14.1
    • ghc-prim-0.7.0
    • hashable-1.3.2.0
    • integer-logarithms-1.0.3.1
    • primitive-0.7.1.0
    • scientific-0.3.7.0

    and minor changes need to be made in the above libraries for compatibility with GHC 9+. The steps outlined at https://gitlab.haskell.org/ghc/ghc/-/wikis/debugging/installing-packages-inplace under the plan B heading are useful. After this, the makefile can with make and the benchmarks.cabal file can be run as: cabal build --with-compiler=$topdir/inplace/bin/ghc-stage2 --package-db=$topdir/inplace/lib/package.conf.d

  • All Bash shell and Python scripts have been updated for Python 3.8.5 and Bash 5+

  • Example outputs for the bench-timers.sh and bench-thread-delay.sh scripts have been added for reference.

Edited by Andreas Klebinger

Merge request reports