[project @ 1998-12-18 17:40:31 by simonpj]
[ghc-hetmet.git] / ghc / compiler / NOTES
1 cvs remove TcGRHSs.hi-boot TcGRHSs.hi-boot-5 TcGRHSs.lhs
2 cvs remove pbinding.ugn
3 cvs add grhsb.ugn gdexp.ugn
4 cvs add basicTypes/OccName.lhs
5
6
7 New in 4.02
8 * Scoped type variables
9 * Warnings for unused variables should work now (they didn't before)
10 * Simplifier improvements:
11         - Much better treatment of strict arguments
12         - Better treatment of bottoming Ids
13         - No need for w/w split for fns that are merely strict
14         - Fewer iterations needed, I hope
15 * Less gratuitous renaming in interface files and abs C
16 * OccName is a separate module, and is an abstract data type
17
18 -----------------------
19
20
21 * CHECK that the things seek_liftable found are done in Core
22
23 * CHECK that there aren't too many indirections in STG
24         local = ...
25         global = local Int
26
27 Interface files
28 ~~~~~~~~~~~~~~~
29 * Don't need to pin a kind on the type variable in a interface class decl,
30   because it'll be correctly re-inferred when we read it in.
31
32 * The double semicolon at the end of an interface-file signature is so that
33   the lexer can run through the pragmas very fast when -O isn't being used.
34
35 * In export lists, T|(A,B) says that constructors A and B are exported, 
36   but not the type T.  Similarly for classes.  
37   We can't say T(T,A,B) and T(A,B) to export or not-export T respectively,
38   because the type T might have a constructor T.
39
40 ===========================================================================
41
42                 Nofib failures
43                 ~~~~~~~~~~~~~~
44
45 * spectral/hartel/wave4main, wang, spectral/simple, real/symalg
46
47 Bus error
48
49 * real/anna
50
51 expected stdout not matched by reality
52 *** big.sum.out Thu Aug 22 14:37:05 1996
53 --- /tmp/runtest21900.1 Mon Jan 20 17:57:49 1997
54 ***************
55 *** 1 ****
56 ! 12796    49
57 --- 1 ----
58 ! 63325 97
59
60
61 * /real/compress2
62
63 expected stderr not matched by reality
64 Warning: missing newline at end of file /tmp/runtest14691.2
65 *** /tmp/no_stderr14691 Thu Jan 23 14:33:29 1997
66 --- /tmp/runtest14691.2 Thu Jan 23 14:33:29 1997
67 ***************
68 *** 0 ****
69 --- 1,2 ----
70
71 + Fail: Prelude.Enum.Char.toEnum:out of range
72
73
74 * real/ebnf2ps
75  
76 IOSupplement.hs: 43: value not in scope: getEnv
77
78         ...and...
79  
80 HappyParser.hs: 127: Couldn't match the type
81                          [HappyParser.Token'] against PrelBase.Int
82     Expected: HappyParser.HappyReduction
83     Inferred: PrelBase.Int -> HappyParser.Token' -> HappyParser.HappyState HappyParser.Token' ([HappyParser.HappyAbsSyn] -> [AbstractSyntax.Production]) -> PrelBase.Int -> PrelBase.Int -> o{-a1yN-} -> o{-a1yO-} -> [HappyParser.Token'] -> a{-a1yP-}
84     In an equation for function HappyParser.action_1:
85         HappyParser.action_1 _ = HappyParser.happyFail
86
87
88 * GHC_ONLY/bugs/andy_cherry
89
90 DataTypes.lhs: 3: Could not find valid interface file for `GenUtils'
91
92 Need "make depend"
93
94 * GHC_ONLY/bugs/lex
95
96 Pattern match fail in lex; must be producing empty or multi-valued result
97
98 Aggravated by dreadful error messages:
99
100 + Fail: In irrefutable pattern
101 + Fail: In pattern-matching
102 + Fail: In pattern-matching
103 + Fail: In pattern-matching
104 + Fail: In pattern-matching
105 + Fail: In pattern-matching
106 + Fail: In pattern-matching
107 + Fail: In pattern-matching
108 + Fail: In pattern-matching
109 + Fail: In pattern-matching
110 + Fail: In pattern-matching
111 + Fail: In pattern-matching
112 + Fail: In pattern-matching
113 + Fail: In pattern-matching
114 + Fail: In pattern-matching
115 + Fail: In pattern-matchingtoo many nested calls to `error'
116
117
118 * GHC_ONLY/bugs/jtod_circint
119
120 Main.hs: 12: No instance for: Signal.Signal (Signal.Stream Bit.Bit)
121     Main.hs: 12: at a use of an overloaded identifier: `Signal.one'
122
123 instance-decl slurping is WRONG
124
125 * GHC_ONLY/arith005
126
127 ceiling doesn't work properly
128
129 --- 1,3 ----
130 + [1, 1, 2, 3, 4, 5, 0, -2, -3, -4, 1000013, 124, 101, 103, 1, 0, 17001, 0, 1, 4]
131 + [1, 1, 2, 3, 4, 5, 0, -2, -3, -4, 1000013, 124, 101, 103, 1, 0, 17001, 0, 1, 4]
132   [0, 0, 2, 3, 4, 5, -1, -2, -3, -4, 1000012, 124, 101, 103, 1, 0, 17000, 0, 1, 4]
133 ***************
134 *** 2,5 ****
135   [0, 0, 2, 3, 4, 5, -1, -2, -3, -4, 1000012, 124, 101, 103, 1, 0, 17000, 0, 1, 4]
136 - [0, 0, 2, 3, 4, 5, -1, -2, -3, -4, 1000012, 124, 101, 103, 1, 0, 17000, 0, 1, 4]
137 - [0, 0, 2, 3, 4, 5, -1, -2, -3, -4, 1000012, 124, 101, 103, 1, 0, 17000, 0, 1, 4]
138   [0, 0, 1, 2, 3, 4, -1, -3, -4, -5, 1000012, 123, 100, 102, 0, -1, 17000, -1, 0, 3]
139 --- 4,5 ----
140
141
142 * GHC_ONLY/bugs/lennart_array
143
144 Wrong array semantics (but who cares?)
145
146 * GHC_ONLY/bugs/life_space_leak
147
148 -n *** sum I got: 
149 0 0
150 -n *** sum I expected: 
151 02845  1350