Draft: Fix #8045 - Move I/O manager benchmarks into the GHC tree
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.