Update Trac ticket URLs to point to GitLab
[ghc.git] / testsuite / tests / ghci / scripts / ghci063.script
1 :! echo module A where {} >A.hs
2 :! echo module B where { import A } >B.hs
3
4 -- Workaround for #16201. We use "touch -r" to set modification
5 -- timestamps, which leads to precision loss on Darwin. For example,
6 --
7 --    before: 2019-02-25 01:11:23.807627350 +0300
8 --    after:  2019-02-25 01:11:23.807627000 +0300
9 --                                      ^^^
10 -- This means we can't trick GHCi into thinking the file hasn't been changed
11 -- by restoring its old timestamp, as we cannot faithfully restore all digits.
12 --
13 -- The solution is to nullify the insignificant digits before the first load.
14 :! touch -r B.hs B.hs
15
16 :load B
17
18 -- We're going to replace B.hs with an invalid module but without
19 -- changing its timestamp.  A :reload should *not* look at the
20 -- contents of the file, because the timestamp hasn't changed.
21 :! cp B.hs B.hs-copy
22 :! touch -r B.hs B.hs-copy
23 :! echo "*** INVALID ***" >B.hs
24 :! touch -r B.hs-copy B.hs
25
26 :reload
27
28 -- Put the original file back, now it should work
29 :! cp B.hs-copy B.hs
30 :reload