[project @ 2001-03-01 15:36:20 by simonmar]
[ghc-hetmet.git] / ghc / tests / ghci / prog003 / prog003.script
1 -- A small multi-module program, with 4 modules, Main, B, C, D.  B & C
2 -- depend on D, and A depends on B & C.
3 -- 
4 -- This test will try various combinations of compiled and interpreted
5 -- versions of each module, and make sure each combination behaves
6 -- sensibly.
7
8 -- clean up
9 :! rm *.o *.hi
10 :unset +s
11 :! cp D1.hs D.hs
12
13 :load A
14 :type a
15 a 42
16
17 -- sigh; sleep 1, because the comp manager only stores times in seconds
18 :! sleep 1; cp D2.hs D.hs
19 :reload
20 :type (Main.a,B.b,C.c,D.d)
21 a 42
22
23 -- compile D, check that :reload doesn't pick it up
24 :! $HC $HC_OPTS -c D.hs
25 :reload
26 :type (Main.a,B.b,C.c,D.d)
27 a 42
28
29 -- pick up the compiled D now, with :load
30 :load A
31 :type (Main.a,B.b,C.c,D.d)
32 a 42
33
34 -- D,C compiled
35 :! $HC $HC_OPTS -c C.hs
36 :load A
37 :type (Main.a,B.b,C.c,D.d)
38 a 42
39
40 -- D,C,B compiled
41 :! $HC $HC_OPTS -c B.hs
42 :load A
43 :type (Main.a,B.b,C.c,D.d)
44 a 42
45
46 -- D,C,B,A compiled
47 :! $HC $HC_OPTS -c A.hs
48 :load A
49 :type (Main.a,B.b,C.c,D.d)
50 a 42
51
52 -- D,C,A compiled  (better not use A.o)
53 :load A
54 :type (Main.a,B.b,C.c,D.d)
55 a 42
56
57 -- D,A compiled  (better not use A.o)
58 :! rm C.o
59 :load A
60 :type (Main.a,B.b,C.c,D.d)
61 a 42
62
63 -- A compiled  (better not use A.o)
64 :! rm D.o
65 :load A
66 :type (Main.a,B.b,C.c,D.d)
67 a 42
68
69 -- A,B,C compiled (better not use A.o, B.o, C.o)
70 :! $HC $HC_OPTS --make A
71 :! rm D.o
72 :type (Main.a,B.b,C.c,D.d)
73 a 42