The JavaScript build job copies overwrites stage1/bin/ghc with stage0/bin/ghc
If you build the JS-enabled GHC, for example following the job for x86_64-linux-deb11-int_native-cross_javascript-unknown-ghcjs-validate, you will notice the following line of output (check one of the job logs such as https://artifacts.gitlab.haskell.org/ghc-gitlab-ci/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b/2023_05_15/1515126/2126534/job.log?X-Amz-Expires=600&X-Amz-Date=20230516T200434Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=gitlab-artifacts%2F20230516%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=4facceb75486917e3a8899cc216917f00385ab243aecd34a256a2fe7a2c33b3f):
| Copy file: _build/stage0/bin/javascript-unknown-ghcjs-ghc => _build/stage1/bin/javascript-unknown-ghcjs-ghc
That is; we never actually test the stage1 compiler, only the stage0 compiler.
I'm not sure if this is an oversight, but this caused me 10 minutes of head-scratching wondering why my print statements weren't visible.
CC @hsyl20