0fe75b1fac820c2f9b661da900f6c643ebd4d389
[ghc-hetmet.git] / ghc / tests / ghci / prog003 / prog003.stdout
1    ___         ___ _
2   / _ \ /\  /\/ __(_)
3  / /_\// /_/ / /  | |      GHC Interactive, version 5.03, for Haskell 98.
4 / /_\\/ __  / /___| |      http://www.haskell.org/ghc/
5 \____/\/ /_/\____/|_|      Type :? for help.
6
7 Loading package std ... linking ... done.
8 Prelude> :unset +s
9 Prelude> :unset +t
10 Prelude> -- A small multi-module program, with 4 modules, Main, B, C, D.  B & C
11 Prelude> -- depend on D, and A depends on B & C.
12 Prelude> -- 
13 Prelude> -- This test will try various combinations of compiled and interpreted
14 Prelude> -- versions of each module, and make sure each combination behaves
15 Prelude> -- sensibly.
16 Prelude> 
17 Prelude> -- clean up
18 Prelude> :! rm *.o *.hi
19 Prelude> :! cp D1.hs D.hs
20 Prelude> 
21 Prelude> :load A
22 Ok, modules loaded: Main, B, C, D.
23 Main> :type a
24 Int -> Int
25 Main> a 42
26 168
27 Main> 
28 Main> -- sigh; sleep 1, because the filesystem only stores times in seconds
29 Main> :! sleep 1; cp D2.hs D.hs
30 Main> :reload
31 Ok, modules loaded: Main, B, C, D.
32 Main> :type (Main.a,B.b,C.c,D.d)
33 (Float -> Float, Float -> Float, Float -> Float, Float -> Float)
34 Main> a 42
35 28.0
36 Main> 
37 Main> -- compile D, check that :reload doesn't pick it up
38 Main> :! $HC $HC_OPTS -c D.hs
39 Main> :reload
40 Ok, modules loaded: Main, B, C, D.
41 Main> :type (Main.a,B.b,C.c,D.d)
42 (Float -> Float, Float -> Float, Float -> Float, Float -> Float)
43 Main> a 42
44 28.0
45 Main> 
46 Main> -- pick up the compiled D now, with :load
47 Main> :load A
48 Ok, modules loaded: Main, B, C, D.
49 Main> :type (Main.a,B.b,C.c,D.d)
50 (Float -> Float, Float -> Float, Float -> Float, Float -> Float)
51 Main> a 42
52 28.0
53 Main> 
54 Main> -- D,C compiled
55 Main> :! $HC $HC_OPTS -c C.hs
56 Main> :load A
57 Ok, modules loaded: Main, B, C, D.
58 Main> :type (Main.a,B.b,C.c,D.d)
59 (Float -> Float, Float -> Float, Float -> Float, Float -> Float)
60 Main> a 42
61 28.0
62 Main> 
63 Main> -- D,C,B compiled
64 Main> :! $HC $HC_OPTS -c B.hs
65 Main> :load A
66 Ok, modules loaded: Main, B, C, D.
67 Main> :type (Main.a,B.b,C.c,D.d)
68 (Float -> Float, Float -> Float, Float -> Float, Float -> Float)
69 Main> a 42
70 28.0
71 Main> 
72 Main> -- D,C,B,A compiled
73 Main> :! $HC $HC_OPTS -c A.hs
74 Main> :load A
75 Ok, modules loaded: Main, B, C, D.
76 Main> :type (Main.a,B.b,C.c,D.d)
77 (PrelFloat.Float -> PrelFloat.Float,
78  PrelFloat.Float -> PrelFloat.Float,
79  PrelFloat.Float -> PrelFloat.Float,
80  PrelFloat.Float -> PrelFloat.Float)
81 Main> a 42
82 28.0
83 Main> 
84 Main> -- D,C,A compiled  (better not use A.o)
85 Main> :! rm B.o
86 Main> :load A
87 Ok, modules loaded: Main, B, C, D.
88 Main> :type (Main.a,B.b,C.c,D.d)
89 (Float -> Float, Float -> Float, Float -> Float, Float -> Float)
90 Main> a 42
91 28.0
92 Main> 
93 Main> -- D,A compiled  (better not use A.o)
94 Main> :! rm C.o
95 Main> :load A
96 Ok, modules loaded: Main, B, C, D.
97 Main> :type (Main.a,B.b,C.c,D.d)
98 (Float -> Float, Float -> Float, Float -> Float, Float -> Float)
99 Main> a 42
100 28.0
101 Main> 
102 Main> -- A compiled  (better not use A.o)
103 Main> :! rm D.o
104 Main> :load A
105 Ok, modules loaded: Main, B, C, D.
106 Main> :type (Main.a,B.b,C.c,D.d)
107 (Float -> Float, Float -> Float, Float -> Float, Float -> Float)
108 Main> a 42
109 28.0
110 Main> 
111 Main> -- A,B,C compiled (better not use A.o, B.o, C.o)
112 Main> :! $HC $HC_OPTS --make A
113 Main> :! rm D.o
114 Main> :load A
115 Ok, modules loaded: Main, B, C, D.
116 Main> :type (Main.a,B.b,C.c,D.d)
117 (Float -> Float, Float -> Float, Float -> Float, Float -> Float)
118 Main> a 42
119 28.0
120 Main> Leaving GHCi.