There are utilities that I find useful while working on GHC. It's quite a mixed bag; a few are for performance analysis, some for general development, and others for release management. Some are useful; all are hacky.
You can build the scripts using
nix-build . and enter into a shell where
the scripts are available using
push: A script which I use to look over and push upstream my local branches
review-submodules: A script for reviewing and optionally reverting submodule changes in a commit
add-upstream-remotes.py: A script which adds git remotes (named
upstream) to all submodules pointing to the upstream repository.
make-ghc-tags.sh: A script for generating emacs
TAGSfiles for a GHC tree (e.g.
debug-ghc: A script for running an in-place installation of GHC (e.g.
validate-all: A script for validating a range of GHC commits.
split-core2core.py: An extremely useful script for splitting up the output of GHC's
-dverbose-core2coredump option, placing the output of each pass in a separate file (e.g.
compare-ticks/: A hack for comparing reports from GHC's ticky-ticky profiler.
compare-stats.py: Utility for comparing output from GHC's
+RTS -t --machine-readableoutput.
source-release.sh: The script that I use to build source distribution tarballs.
bin-release.sh: The script that I use to build binary distributions.
upload.sh: The script that I use to collect, hash, sign, and upload documentation and distribution tarballs.
mkchroot-debian.sh: A script for preparing clean Debian container environments for GHC building with
process.py: The script that I use to generate GHC download pages
update-autoconf.sh: Update the autoconf sources in the GHC source tree
library-versions: A set of scripts used to generate the
Commentary/Libraries/VersionHistorypage on the GHC Wiki. See