Ticket #4890: dtrace2.dpatch

File dtrace2.dpatch, 81.1 KB (added by kgardas, 2 years ago)

Much improved DTrace support for both Solaris and Mac OS X

Line 
1
2Hello,
3
4I have tried to address all Ian's requests for this patch. I've also
5attempted to enable DTrace by default on supported platforms
6(Solaris/MacOSX) and disable it where it is broken (64bit MacOSX)
7
8Please review/merge/comment,
9
10Thanks,
11Karel
12
13
147 patches for repository http://darcs.haskell.org/ghc:
15
16Wed Jan 12 06:18:29 CET 2011  Karel Gardas <karel.gardas@centrum.cz>
17  * replace C++ comments with C comments (Solaris' DTrace fails on C++ comments)
18
19Wed Jan 12 06:19:22 CET 2011  Karel Gardas <karel.gardas@centrum.cz>
20  * enable DTrace on i386-solaris2 platform
21  This patch enables DTrace tracing support on i386-solaris2
22  platform. Please keep in mind tracing probes are working *only* if
23  your Haskell binary is linked against RTS compiled into shared
24  library!
25
26Tue Jan 25 22:37:23 CET 2011  Karel Gardas <karel.gardas@centrum.cz>
27  * revert: Turn off dtrace unless you override USE_DTRACE
28  This patch reverts following patch:
29    Sun Jan 16 19:03:06 CET 2011  Ian Lynagh <igloo@earth.li>
30      * Turn off dtrace unless you override USE_DTRACE
31      There are problems with dtrace on 64bit 10.5. For now at least, we
32      just turn dtrace off unless you override USE_DTRACE
33
34Tue Jan 25 22:39:25 CET 2011  Karel Gardas <karel.gardas@centrum.cz>
35  * disable DTrace only on x86_64/Mac OS X 10.5 platform where it is broken
36
37Tue Jan 25 22:45:16 CET 2011  Karel Gardas <karel.gardas@centrum.cz>
38  * fix dir dependency on DTrace probes header file generation
39
40Wed Jan 26 12:40:11 CET 2011  Karel Gardas <karel.gardas@centrum.cz>
41  * updating/enhancing DTrace/Solaris support comments
42
43Wed Jan 26 12:41:02 CET 2011  Karel Gardas <karel.gardas@centrum.cz>
44  * make separate rule for generating rts/dist/build/RtsProbes.o on i386-solaris2 platform
45
46New patches:
47
48[replace C++ comments with C comments (Solaris' DTrace fails on C++ comments)
49Karel Gardas <karel.gardas@centrum.cz>**20110112051829
50 Ignore-this: c229292227c7e2b512daf9129cb66aeb
51] {
52hunk ./includes/rts/EventLogFormat.h 147
53 #ifndef EVENTLOG_CONSTANTS_ONLY
54 
55 typedef StgWord16 EventTypeNum;
56-typedef StgWord64 EventTimestamp; // in nanoseconds
57+typedef StgWord64 EventTimestamp; /* in nanoseconds */
58 typedef StgWord32 EventThreadID;
59 typedef StgWord16 EventCapNo;
60hunk ./includes/rts/EventLogFormat.h 150
61-typedef StgWord16 EventPayloadSize; // variable-size events
62-typedef StgWord16 EventThreadStatus; // status for EVENT_STOP_THREAD
63+typedef StgWord16 EventPayloadSize; /* variable-size events */
64+typedef StgWord16 EventThreadStatus; /* status for EVENT_STOP_THREAD */
65 
66 #endif
67 
68hunk ./rts/RtsProbes.d 13
69 #include "rts/EventLogFormat.h"
70 
71 
72-// -----------------------------------------------------------------------------
73-// Payload datatypes for Haskell events
74-// -----------------------------------------------------------------------------
75+/* -----------------------------------------------------------------------------
76+ * Payload datatypes for Haskell events
77+ * -----------------------------------------------------------------------------
78+ */
79 
80hunk ./rts/RtsProbes.d 18
81-// We effectively have:
82-//
83-// typedef uint16_t EventTypeNum;
84-// typedef uint64_t EventTimestamp;   // in nanoseconds
85-// typedef uint32_t EventThreadID;
86-// typedef uint16_t EventCapNo;
87-// typedef uint16_t EventPayloadSize; // variable-size events
88-// typedef uint16_t EventThreadStatus;
89+/* We effectively have:
90+ *
91+ * typedef uint16_t EventTypeNum;
92+ * typedef uint64_t EventTimestamp;   // in nanoseconds
93+ * typedef uint32_t EventThreadID;
94+ * typedef uint16_t EventCapNo;
95+ * typedef uint16_t EventPayloadSize; // variable-size events
96+ * typedef uint16_t EventThreadStatus;
97+ */
98 
99hunk ./rts/RtsProbes.d 28
100+/* -----------------------------------------------------------------------------
101+ * The HaskellEvent provider captures everything from eventlog for use with
102+ * dtrace
103+ * -----------------------------------------------------------------------------
104+ */
105 
106hunk ./rts/RtsProbes.d 34
107-// -----------------------------------------------------------------------------
108-// The HaskellEvent provider captures everything from eventlog for use with
109-// dtrace
110-// -----------------------------------------------------------------------------
111-
112-// These probes correspond to the events defined in EventLogFormat.h
113-//
114+/* These probes correspond to the events defined in EventLogFormat.h
115+ */
116 provider HaskellEvent {
117 
118hunk ./rts/RtsProbes.d 38
119-  // scheduler events
120+  /* scheduler events */
121   probe create__thread (EventCapNo, EventThreadID);
122   probe run__thread (EventCapNo, EventThreadID);
123   probe stop__thread (EventCapNo, EventThreadID, EventThreadStatus);
124hunk ./rts/RtsProbes.d 54
125   probe request__par__gc (EventCapNo);
126   probe create__spark__thread (EventCapNo, EventThreadID);
127 
128-  // other events
129-//This one doesn't seem to be used at all at the moment:
130-//  probe log__msg (char *);
131+  /* other events */
132+/* This one doesn't seem to be used at all at the moment: */
133+/*  probe log__msg (char *); */
134   probe startup (EventCapNo);
135hunk ./rts/RtsProbes.d 58
136-  // we don't need EVENT_BLOCK_MARKER with dtrace
137+  /* we don't need EVENT_BLOCK_MARKER with dtrace */
138   probe user__msg (EventCapNo, char *);
139   probe gc__idle (EventCapNo);
140   probe gc__work (EventCapNo);
141}
142[enable DTrace on i386-solaris2 platform
143Karel Gardas <karel.gardas@centrum.cz>**20110112051922
144 Ignore-this: a0b8b1eb71eda61c7414163fe490ec55
145 This patch enables DTrace tracing support on i386-solaris2
146 platform. Please keep in mind tracing probes are working *only* if
147 your Haskell binary is linked against RTS compiled into shared
148 library!
149] {
150hunk ./configure.ac 610
151 HaveDtrace=NO
152 AC_PATH_PROG(DtraceCmd,dtrace)
153 if test -n "$DtraceCmd"; then
154-  if test "x$TargetOS_CPP-$TargetVendor_CPP" == "xdarwin-apple"; then
155+  if test "x$TargetOS_CPP-$TargetVendor_CPP" == "xdarwin-apple" -o "x$TargetOS_CPP-$TargetVendor_CPP" == "xsolaris2-unknown"; then
156     HaveDtrace=YES
157   fi
158 fi
159hunk ./rts/PrimOps.cmm 3
160 /* -----------------------------------------------------------------------------
161  *
162- * (c) The GHC Team, 1998-2004
163+ * (c) The GHC Team, 1998-2011
164  *
165  * Out-of-line primitive operations
166  *
167hunk ./rts/PrimOps.cmm 2034
168    // We should go through the macro HASKELLEVENT_USER_MSG_ENABLED from
169    // RtsProbes.h, but that header file includes unistd.h, which doesn't
170    // work in Cmm
171+#if !defined(solaris2_TARGET_OS)
172    (enabled) = foreign "C" __dtrace_isenabled$HaskellEvent$user__msg$v1() [];
173hunk ./rts/PrimOps.cmm 2036
174+#else
175+   // Solaris' DTrace does have problem processing PrimOps.o file
176+   // hence lets enable this manually for Solaris here and disable
177+   // code above which is the culprit of the dtrace processing issue
178+   enabled = 1;
179+#endif
180    if (enabled != 0) {
181      foreign "C" dtraceUserMsgWrapper(MyCapability() "ptr", msg "ptr") [];
182    }
183hunk ./rts/ghc.mk 159
184 rts_$1_S_OBJS   = $$(patsubst rts/%.S,rts/dist/build/%.$$($1_osuf),$$(rts_S_SRCS))
185 rts_$1_CMM_OBJS = $$(patsubst rts/%.cmm,rts/dist/build/%.$$($1_osuf),$$(rts_CMM_SRCS)) $$(patsubst %.cmm,%.$$($1_osuf),$$(rts_AUTO_APPLY_CMM))
186 
187+ifeq "$(HaveDtrace)" "YES"
188+ifeq "$(TargetOS_CPP)" "darwin"
189+# on Darwin we don't need to generate binary containing probes defined
190+# in DTrace script
191+rts_$1_DTRACE_OBJS = ""
192+else
193+# Canonic DTrace usage expects generation of binary from the DTrace
194+# probes definitions
195+rts_$1_DTRACE_OBJS = rts/dist/build/RtsProbes.o
196+endif
197+endif
198+
199 rts_$1_OBJS = $$(rts_$1_C_OBJS) $$(rts_$1_S_OBJS) $$(rts_$1_CMM_OBJS)
200 
201 rts_dist_$1_CC_OPTS += -DRtsWay=\"rts_$1\"
202hunk ./rts/ghc.mk 185
203 else
204 $$(rts_$1_LIB) : $$(rts_$1_OBJS) rts/libs.depend
205        "$$(RM)" $$(RM_OPTS) $$@
206+ifeq "$(TargetOS_CPP)" "solaris2"
207+# Canonic DTrace usage as described in SolarisDynamicTracing Guide,
208+# Chapter 34: Statically Defined Tracing for User Applications
209+       $(DTRACE) -G -C -Iincludes -DDTRACE -s rts/RtsProbes.d -o \
210+               rts/dist/build/RtsProbes.o $$(rts_$1_OBJS)
211+endif
212        "$$(rts_dist_HC)" -package-name rts -shared -dynamic -dynload deploy \
213hunk ./rts/ghc.mk 192
214-         -no-auto-link-packages `cat rts/libs.depend` $$(rts_$1_OBJS) -o $$@
215+         -no-auto-link-packages `cat rts/libs.depend` $$(rts_$1_OBJS) \
216+         $$(rts_$1_DTRACE_OBJS) -o $$@
217 ifeq "$$(darwin_HOST_OS)" "1"
218        # Ensure library's install name is correct before anyone links with it.
219        install_name_tool -id $(ghclibdir)/$$(rts_$1_LIB_NAME) $$@
220hunk ./rts/ghc.mk 202
221 else
222 $$(rts_$1_LIB) : $$(rts_$1_OBJS)
223        "$$(RM)" $$(RM_OPTS) $$@
224-       echo $$(rts_$1_OBJS) | "$$(XARGS)" $$(XARGS_OPTS) "$$(AR)" $$(AR_OPTS) $$(EXTRA_AR_ARGS) $$@
225+ifeq "$(TargetOS_CPP)" "solaris2"
226+# Canonic DTrace usage as described in SolarisDynamicTracing Guide,
227+# Chapter 34: Statically Defined Tracing for User Applications
228+       $(DTRACE) -G -C -Iincludes -DDTRACE -s rts/RtsProbes.d -o \
229+               rts/dist/build/RtsProbes.o  $$(rts_$1_OBJS)
230+endif
231+       echo $$(rts_$1_OBJS) | "$$(XARGS)" $$(XARGS_OPTS) "$$(AR)" \
232+               $$(AR_OPTS) $$(EXTRA_AR_ARGS) $$@ $$(rts_$1_DTRACE_OBJS)
233 endif
234 
235 endif
236hunk ./rts/ghc.mk 497
237 
238 DTRACEPROBES_SRC = rts/RtsProbes.d
239 $(DTRACEPROBES_H): $(DTRACEPROBES_SRC) includes/ghcplatform.h | $(dir $@)/.
240+ifeq "$(TargetOS_CPP)" "darwin"
241+# darwin supports special -x cpppath consumer option which I guess is
242+# not supported on any other DTrace port. See Solaris Dynamic Tracing
243+# Guide, Chapter 16 for values available on Solaris
244        "$(DTRACE)" $(filter -I%,$(rts_CC_OPTS)) -C -x cpppath=$(WhatGccIsCalled) -h -o $@ -s $<
245hunk ./rts/ghc.mk 502
246-
247+else
248+       "$(DTRACE)" $(filter -I%,$(rts_CC_OPTS)) -C -h -o $@ -s $<
249+endif
250 endif
251 
252 # -----------------------------------------------------------------------------
253}
254[revert: Turn off dtrace unless you override USE_DTRACE
255Karel Gardas <karel.gardas@centrum.cz>**20110125213723
256 Ignore-this: a5d678c2775c69af88dfba5c8cd51ae9
257 This patch reverts following patch:
258   Sun Jan 16 19:03:06 CET 2011  Ian Lynagh <igloo@earth.li>
259     * Turn off dtrace unless you override USE_DTRACE
260     There are problems with dtrace on 64bit 10.5. For now at least, we
261     just turn dtrace off unless you override USE_DTRACE
262] {
263hunk ./mk/config.mk.in 624
264 SHELL                  = /bin/sh
265 
266 HaveDtrace             = @HaveDtrace@
267-# There are problems with dtrace on 64bit 10.5. For now at least, we
268-# just turn dtrace off unless you override USE_DTRACE
269-USE_DTRACE = NO
270 DTRACE                 = @DtraceCmd@
271 
272 LD = @LdCmd@
273hunk ./rts/ghc.mk 73
274 
275 rts_H_FILES := $(wildcard rts/*.h)
276 
277-ifeq "$(USE_DTRACE)" "YES"
278+ifeq "$(HaveDtrace)" "YES"
279 DTRACEPROBES_H = rts/dist/build/RtsProbes.h
280 rts_H_FILES += $(DTRACEPROBES_H)
281 endif
282hunk ./rts/ghc.mk 464
283 # TICKY_TICKY can't be used together, so we omit TICKY_TICKY for now.
284 rts_dist_MKDEPENDC_OPTS += -DPROFILING -DTHREADED_RTS -DDEBUG
285 
286-ifeq "$(USE_DTRACE)" "YES"
287+ifeq "$(HaveDtrace)" "YES"
288 
289 rts_dist_MKDEPENDC_OPTS += -Irts/dist/build
290 
291hunk ./rts/ghc.mk 485
292 # -----------------------------------------------------------------------------
293 # compile dtrace probes if dtrace is supported
294 
295-ifeq "$(USE_DTRACE)" "YES"
296+ifeq "$(HaveDtrace)" "YES"
297 
298 rts_CC_OPTS            += -DDTRACE
299 rts_HC_OPTS            += -DDTRACE
300}
301[disable DTrace only on x86_64/Mac OS X 10.5 platform where it is broken
302Karel Gardas <karel.gardas@centrum.cz>**20110125213925
303 Ignore-this: b510cfa34dc494b9e72353db31dd701
304] hunk ./configure.ac 612
305 if test -n "$DtraceCmd"; then
306   if test "x$TargetOS_CPP-$TargetVendor_CPP" == "xdarwin-apple" -o "x$TargetOS_CPP-$TargetVendor_CPP" == "xsolaris2-unknown"; then
307     HaveDtrace=YES
308+    case $ac_cv_host in
309+        x86_64-apple-darwin10.5*)
310+            AC_MSG_WARN([DTrace on x64/MacOS X 10.5 is broken, disabled now!])
311+            HaveDtrace=NO
312+            ;;
313+    esac
314   fi
315 fi
316 AC_SUBST(HaveDtrace)
317[fix dir dependency on DTrace probes header file generation
318Karel Gardas <karel.gardas@centrum.cz>**20110125214516
319 Ignore-this: 5130a3cfb8b1bfb98657855a5f60fb92
320] hunk ./rts/ghc.mk 496
321 # the option cpppath.
322 
323 DTRACEPROBES_SRC = rts/RtsProbes.d
324-$(DTRACEPROBES_H): $(DTRACEPROBES_SRC) includes/ghcplatform.h | $(dir $@)/.
325+$(DTRACEPROBES_H): $(DTRACEPROBES_SRC) includes/ghcplatform.h | $$(dir $$@)/.
326 ifeq "$(TargetOS_CPP)" "darwin"
327 # darwin supports special -x cpppath consumer option which I guess is
328 # not supported on any other DTrace port. See Solaris Dynamic Tracing
329[updating/enhancing DTrace/Solaris support comments
330Karel Gardas <karel.gardas@centrum.cz>**20110126114011
331 Ignore-this: 7e5c20032a3405536b6bbedf0a615820
332] {
333hunk ./rts/PrimOps.cmm 2037
334 #if !defined(solaris2_TARGET_OS)
335    (enabled) = foreign "C" __dtrace_isenabled$HaskellEvent$user__msg$v1() [];
336 #else
337-   // Solaris' DTrace does have problem processing PrimOps.o file
338-   // hence lets enable this manually for Solaris here and disable
339-   // code above which is the culprit of the dtrace processing issue
340+   // Solaris' DTrace does have problem processing PrimOps.o file. The
341+   // problem is caused by the
342+   // __dtrace_isenabled$HaskellEvent$user__msg$v1 call above. Anyway,
343+   // this call is just for testing if the user__msg probe is enabled
344+   // or not and is here for just performance optimization. Since
345+   // preparation for the probe is not that complex I disable usage of
346+   // this test above for Solaris and enable the probe usage manually
347+   // here. Please note that this does not mean that the probe will be
348+   // used during the runtime! You still need to enable it by consumption
349+   // in your dtrace script as you do with any other probe.
350    enabled = 1;
351 #endif
352    if (enabled != 0) {
353hunk ./rts/ghc.mk 165
354 # in DTrace script
355 rts_$1_DTRACE_OBJS = ""
356 else
357-# Canonic DTrace usage expects generation of binary from the DTrace
358+# DTrace on Solaris expects generation of binary from the DTrace
359 # probes definitions
360 rts_$1_DTRACE_OBJS = rts/dist/build/RtsProbes.o
361 endif
362}
363[make separate rule for generating rts/dist/build/RtsProbes.o on i386-solaris2 platform
364Karel Gardas <karel.gardas@centrum.cz>**20110126114102
365 Ignore-this: 7240a719d81e948fb7b63d9a491a0749
366] {
367hunk ./rts/ghc.mk 159
368 rts_$1_S_OBJS   = $$(patsubst rts/%.S,rts/dist/build/%.$$($1_osuf),$$(rts_S_SRCS))
369 rts_$1_CMM_OBJS = $$(patsubst rts/%.cmm,rts/dist/build/%.$$($1_osuf),$$(rts_CMM_SRCS)) $$(patsubst %.cmm,%.$$($1_osuf),$$(rts_AUTO_APPLY_CMM))
370 
371+rts_$1_OBJS = $$(rts_$1_C_OBJS) $$(rts_$1_S_OBJS) $$(rts_$1_CMM_OBJS)
372+
373 ifeq "$(HaveDtrace)" "YES"
374 ifeq "$(TargetOS_CPP)" "darwin"
375 # on Darwin we don't need to generate binary containing probes defined
376hunk ./rts/ghc.mk 169
377 else
378 # DTrace on Solaris expects generation of binary from the DTrace
379 # probes definitions
380-rts_$1_DTRACE_OBJS = rts/dist/build/RtsProbes.o
381+rts_$1_DTRACE_OBJS = rts/dist/build/RtsProbes.$$($1_osuf)
382+
383+rts/dist/build/RtsProbes.$$($1_osuf) : $$(rts_$1_OBJS)
384+       $(DTRACE) -G -C -Iincludes -DDTRACE -s rts/RtsProbes.d -o \
385+               $$@ $$(rts_$1_OBJS)
386+
387 endif
388 endif
389 
390hunk ./rts/ghc.mk 178
391-rts_$1_OBJS = $$(rts_$1_C_OBJS) $$(rts_$1_S_OBJS) $$(rts_$1_CMM_OBJS)
392-
393 rts_dist_$1_CC_OPTS += -DRtsWay=\"rts_$1\"
394 
395 # Making a shared library for the RTS.
396hunk ./rts/ghc.mk 188
397        "$$(rts_dist_HC)" -package-name rts -shared -dynamic -dynload deploy \
398          -no-auto-link-packages `cat rts/libs.depend` $$(rts_$1_OBJS) $$(ALL_RTS_DEF_LIBS) -o $$@
399 else
400-$$(rts_$1_LIB) : $$(rts_$1_OBJS) rts/libs.depend
401+$$(rts_$1_LIB) : $$(rts_$1_OBJS) $$(rts_$1_DTRACE_OBJS) rts/libs.depend
402        "$$(RM)" $$(RM_OPTS) $$@
403hunk ./rts/ghc.mk 190
404-ifeq "$(TargetOS_CPP)" "solaris2"
405-# Canonic DTrace usage as described in SolarisDynamicTracing Guide,
406-# Chapter 34: Statically Defined Tracing for User Applications
407-       $(DTRACE) -G -C -Iincludes -DDTRACE -s rts/RtsProbes.d -o \
408-               rts/dist/build/RtsProbes.o $$(rts_$1_OBJS)
409-endif
410        "$$(rts_dist_HC)" -package-name rts -shared -dynamic -dynload deploy \
411          -no-auto-link-packages `cat rts/libs.depend` $$(rts_$1_OBJS) \
412          $$(rts_$1_DTRACE_OBJS) -o $$@
413hunk ./rts/ghc.mk 199
414 endif
415 endif
416 else
417-$$(rts_$1_LIB) : $$(rts_$1_OBJS)
418+$$(rts_$1_LIB) : $$(rts_$1_OBJS) $$(rts_$1_DTRACE_OBJS)
419        "$$(RM)" $$(RM_OPTS) $$@
420hunk ./rts/ghc.mk 201
421-ifeq "$(TargetOS_CPP)" "solaris2"
422-# Canonic DTrace usage as described in SolarisDynamicTracing Guide,
423-# Chapter 34: Statically Defined Tracing for User Applications
424-       $(DTRACE) -G -C -Iincludes -DDTRACE -s rts/RtsProbes.d -o \
425-               rts/dist/build/RtsProbes.o  $$(rts_$1_OBJS)
426-endif
427-       echo $$(rts_$1_OBJS) | "$$(XARGS)" $$(XARGS_OPTS) "$$(AR)" \
428-               $$(AR_OPTS) $$(EXTRA_AR_ARGS) $$@ $$(rts_$1_DTRACE_OBJS)
429+       echo $$(rts_$1_OBJS) $$(rts_$1_DTRACE_OBJS) | "$$(XARGS)" $$(XARGS_OPTS) "$$(AR)" \
430+               $$(AR_OPTS) $$(EXTRA_AR_ARGS) $$@
431 endif
432 
433 endif
434}
435
436Context:
437
438[DPH options updated
439Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20110124043617
440 Ignore-this: 6b7d2949b75f9c923f279c1178d2d042
441 - '-Odph' is now '-O2 -fsimplifier-phases=3 -fsimplifier-iterations=20'
442 - The new option '-fdph-none' is the default; it indicates that no DPH
443   backend is selected and is the only valid option if the DPH libraries
444   are not installed.  If vectorisation is attempted with -fdph-none a
445   suitable error message is generated.
446 - Hence, '-fdph-par' (or '-fdph-seq') needs to be explicitly selected
447   when using vectorisation and when linking vectorised code.  (There
448   seems to be no elegant way to avoid that.)
449]
450[Add build system profiling to build system
451Ian Lynagh <igloo@earth.li>**20110123151408
452 Ignore-this: 75717810be32d60323980f9fd1baa853
453]
454[Fix ghci in stage3
455Ian Lynagh <igloo@earth.li>**20110123120232]
456[Remove use of non-existent $$(dir) variable in the rts ghc.mk
457Ian Lynagh <igloo@earth.li>**20110123021815]
458[Add some missing dependencies
459Ian Lynagh <igloo@earth.li>**20110123004208]
460[Tweak some deps to avoid multiple $(wildcard ...)s
461Ian Lynagh <igloo@earth.li>**20110123001045
462 Ignore-this: 38e53cb6f6b4f27c771ae0ed341f8958
463 Note that some things depending on the rts/includes header files now
464 depend on more files: They used to include depend on includes/*.h, but
465 now they also depend on header files in subdirectories. As far as I can
466 see this was a bug.
467]
468[Use := when assigning the result of $(wildcard ...)
469Ian Lynagh <igloo@earth.li>**20110122224532
470 Ignore-this: 67e2ca2ffbcffb5b7f55bd60c17fc6cf
471 Avoids repeated evaluations of things that need system calls etc
472]
473[Simplify the build system, and remove 2 phases
474Ian Lynagh <igloo@earth.li>**20110122190928
475 Ignore-this: 7b6184088befcbc44ea47b2f4abf85a9
476 From
477     http://hackage.haskell.org/trac/ghc/wiki/Building/Architecture/Idiom/PhaseOrdering
478 
479 Phase 0:
480     Includes: package-data.mk files for things built by the
481               bootstrapping compiler.
482     Builds:   the dependency files for hsc2hs and genprimopcode. We need
483               to do this now, as hsc2hs needs to be buildable in phase 1's
484               includes (so that we can make the hpc library's .hs source
485               files, which in turn is necessary for making its dependency
486               files), and genprimopcode needs to be buildable in phase 1's
487               includes (so that we can make the primop-*.hs-incl files,
488               which are sources for the stage1 compiler library, and thus
489               necessary for making its dependency files).
490 Phase 1:
491     Includes: dependency files for things built by the bootstrapping
492               compiler.
493     Builds:   package-data.mk files for everything else. Note that this
494               requires configuring the packages, which means telling cabal
495               which ghc to use, and thus the stage1 compiler gets built
496               during this phase.
497 Phase "":
498     Includes: dependency files for everything else.
499     Builds:   Everything else.
500]
501[Manually control more of the Cabal flags for the compiler and ghc packages
502Ian Lynagh <igloo@earth.li>**20110121230552
503 Ignore-this: 652b5f6327d246d7e2e47acbca614df2
504 For some reason the Windows HEAD builder has started thinking the ghci
505 flag should be on in stage 1. This should fix it, and generally make
506 things a little more resilient.
507]
508[Remove some hardcoded makefile settings
509Ian Lynagh <igloo@earth.li>**20110121230245
510 Ignore-this: 6b1b68aebdfbe02c15518985d2ea7559
511 Now that we used cabal to configure the ghc-bin package they are no
512 longer needed.
513]
514[tweak newArray# documentation again
515Simon Marlow <marlowsd@gmail.com>**20110119140633
516 Ignore-this: ceee33428dbad7e0f5eabfa0a2590466
517]
518[Fix OSTYPE test
519Ian Lynagh <igloo@earth.li>**20110120000308
520 Ignore-this: 8fa5d5c03297cb507a166bd85675145c
521]
522[Comments only
523simonpj@microsoft.com**20110119222247
524 Ignore-this: ea531428e9093ecedb895735ed537791
525]
526[Add OSTYPE build-system variable, and use it
527simonpj@microsoft.com**20110113155023
528 Ignore-this: c4a75f0bb27a680924e57ca7075ec116
529 
530 The use is in install.mk.in, where we need to know when
531 we're on Cygwin.
532 
533 This fixes the build on my Windows box, where I have
534 both Msys and Cygwin.
535]
536[Remove an extraneous comma that stopped ghc-cabal from building
537Ian Lynagh <igloo@earth.li>**20110119222359]
538[Move some make variables around
539Ian Lynagh <igloo@earth.li>**20110119221545
540 Ignore-this: c57c93f39d72c3baef7c5f466861dd5b
541]
542[Remove a debugging 'info'
543Ian Lynagh <igloo@earth.li>**20110119203305
544 Ignore-this: ea912ba205eaae1d2bcf0cce7c13628d
545]
546[Move the PACKAGE_MAGIC evaluation inside package-data.mk
547Ian Lynagh <igloo@earth.li>**20110119203229
548 Ignore-this: 497c4e83ae75089c24d6c794c4e2891f
549]
550[Fix libraries/index.html's haddock dependency on Windows
551Ian Lynagh <igloo@earth.li>**20110119172310]
552[Add configure phases for the stage 3 compiler
553Ian Lynagh <igloo@earth.li>**20110119130629]
554[Include kfreebsdgnu in the list of Target Platforms.
555Marco Silva <marcot@marcot.eti.br>**20110118222352
556 Ignore-this: 759482baf33903b98cd837636a3f5328
557]
558[Fix documentation bug: newArray# accepts word count, not byte count.
559Edward Z. Yang <ezyang@mit.edu>**20110118221834
560 Ignore-this: 8daab134bf72a740b89d273fb4e983d5
561]
562[Update the location of libffi.dll.a
563Ian Lynagh <igloo@earth.li>**20110118164225
564 As far as I can see this has been wrong for some time, but only bit
565 recently.
566]
567[Update the generics docs; pointed out by Christian Maeder
568Ian Lynagh <igloo@earth.li>**20110117214632]
569[ghc-cabal now adds the language flag being used
570Ian Lynagh <igloo@earth.li>**20110117184833
571 Ignore-this: 8198892ef7f8009561d3181425cde942
572 This means we get -XHaskell98 added to the list of flags, just like we
573 would if we were building with Cabal.
574]
575[Reinstate the OS X flags in the LDFLAGS etc variables
576Ian Lynagh <igloo@earth.li>**20110117200540
577 Ignore-this: 9261baa1843100f65b02fb91c1a0d225
578 I expect this will fix:
579 http://www.haskell.org/pipermail/cvs-ghc/2011-January/059098.html
580]
581[Add NondecreasingIndentation extension to ghc-bin
582Ian Lynagh <igloo@earth.li>**20110117200427
583 Ignore-this: b6b029ee6dfbda482c91d17e835f9000
584]
585[Change an "if ... else return ()" into a "when"
586Ian Lynagh <igloo@earth.li>**20110117191714
587 Ignore-this: 7de58b728e4fce7f86d7d24a3089e6c7
588]
589[Add NondecreasingIndentation to the list of extensions in ghc-pkg
590Ian Lynagh <igloo@earth.li>**20110117190610
591 Ignore-this: 20ce8144b7b64d1f67de2f6983717da3
592]
593[Add NondecreasingIndentation to the list of extensions in the ghc package
594Ian Lynagh <igloo@earth.li>**20110117190404
595 Ignore-this: 516b45e93c1b3bbb66da5414d9aabef1
596]
597[Fix deps on the ghc package
598Ian Lynagh <igloo@earth.li>**20110117173010
599 The standard libraries/$depname scheme doesn't apply, so we need to
600 handle it specially.
601]
602[Tidy up gmp cleaning
603Ian Lynagh <igloo@earth.li>**20110117121155
604 Ignore-this: 61d9a57d14b70732f62d6b2c8d6d197a
605]
606[Remove redundant libraries/cabal-bin.hs
607Ian Lynagh <igloo@earth.li>**20110116194919
608 Ignore-this: 13b4a8d26fa06ec952351603c3bb40ee
609]
610[Turn off dtrace unless you override USE_DTRACE
611Ian Lynagh <igloo@earth.li>**20110116180306
612 Ignore-this: beafc2002091fa7f0e66666004c870a5
613 There are problems with dtrace on 64bit 10.5. For now at least, we
614 just turn dtrace off unless you override USE_DTRACE
615]
616[Simplify a bit of makefile
617Ian Lynagh <igloo@earth.li>**20110116175218
618 Ignore-this: 18f02e40e36eca2e2cab79c152c72541
619]
620[Tweak Windows phase ordering
621Ian Lynagh <igloo@earth.li>**20110116173459
622 Ignore-this: bb8a70741be4574edc149349acd0f4be
623]
624[Handle dependencies of programs on libraries correctly
625Ian Lynagh <igloo@earth.li>**20110116155627]
626[It's not clear if LDFLAGS flags will be given to gcc or ld,
627Ian Lynagh <igloo@earth.li>**20110116151230
628 Ignore-this: a6a2d0b1f550c922c32f6f252e4e3285
629 and they accept different flags, so for now do nothing
630]
631[Fix cross-package dependency generation on Windows
632Ian Lynagh <igloo@earth.li>**20110116150901
633 Ignore-this: f78baaa7074ca36a6a4ff8a7e6f2e35
634]
635[Add some Windows-only CONFIGURE_PHASEs
636Ian Lynagh <igloo@earth.li>**20110116150826
637 Ignore-this: abf1bf498609107eb206b22d483613de
638]
639[Simplify, and future-proof, a dependency in the build system
640Ian Lynagh <igloo@earth.li>**20110116020035
641 Ignore-this: d089133430828d041b3601b1e9c8b22a
642]
643[Remove an unnecessary phase, and some unnecessary deps
644Ian Lynagh <igloo@earth.li>**20110116015943
645 Ignore-this: e649b072d006db5db97aee26d3753f65
646 now that cross-package deps are tracked correctly.
647]
648[We can now pass -include-pkg-deps to the bootstrapping compiler
649Ian Lynagh <igloo@earth.li>**20110116015714
650 Ignore-this: bdfed941124bb93111f117800be5f2d8
651]
652[Remove some flags that are redundant now GHC gets configured by Cabal
653Ian Lynagh <igloo@earth.li>**20110116003154
654 Ignore-this: 43a023c5103b72c91d53cf3bed7a4c50
655]
656[Change some HC_OPTS var handling
657Ian Lynagh <igloo@earth.li>**20110116003104
658 Ignore-this: 629f4a3d37028f71a477c22ed4e8591e
659 In particular, this means ghc gets built with -rtsopt, -threaded, etc again.
660]
661[Remove some unnecessary workarounds
662Ian Lynagh <igloo@earth.li>**20110116002803
663 Ignore-this: 5ecc62f765522c08c44aa0814c5b840e
664 We can now rely on cross-package deps working properly, as we require
665 GHC 6.12.
666]
667[Tidy up a bit
668Ian Lynagh <igloo@earth.li>**20110116001121
669 Ignore-this: a2baabc6da0cf2877507b7833d5b0fc7
670]
671[Build system improvements
672Ian Lynagh <igloo@earth.li>**20110115231927
673 Ignore-this: 92ea6514addc8aa8734d7e0eb61b50cb
674 We no longer use dummy-ghc; instead we don't configure most packages
675 until the stage1 compiler is available.
676   
677 We also now use Cabal for building the ghc-bin package.
678 
679 There are a couple more sanity checks too.
680]
681[Whitespace tweak
682Ian Lynagh <igloo@earth.li>**20110115214149
683 Ignore-this: 3e564566f311be473e94f6af609bdeaa
684]
685[Fix libffi build rules
686Ian Lynagh <igloo@earth.li>**20110115202104
687 Ignore-this: 57e1763d2079301b0165be7deba29c85
688 Fixes a rare race when both libHSffi.a and libHSffi_p.a were being built
689 at the same time:
690 
691 "cp" libffi/dist-install/build/libffi.a libffi/dist-install/build/libHSffi.a
692 "cp" libffi/dist-install/build/libffi.a libffi/dist-install/build/libHSffi.a
693 "cp" libffi/dist-install/build/libffi.so libffi/dist-install/build/libHSffi-ghc7.1.20110115.so
694 cp: cannot create regular file `libffi/dist-install/build/libHSffi.a': File exists
695]
696[Fix Trac #4874: specialisation of INLINABLE things
697simonpj@microsoft.com**20110114163227
698 Ignore-this: b90543117ebddaf3bbeeaf0af0c18699
699 
700 Johan discovered that when INLINABLE things are specialised
701 bad things can happen. This patch implements a hack -- but
702 it's a simple hack and it solves the problem.
703 
704 See Note [Inline specialisations].
705 
706 The hack part is that really INLINABLE should not cause *any* loss
707 optimisation, and it does; see Note [Don't w/w INLINABLE things] in
708 WorkWrap.
709]
710[Comments only
711simonpj@microsoft.com**20110114162959
712 Ignore-this: f76d4d8f527c3fcd2598ec8cc5fd3049
713]
714[Fix a buglet in postInlineUnconditionally
715simonpj@microsoft.com**20110114162927
716 Ignore-this: 7a7b8610ef863907843d4ae36a8a1a3c
717 
718 Under obscure circumstances (actually only shown up when fixing something
719 else) it was possible for a variable binding to be discarded although
720 it was still used.  See Note [Top level and postInlineUnconditionally]
721]
722[cope with empty libraries/stamp directory (in git repo)
723Simon Marlow <marlowsd@gmail.com>**20110114142406
724 Ignore-this: 6e95c44368d784f86a0c1c1d1e24d810
725]
726[add .gitignore
727Simon Marlow <marlowsd@gmail.com>**20110114142353
728 Ignore-this: 23d7cabd2b04eedfe4c33ad94a120474
729]
730[Fix longstanding bug in C-- inlining for functions calls.
731Edward Z. Yang <ezyang@mit.edu>**20110113130654
732 Ignore-this: 79001003b1f3cc5005207ccfed980c21
733]
734[fix for remote repos without -r
735Simon Marlow <marlowsd@gmail.com>**20110113131147
736 Ignore-this: 3ddd8a4c616cad01a2dbdb500fb54279
737]
738[add a version of packages that stores all the repos in git
739Simon Marlow <marlowsd@gmail.com>**20110113111733
740 Ignore-this: fcca2eb2e753ee20bb5abce7f30f5205
741]
742[add the -r flag from darcs-all
743Simon Marlow <marlowsd@gmail.com>**20110113111654
744 Ignore-this: ada88377bd95ebb9c668dd48954f321e
745]
746[Make Template Haskell classInstances function return [ClassInstance]
747simonpj@microsoft.com**20110113111421
748 Ignore-this: d14381f0a94170965414dd8724188356
749 
750 This is a recently-introduce function, which was returning
751 a [Name], being the names of the dfuns.  But what you really
752 want (obviously!) is the ClassInstances, and we have a TH type
753 for that.
754 
755 This is an API change, so don't merge into GHC 7.0.  But it's
756 a new part of TH which is still settling down.
757 
758 Fixes Trac #4863.
759]
760[Improve the finder's error messages
761simonpj@microsoft.com**20110113111233
762 Ignore-this: ec4819b0a44af9fd03dc0a8b8e13699d
763 
764 I'd done all the work to add fuzzy-match suggestions, but they
765 weren't really being used!  Here's what you get now
766 
767    module Foo where
768     import Data.Lst
769 
770 Foo.hs:3:1:
771     Failed to load interface for `Data.Lst'
772     Perhaps you meant
773       Data.List (from base)
774       Data.List (needs flag -package haskell2010-1.0.0.0)
775       Data.Int (needs flag -package haskell2010-1.0.0.0)
776     Use -v to see a list of the files searched for.
777]
778[White space only
779simonpj@microsoft.com**20110113093931
780 Ignore-this: 4e46acca5241615a3283996052a634a
781]
782[Produce an error message, not a crash, for HsOpApp with non-var operator
783simonpj@microsoft.com**20110112170719
784 Ignore-this: df0f6f2e3318f9c33a714609019b0262
785 
786 Fixes Trac #4877.
787]
788[update to work with current packages file format
789Simon Marlow <marlowsd@gmail.com>**20110112160224
790 Ignore-this: da73498734aadbfbf0a31389a9dc44d
791]
792[In configure, test that GHC generates code for the correct platform (#4819)
793Simon Marlow <marlowsd@gmail.com>**20110107163541
794 Ignore-this: 29541d3896f9c9bcf791510edae70254
795 Patch supplied by the bug reporter, tidied up by me.
796 
797 $ ./configure --with-ghc=$HOME/fp/bin/i386-unknown-linux/ghc --build=x86_64-unknown-linux
798 checking for gfind... no
799 checking for find... /usr/bin/find
800 checking for sort... /usr/bin/sort
801 checking for GHC version date... inferred 7.1.20110107
802 checking version of ghc... 7.0.1
803 checking build system type... x86_64-unknown-linux-gnu
804 checking host system type... x86_64-unknown-linux-gnu
805 checking target system type... x86_64-unknown-linux-gnu
806 Host platform inferred as: i386-unknown-linux
807 Target platform inferred as: i386-unknown-linux
808 This GHC (/home/simonmar/fp/bin/i386-unknown-linux/ghc) does not generate code for the build platform
809    GHC target platform    : i386-unknown-linux
810    Desired build platform : x86_64-unknown-linux
811]
812[Major refactoring of the type inference engine
813simonpj@microsoft.com**20110112145604
814 Ignore-this: 6a7fc90c9b798e89505606726cc8090e
815 
816 This patch embodies many, many changes to the contraint solver, which
817 make it simpler, more robust, and more beautiful.  But it has taken
818 me ages to get right. The forcing issue was some obscure programs
819 involving recursive dictionaries, but these eventually led to a
820 massive refactoring sweep.
821 
822 Main changes are:
823  * No more "frozen errors" in the monad.  Instead "insoluble
824    constraints" are now part of the WantedConstraints type.
825 
826  * The WantedConstraint type is a product of bags, instead of (as
827    before) a bag of sums.  This eliminates a good deal of tagging and
828    untagging.
829 
830  * This same WantedConstraints data type is used
831      - As the way that constraints are gathered
832      - As a field of an implication constraint
833      - As both argument and result of solveWanted
834      - As the argument to reportUnsolved
835 
836  * We do not generate any evidence for Derived constraints. They are
837    purely there to allow "impovement" by unifying unification
838    variables.
839 
840  * In consequence, nothing is ever *rewritten* by a Derived
841    constraint.  This removes, by construction, all the horrible
842    potential recursive-dictionary loops that were making us tear our
843    hair out.  No more isGoodRecEv search either. Hurrah!
844 
845  * We add the superclass Derived constraints during canonicalisation,
846    after checking for duplicates.  So fewer superclass constraints
847    are generated than before.
848 
849  * Skolem tc-tyvars no longer carry SkolemInfo.  Instead, the
850    SkolemInfo lives in the GivenLoc of the Implication, where it
851    can be tidied, zonked, and substituted nicely.  This alone is
852    a major improvement.
853 
854  * Tidying is improved, so that we tend to get t1, t2, t3, rather
855    than t1, t11, t111, etc
856 
857    Moreover, unification variables are always printed with a digit
858    (thus a0, a1, etc), so that plain 'a' is available for a skolem
859    arising from a type signature etc. In this way,
860      (a) We quietly say which variables are unification variables,
861          for those who know and care
862      (b) Types tend to get printed as the user expects.  If he writes
863              f :: a -> a
864              f = ...blah...
865          then types involving 'a' get printed with 'a', rather than
866          some tidied variant.
867 
868  * There are significant improvements in error messages, notably
869    in the "Cannot deduce X from Y" messages.
870]
871[Fix installation on cygwin
872Ian Lynagh <igloo@earth.li>**20110111194838
873 Ignore-this: fe923d0619da3bd3a34968106c92fdab
874]
875[Do dependency analysis when kind-checking type declarations
876simonpj@microsoft.com**20110110110351
877 Ignore-this: 17a8dee32694d3e1835cf7bb02d3abb5
878 
879 This patch fixes Trac #4875.  The main point is to do dependency
880 analysis on type and class declarations, and kind-check them in
881 dependency order, so as to improve error messages.
882 
883 This patch means that a few programs that would typecheck before won't
884 typecheck any more; but before we were (naughtily) going beyond
885 Haskell 98 without any language-extension flags, and Trac #4875
886 convinces me that doing so is a Bad Idea.
887 
888 Here's an example that won't typecheck any more
889        data T a b = MkT (a b)
890        type F k = T k Maybe
891 
892 If you look at T on its own you'd default 'a' to kind *->*;
893 and then kind-checking would fail on F.
894 
895 But GHC currently accepts this program beause it looks at
896 the *occurrences* of T.
897]
898[Move imports around (no change in behaviour)
899simonpj@microsoft.com**20110110105647
900 Ignore-this: d618cabbc52be7d7968de1e0bdd44082
901]
902[Make fuzzy matching a little less eager for short identifiers
903simonpj@microsoft.com**20110107102855
904 Ignore-this: a753643e88433d74b44a480cc0f4170c
905 
906 For single-character identifiers we now don't make any suggestions
907 See comments in Util.fuzzyLookup
908]
909[Fix Trac #4870: get the inlining for an imported INLINABLE Id
910simonpj@microsoft.com**20110105002712
911 Ignore-this: 60c0192eb48590c2e6868d15ba8f84ce
912 
913 We need the unfolding even for a *recursive* function (indeed
914 that's the point) and I was using the wrong function to get it
915 (idUnfolding rather than realIdUnfolding).
916]
917[Rejig the includes/ installation rules
918Ian Lynagh <igloo@earth.li>**20110109181158
919 They're a little nicer now, and a regression in the cygwin build is
920 fixed (the $i in the destination wasn't surviving being passed through
921 cygpath).
922]
923[Make DESTDIR an absolute path when installing; fixes #4883
924Ian Lynagh <igloo@earth.li>**20110108171635]
925[Add utils/ghc-cabal/Makefile
926Ian Lynagh <igloo@earth.li>**20110108144049]
927[Remove redundant import
928Ian Lynagh <igloo@earth.li>**20110108130047
929 Ignore-this: 1c7fdec77b48319c845c9593b5fb94af
930]
931[Improve error message of :set in ghci (ticket #4190).
932Michal Terepeta <michal.terepeta@gmail.com>**20101130211505
933 Ignore-this: ccc8a0816a900ba8c4a966285a465b23
934]
935[Improve error message when importing data constructors (ticket #4058).
936Michal Terepeta <michal.terepeta@gmail.com>**20101127211338
937 Ignore-this: 3289a08f0391dd90dfef2e0403a04ccd
938]
939[catch SIGTSTP and save/restore terminal settings (#4460)
940Simon Marlow <marlowsd@gmail.com>**20110107124042
941 Ignore-this: 38f7f27bf75178899f466404c048241d
942 As far as I can tell, it is the responsibility of the program to save
943 and restore its own terminal settings across a suspend/foreground, the
944 shell doesn't do it (which seems odd).  So I've added a signal handler
945 for SIGTSTP to the RTS which will save and restore the terminal
946 settings iff we modified them with hSetBuffering or hSetEcho (we
947 already restore them at exit time in these cases).
948]
949[comment updates
950Simon Marlow <marlowsd@gmail.com>**20110107094236
951 Ignore-this: c2b30b0c98645e2847a2749c7fdc167f
952]
953[On Cygwin, use a Cygwin-style path for /bin/install's destination
954Ian Lynagh <igloo@earth.li>**20110106223030
955 
956 cygwin's /bin/install doesn't set file modes correctly if the
957 destination path is a C: style path:
958 
959 $ /bin/install -c -m 644 foo /cygdrive/c/cygwin/home/ian/foo2
960 $ /bin/install -c -m 644 foo c:/cygwin/home/ian/foo3
961 $ ls -l foo*
962 -rw-r--r-- 1 ian None 0 2011-01-06 18:28 foo
963 -rw-r--r-- 1 ian None 0 2011-01-06 18:29 foo2
964 -rwxrwxrwx 1 ian None 0 2011-01-06 18:29 foo3
965 
966 This causes problems for bindisttest/checkBinaries.sh which then
967 thinks that e.g. the userguide HTML files are binaries.
968 
969 We therefore use a /cygdrive path if we are on cygwin
970]
971[Fix mkUserGuidePart program name on Windows
972Ian Lynagh <igloo@earth.li>**20110106143707]
973[add comment to remind people to update driver/gcc/gcc.c
974Simon Marlow <marlowsd@gmail.com>**20110106152402
975 Ignore-this: c07d7ac11eb9221ef821f78aab1807cb
976]
977[use Win32 CreateProcess() rather than mingw spawnv() (#4531)
978Simon Marlow <marlowsd@gmail.com>**20110106133834
979 Ignore-this: 4c0947853549dad034622c044391af6c
980]
981[update paths now that we upgraded gcc to 4.5.0
982Simon Marlow <marlowsd@gmail.com>**20110106133729
983 Ignore-this: f8f9bcad984fdd472e0ae958b66bea9d
984]
985[fix markup
986Simon Marlow <marlowsd@gmail.com>**20110106093152
987 Ignore-this: 555b6e39ae6b5a177b03c5edffc169ab
988]
989[fix up multi-line GHCi patch (#4316)
990Simon Marlow <marlowsd@gmail.com>**20110105154548
991 Ignore-this: 53d5d489bd2a792c01f2cc56a11f3ce6
992]
993[multiline commands in GHCi #4316
994Vivian McPhail <haskell.vivian.mcphail@gmail.com>**20101105051308
995 This patch adds support for multiline commands in GHCi.
996 
997 The first line of input is lexed.  If there is an active
998 layout context once the lexer reaches the end of file, the
999 user is prompted for more input.
1000 
1001 Multiline input is exited by an empty line and can be escaped
1002 with a user interrupt.
1003 
1004 Multiline mode is toggled with `:set +m`
1005]
1006[Replace a #if with a Haskell conditional
1007Ian Lynagh <igloo@earth.li>**20110105183011
1008 Ignore-this: f08f3a4356586efab2725ad8704b2eba
1009]
1010[Whitespace only in X86.Ppr
1011Ian Lynagh <igloo@earth.li>**20110105171124]
1012[Fix error compiling AsmCodeGen.lhs for PPC Mac (unused makeFar addr)
1013naur@post11.tele.dk**20101219213555
1014 Ignore-this: ab25d5f2e2ebe163547d5babaf4b1dbf
1015]
1016[Define cTargetArch and start to use it rather than ifdefs
1017Ian Lynagh <igloo@earth.li>**20110104220013
1018 Using Haskell conditionals means the compiler sees all the code, so
1019 there should be less rot of code specific to uncommon arches. Code
1020 for other platforms should still be optimised away, although if we want
1021 to support targetting other arches then we'll need to compile it
1022 for-real anyway.
1023]
1024[Fix error compiling AsmCodeGen.lhs for PPC Mac (rtsPackageId)
1025naur@post11.tele.dk**20101219212530
1026 Ignore-this: 946f6d3e0d3c3ddf2dc07b85e1f82d85
1027]
1028[Rename the c*Platform variables to c*PlatformString
1029Ian Lynagh <igloo@earth.li>**20110104210250]
1030[Fix #4829 (build does not respect --with-gcc option)
1031gwright@antiope.com**20101221133233
1032 Ignore-this: 37918feb82f911c2beb75915b6e8b97b
1033 
1034 This patch fixes what seems to be the last problem with the --with-gcc
1035 option.  On OS X, we need to pass the path to gcc to dtrace as the
1036 preprocessor.  (Internally, dtrace on OS X sets the default preprocessor
1037 to /usr/bin/gcc.)  ATM, dtrace is only supported on OS X, so we don't
1038 need any conditionalization.  If dtrace is ported to other platforms,
1039 we might need to change this. However, usage on other platforms will
1040 probably be similar to OS X, since many of Apple's changes are to
1041 use the gnu toolchain instead of the Sun toolchain.
1042   
1043]
1044[Drop a seven years old workaround for happy
1045Matthias Kilian <kili@outback.escape.de>**20101231192343
1046 Ignore-this: a9348c91292c113bd967464fbe859f1f
1047]
1048[Add gcc and ld flags to --info output
1049Ian Lynagh <igloo@earth.li>**20101220173520]
1050[Fix Trac #4525: report type errors in terms of the immediate type synonym
1051simonpj@microsoft.com**20101224082520
1052 Ignore-this: a3bd076bfe0e1c6f575b106f77f326c6
1053 
1054 This small change means that if you have
1055      type Age = Int
1056 and you try to unify Age and Bool, you'll get a complaint about
1057 not matching Age and Bool, rather than Int and Bool.  See the notes
1058 with Trac #4525
1059]
1060[Comments only
1061simonpj@microsoft.com**20101224082310
1062 Ignore-this: 1f69fa3244663b653607093efcdf7b0
1063]
1064[Implement fuzzy matching for the Finder
1065simonpj@microsoft.com**20101222175400
1066 Ignore-this: 4dfbbc07bcb59c5f4cee9a902c89d63e
1067 
1068 ..so that you get a more helpful message when
1069 you mis-spell a module name in an 'import'.
1070 
1071 Validates, but not fully tested.
1072 
1073 Based on Max's patch in Trac #2442, but heavily refactored.
1074]
1075[Implement fuzzy matching for the renamer
1076simonpj@microsoft.com**20101222175306
1077 Ignore-this: 66478736249de793a61612f184d484b0
1078 
1079 ...so that you get helpful suggestions when you mis-spell a name
1080 Based on Max's patch in Trac #2442, but heavily refactored.
1081]
1082[Add fuzzyLookup, a variant of fuzzyMatch
1083simonpj@microsoft.com**20101222175124
1084 Ignore-this: f0eafaf275b9edffee176f2fb4effe2f
1085 
1086 Plus, I changed quite a bit of layout to make the lines shorter.
1087]
1088[White space only
1089simonpj@microsoft.com**20101222175001
1090 Ignore-this: ddabada2042f4529e83d1c1ecb052306
1091]
1092[Layout and white space only
1093simonpj@microsoft.com**20101222174950
1094 Ignore-this: bf4e4fd9d39714d0461ab799d6b8ed91
1095]
1096[Tidy up rebindable syntax for MDo
1097simonpj@microsoft.com**20101222132210
1098 Ignore-this: b40ae8709e5a39d75f2b2813169af215
1099 
1100 For a long time an 'mdo' expression has had a SyntaxTable
1101 attached to it.  However, we're busy deprecating SyntaxTables
1102 in favour of rebindable syntax attached to individual Stmts,
1103 and MDoExpr was totally inconsistent with DoExpr in this
1104 regard.
1105 
1106 This patch tidies it all up.  Now there's no SyntaxTable on
1107 MDoExpr, and 'modo' is generally handled much more like 'do'.
1108 
1109 There is resulting small change in behaviour: now MonadFix is
1110 required only if you actually *use* recursion in mdo. This
1111 seems consistent with the implicit dependency analysis that
1112 is done for mdo.
1113 
1114 Still to do:
1115   * Deal with #4148 (this patch is on the way)
1116   * Get rid of the last remaining SyntaxTable on HsCmdTop
1117]
1118[Make the occurrence analyser track preInlineUnconditionally
1119simonpj@microsoft.com**20101222131156
1120 Ignore-this: 82edb06bcca6106327c2cce9d78c4e61
1121 
1122 This fixes a somewhat obscure situation in which an
1123 over-optimistic use of "occurs once" led to an infinite
1124 sequence of simplifier iterations.  Se Note [Cascading inlines]
1125 for the details.
1126 
1127 This showed up when compiling rather large DPH programs, which
1128 run lots of iterations of the simplifier, which in turn made
1129 compilation take much longer than necessary.
1130]
1131[Make mkDFunUnfolding more robust
1132simonpj@microsoft.com**20101222130854
1133 Ignore-this: 10bb4168a7080c843f6613043354151b
1134 
1135 It now uses tcSplitDFunTy, which is designed for the purpose and
1136 allows arbitrary argument types to the dfun, rather than
1137 tcSplitSigmaTy.  This generality is used in DPH, which has
1138 internally-generated dfuns with impliciation-typed arguments.
1139 
1140 To do this I had to make tcSplitDFunTy return the number of
1141 arguments, so there are some minor knock-on effects in other
1142 modules.
1143]
1144[Count allocations more accurately
1145Simon Marlow <marlowsd@gmail.com>**20101221152956
1146 Ignore-this: 33a4ed3a77bf35f232aa5c9078e8e380
1147 The allocation stats (+RTS -s etc.) used to count the slop at the end
1148 of each nursery block (except the last) as allocated space, now we
1149 count the allocated words accurately.  This should make allocation
1150 figures more predictable, too.
1151 
1152 This has the side effect of reducing the apparent allocations by a
1153 small amount (~1%), so remember to take this into account when looking
1154 at nofib results.
1155]
1156[Add a simple arity analyser
1157simonpj@microsoft.com**20101221165800
1158 Ignore-this: d5f3a9f56404d61bb7f374c875b42c49
1159 
1160 I've wanted to do this for ages, but never gotten around to
1161 it.  The main notes are in Note [Arity analysis] in SimplUtils.
1162 
1163 The motivating example for arity analysis is this:
1164 
1165   f = \x. let g = f (x+1)
1166           in \y. ...g...
1167 
1168 What arity does f have?  Really it should have arity 2, but a naive
1169 look at the RHS won't see that.  You need a fixpoint analysis which
1170 says it has arity "infinity" the first time round.
1171 
1172 This makes things more robust to the way in which you write code.  For
1173 example, see Trac #4474 which is fixed by this change.
1174 
1175 Not a huge difference, but worth while:
1176 
1177         Program           Size    Allocs   Runtime   Elapsed
1178 --------------------------------------------------------------------------------
1179             Min          -0.4%     -2.2%    -10.0%    -10.0%
1180             Max          +2.7%     +0.3%     +7.1%     +6.9%
1181  Geometric Mean          -0.3%     -0.2%     -2.1%     -2.2%
1182 
1183 I don't really believe the runtime numbers, because the machine was
1184 busy, but the bottom line is that not much changes, and what does
1185 change reliably (allocation and size) is in the right direction.
1186]
1187[Miscellaneous tidying up and refactoring
1188simonpj@microsoft.com**20101221161931
1189 Ignore-this: 7706d3065e6fc1defafe1cb8975b9969
1190]
1191[Comments only
1192simonpj@microsoft.com**20101221161918
1193 Ignore-this: 3e269a62da5cbec72d3e4b8328689628
1194]
1195[Single-method classes are implemented with a newtype
1196simonpj@microsoft.com**20101221161911
1197 Ignore-this: 4ca00f0b367fbeb8146146bc53116eb7
1198 
1199 This patch changes things so that such classes rely on the coercion
1200 mechanism for inlining (since the constructor is really just a cast)
1201 rather than on the dfun mechanism, therby removing some needless
1202 runtime indirections.
1203]
1204[For single-method classes use newtypes
1205simonpj@microsoft.com**20101101080736
1206 Ignore-this: d3851f92eb2385501411da57066b775e
1207 
1208 This clears up an awkward hack for exprIsConApp_maybe, and
1209 works better too.  See Note [Single-method classes] in
1210 TcInstDcls.
1211]
1212[boundTaskExiting: don't set task->stopped unless this is the last call (#4850)
1213Simon Marlow <marlowsd@gmail.com>**20101221115807
1214 Ignore-this: 7e1b990aa08b3ea9cdaa9385d8e41e48
1215 The bug in this case was that we had a worker thread making a foreign
1216 call which invoked a callback (in this case it was performGC, I
1217 think).  When the callback ended, boundTaskExiting() was setting
1218 task->stopped, but the Task is now per-OS-thread, so it is shared by
1219 the worker that made the original foreign call.  When the foreign call
1220 returned, because task->stopped was set, the worker was not placed on
1221 the queue of spare workers.  Somehow the worker woke up again, and
1222 found the spare_workers queue empty, which lead to a crash.
1223 
1224 Two bugs here: task->stopped should not have been set by
1225 boundTaskExiting (this broke when I split the Task and InCall structs,
1226 in 6.12.2), and releaseCapabilityAndQueueWorker() should not be
1227 testing task->stopped anyway, because it should only ever be called
1228 when task->stopped is false (this is now an assertion).
1229]
1230[releaseCapabilityAndQueueWorker: task->stopped should be false (#4850)
1231Simon Marlow <marlowsd@gmail.com>**20101221114911
1232 Ignore-this: b9c430a4bc9d2e0c7f4140d6d6971eae
1233]
1234[Fix Windows build
1235Simon Marlow <marlowsd@gmail.com>**20101221102101
1236 Ignore-this: f4773e06d030a335c9ac721af193b8d2
1237]
1238[raiseExceptionHelper: update tso->stackobj->sp before calling threadStackOverflow (#4845)
1239Simon Marlow <marlowsd@gmail.com>**20101221101411
1240 Ignore-this: 48495131fcc8c548882a470c2509f9f5
1241]
1242[add 'make re2' for rebuilding stage2 (similarly re1 and re3)
1243Simon Marlow <marlowsd@gmail.com>**20101221100254
1244 Ignore-this: 5c0afe3810b66a5b6e53a3a0fe933945
1245]
1246[fix warning
1247Simon Marlow <marlowsd@gmail.com>**20101216160415
1248 Ignore-this: 54a0eedfa5b7fc15c31dffffb1b10aad
1249]
1250[Small improvement to CorePrep
1251simonpj@microsoft.com**20101220123715
1252 Ignore-this: d0490225ed1895a1a5b97d786ed44260
1253 
1254 This change avoids unnecessary bindings. Example
1255 
1256      foo (let fn = \x.blah in
1257           in fn)
1258 
1259 We were generating something stupid like
1260 
1261     let fn = \x.blah in
1262     let fn' = \eta. fn eta
1263     in foo fn
1264 
1265 Now we don't.  The change is quite small.
1266 
1267 Thanks to Ben for showing me an example of this happening.
1268]
1269[Fix warnings
1270Ian Lynagh <igloo@earth.li>**20101219202711
1271 Ignore-this: 898015b086f684de5371bf97a23b9e2e
1272]
1273[Small refactoring
1274Ian Lynagh <igloo@earth.li>**20101219194032]
1275[Drop GhcWithLlvmCodeGen configuration bits
1276Matthias Kilian <kili@outback.escape.de>**20101219180239
1277 Ignore-this: 815ed46be7650792f85807c232edfcc
1278 The LLVM code generator is always built unconditionally, so both the
1279 configuration variable in mk/config.mk.in as well as the string in
1280 compilerInfo can be removed.
1281]
1282[Pass --hoogle to haddock; fixes trac #4521
1283Ian Lynagh <igloo@earth.li>**20101219125243]
1284[vectoriser: don't always pass superclass dictionaries to PA dfuns
1285Roman Leshchinskiy <rl@cse.unsw.edu.au>**20101218234838
1286 Ignore-this: 77c71976db8fc63aeb83f4abdba994d8
1287 
1288 This is just a guess at how this should work.
1289]
1290[vectoriser: delete dead code
1291Roman Leshchinskiy <rl@cse.unsw.edu.au>**20101218125350
1292 Ignore-this: 437eea71ad15ad5dc7902e596597c577
1293]
1294[vectoriser: adapt to new superclass story part I (dictionary construction)
1295Roman Leshchinskiy <rl@cse.unsw.edu.au>**20101218114953
1296 Ignore-this: 29c9aa46a1622beaae1dcefc4c482a30
1297]
1298[Replace uses of the old try function with the new one
1299Ian Lynagh <igloo@earth.li>**20101218230827
1300 Ignore-this: 5dd6c1a4142405aa1aab3fc4ec07eea6
1301]
1302[Replace uses of the old catch function with the new one
1303Ian Lynagh <igloo@earth.li>**20101218213350]
1304[Create ~/.ghc/ if it doesn't already exist; fixes trac #4522
1305Ian Lynagh <igloo@earth.li>**20101218184925]
1306[Document GADTSyntax extension
1307Ian Lynagh <igloo@earth.li>**20101218150121]
1308[Implement GADTSyntax extension
1309Ian Lynagh <igloo@earth.li>**20101218144550]
1310[Whitespace-only in rts/Linker.c
1311Ian Lynagh <igloo@earth.li>**20101217234124]
1312[Add some casts to fix warnings; patch from Greg Wright
1313Ian Lynagh <igloo@earth.li>**20101217223811]
1314[Put an up-to-date Makefile in docs/Makefile
1315Ian Lynagh <igloo@earth.li>**20101217223707
1316 It doesn't do anything useful yet, but it works with the new build system
1317]
1318[do not compile part of shared lib RTS with -fno-PIC on Solaris
1319Karel Gardas <karel.gardas@centrum.cz>**20101217085133
1320 Ignore-this: 8c8dbb45cac0578a58a3557f1e03c66
1321]
1322[provide shared libraries support on i386-unknown-solaris2 platform
1323Karel Gardas <karel.gardas@centrum.cz>**20101217084617
1324 Ignore-this: b6079c6a39a71200a1ee863573e40828
1325]
1326[fix CPP detection of Solaris in NCG
1327Karel Gardas <karel.gardas@centrum.cz>**20101217084510
1328 Ignore-this: 9d1ce59d469294eab1f0cbc697e48d69
1329]
1330[Fix checkBinaries on OS X
1331Ian Lynagh <igloo@earth.li>**20101216201121]
1332[Remove redundant HpcMap and HpcSet wrappers around Data.{Map,Set}
1333Ian Lynagh <igloo@earth.li>**20101216190605]
1334[Use "-perm -u+x" rather than "-executable" to find executables
1335Ian Lynagh <igloo@earth.li>**20101216145235
1336 On Windows, -executable is matching the html docs.
1337]
1338[Remove a debugging print
1339Ian Lynagh <igloo@earth.li>**20101216011459]
1340[__GLASGOW_HASKELL__ >= 604 is now always true
1341Ian Lynagh <igloo@earth.li>**20101215214656]
1342[Remove more dead code now we require GHC >= 6.12
1343Ian Lynagh <igloo@earth.li>**20101215213715]
1344[refactor and tidy up the section on RTS options
1345Simon Marlow <marlowsd@gmail.com>**20101216123151
1346 Ignore-this: 9cdafd687351d8a3ff879b64347f85d3
1347]
1348[Related to #4826: Some minor tweaks to the wording of the User Guide, section 4.16
1349Orphi <MathematicalOrchid@hotmail.com>**20101209170440
1350 Ignore-this: c3d942d58594be7d4c2eb4dc3a22f19
1351]
1352[FIX #4826 partial: Add -rtsopts and -with-rtsopts to User Guide section 4.11.6
1353Orphi <MathematicalOrchid@hotmail.com>**20101209165152
1354 Ignore-this: 2fc1c0abbb783695773ab0f9c013bbaa
1355]
1356[FIX #4826 partially: Change -f to -? in User Guide section F4.16
1357Orphi <MathematicalOrchid@hotmail.com>**20101209144148
1358 Ignore-this: 73410b350e80c8943ae722dec8dea44b
1359]
1360[fix #3910
1361Simon Marlow <marlowsd@gmail.com>**20101216114452
1362 Ignore-this: 410e95e188344a523520e192a3fb58ea
1363]
1364[remove an optimisation that wasn't
1365Simon Marlow <marlowsd@gmail.com>**20101215152656
1366 Ignore-this: e8413f58e8292c6e7463087d885b3a7d
1367]
1368[fix a warning
1369Simon Marlow <marlowsd@gmail.com>**20101216105723
1370 Ignore-this: ed6024378021a698ce638267ed3e21ab
1371]
1372[use EXTERN_INLINE instead of STATIC_INLINE to avoid some gcc warnings
1373Simon Marlow <marlowsd@gmail.com>**20101216105709
1374 Ignore-this: d4e1586cf318883a8e611b55df7fbf10
1375]
1376[remove dead code
1377Simon Marlow <marlowsd@gmail.com>**20101216104944
1378 Ignore-this: 97a04a3e37c1b28abc222a28bab3d17d
1379]
1380[fix retainer profiling: add missing case for TSO
1381Simon Marlow <marlowsd@gmail.com>**20101216103900
1382 Ignore-this: 11bda81ac159f638d719c1f6177702fb
1383]
1384[add a missing STACK case
1385Simon Marlow <marlowsd@gmail.com>**20101216102100
1386 Ignore-this: ac1c036b5cbf4209b1d10b6ab1c83f27
1387]
1388[Remove code that is dead now that we need >= 6.12 to build
1389Ian Lynagh <igloo@earth.li>**20101215201006]
1390[fix for large stack allocations
1391Simon Marlow <marlowsd@gmail.com>**20101215152419
1392 Ignore-this: d9aca17d68bd99214c126989a2318e79
1393]
1394[Implement stack chunks and separate TSO/STACK objects
1395Simon Marlow <marlowsd@gmail.com>**20101215120843
1396 Ignore-this: 73fa9460314d4a4e54456af12bef7960
1397 
1398 This patch makes two changes to the way stacks are managed:
1399 
1400 1. The stack is now stored in a separate object from the TSO.
1401 
1402 This means that it is easier to replace the stack object for a thread
1403 when the stack overflows or underflows; we don't have to leave behind
1404 the old TSO as an indirection any more.  Consequently, we can remove
1405 ThreadRelocated and deRefTSO(), which were a pain.
1406 
1407 This is obviously the right thing, but the last time I tried to do it
1408 it made performance worse.  This time I seem to have cracked it.
1409 
1410 2. Stacks are now represented as a chain of chunks, rather than
1411    a single monolithic object.
1412 
1413 The big advantage here is that individual chunks are marked clean or
1414 dirty according to whether they contain pointers to the young
1415 generation, and the GC can avoid traversing clean stack chunks during
1416 a young-generation collection.  This means that programs with deep
1417 stacks will see a big saving in GC overhead when using the default GC
1418 settings.
1419 
1420 A secondary advantage is that there is much less copying involved as
1421 the stack grows.  Programs that quickly grow a deep stack will see big
1422 improvements.
1423 
1424 In some ways the implementation is simpler, as nothing special needs
1425 to be done to reclaim stack as the stack shrinks (the GC just recovers
1426 the dead stack chunks).  On the other hand, we have to manage stack
1427 underflow between chunks, so there's a new stack frame
1428 (UNDERFLOW_FRAME), and we now have separate TSO and STACK objects.
1429 The total amount of code is probably about the same as before.
1430 
1431 There are new RTS flags:
1432 
1433    -ki<size> Sets the initial thread stack size (default 1k)  Egs: -ki4k -ki2m
1434    -kc<size> Sets the stack chunk size (default 32k)
1435    -kb<size> Sets the stack chunk buffer size (default 1k)
1436 
1437 -ki was previously called just -k, and the old name is still accepted
1438 for backwards compatibility.  These new options are documented.
1439]
1440[comments on SRC_HC_OPTS (#4829)
1441Simon Marlow <marlowsd@gmail.com>**20101214101340
1442 Ignore-this: e2bdec00f07b68e82837e77a4faf6514
1443]
1444[fix another sanity error, and refactor/tidy up
1445Simon Marlow <marlowsd@gmail.com>**20101209163919
1446 Ignore-this: d5ce953ac78e90fc0e22cd9848d26e2e
1447]
1448[Fix a bug in functorLikeTraverse, which was giving wrong answer for tuples
1449simonpj@microsoft.com**20101215123725
1450 Ignore-this: 560220e92429b5b1a6197a62f94a4ff2
1451 
1452 This bug led to Trac #4816, which is hereby fixed
1453]
1454[Improve printing for -ddump-deriv
1455simonpj@microsoft.com**20101215121955
1456 Ignore-this: 3181c948c4c2471bd99b32c5ee487a1e
1457]
1458[Tighten up what it means to be an "enumeration data constructor"
1459simonpj@microsoft.com**20101215121927
1460 Ignore-this: 459b3f9f7994a13094ed87b0768b33a8
1461 
1462 See Note [Enumeration types] in TyCon, and comments in Trac #4528
1463]
1464[Allow enumerations to have phantom arguments.
1465simonpj@microsoft.com**20101215121817
1466 Ignore-this: 32ef8cb869e6e38c2e43b3ae87b1b9a8
1467 
1468 The bytecode generator was being too eager.
1469 Fixes Trac #4528, or rather, a near variant.
1470]
1471[Instance declaration overlap allowed if *either* has -XOverlappingInstances
1472simonpj@microsoft.com**20101214180500
1473 Ignore-this: f1b1492541a7e0464ebc6adb45510a2e
1474 
1475 This satisfies Trac #3877.  Documentation is changed too.
1476 I'm not sure if this should go in 7.0.2.
1477]
1478[Fix Trac #4841: behave right with TypeSynonymInstances and NoFlexibleInstances
1479simonpj@microsoft.com**20101214174755
1480 Ignore-this: dccd707fdca84904b7885170a296ecb6
1481 
1482 When we have TypeSynonymInstances without FlexibleInstances we should still
1483 insist on a H98-style instance head, after looking through the synonym.
1484 
1485 This patch also make FlexibleInstances imply TypeSynonymInstances.  Anything
1486 else is a bit awkward, and not very useful.
1487 
1488]
1489[Fix Trac #3731: more superclass subtlety (sigh)
1490simonpj@microsoft.com**20101214180344
1491 Ignore-this: f4168e59f3164303ba7be022ba19c37b
1492 
1493 I will add more comments, but I want to commit this tonight,
1494 so the overnight builds get it.
1495]
1496[Less verbose debug print
1497simonpj@microsoft.com**20101214180248
1498 Ignore-this: e405e8545763e913155abe43daf7e36c
1499]
1500[Wibble to InstEnv.instanceHead
1501simonpj@microsoft.com**20101214082939
1502 Ignore-this: 851db517f8638a0aeb7ad461298f7e9f
1503 
1504 Fixes an accidental glitch in T1835
1505]
1506[Remove dead code now that we require the bootstrapping compiler be >= 6.12
1507Ian Lynagh <igloo@earth.li>**20101214011011]
1508[GHC 6.12 is now needed to build the HEAD
1509Ian Lynagh <igloo@earth.li>**20101214010923]
1510[Add libstdc++-4.5.0-1-mingw32-dll-6.tar.lzma to mingw tarballs
1511Ian Lynagh <igloo@earth.li>**20101213223153]
1512[Fix recursive superclasses (again).  Fixes Trac #4809.
1513simonpj@microsoft.com**20101213171511
1514 Ignore-this: b91651397918fd8f0183812f9a070073
1515 
1516 This patch finally deals with the super-delicate question of
1517 superclases in possibly-recursive dictionaries.  The key idea
1518 is the DFun Superclass Invariant (see TcInstDcls):
1519 
1520      In the body of a DFun, every superclass argument to the
1521      returned dictionary is
1522        either   * one of the arguments of the DFun,
1523        or       * constant, bound at top level
1524 
1525 To establish the invariant, we add new "silent" superclass
1526 argument(s) to each dfun, so that the dfun does not do superclass
1527 selection internally.  There's a bit of hoo-ha to make sure that
1528 we don't print those silent arguments in error messages; a knock
1529 on effect was a change in interface-file format.
1530 
1531 A second change is that instead of the complex and fragile
1532 "self dictionary binding" in TcInstDcls and TcClassDcl,
1533 using the same mechanism for existential pattern bindings.
1534 See Note [Subtle interaction of recursion and overlap] in TcInstDcls
1535 and Note [Binding when looking up instances] in InstEnv.
1536 
1537 Main notes are here:
1538 
1539   * Note [Silent Superclass Arguments] in TcInstDcls,
1540     including the DFun Superclass Invariant
1541 
1542 Main code changes are:
1543 
1544   * The code for MkId.mkDictFunId and mkDictFunTy
1545 
1546   * DFunUnfoldings get a little more complicated;
1547     their arguments are a new type DFunArg (in CoreSyn)
1548 
1549   * No "self" argument in tcInstanceMethod
1550   * No special tcSimplifySuperClasss
1551   * No "dependents" argument to EvDFunApp
1552 
1553 IMPORTANT
1554    It turns out that it's quite tricky to generate the right
1555    DFunUnfolding for a specialised dfun, when you use SPECIALISE
1556    INSTANCE.  For now I've just commented it out (in DsBinds) but
1557    that'll lose some optimisation, and I need to get back to
1558    this.
1559]
1560[Doing the smart canonicalization only if we are not simplifying a Rule LHS.
1561dimitris@microsoft.com**20101210132221
1562 Also, same thing now applies for adding superclasses.
1563 
1564]
1565[Moved canonicalisation inside solveInteract
1566dimitris@microsoft.com**20101209141215
1567 
1568 Moreover canonicalisation now is "clever", i.e. it never canonicalizes a class
1569 constraint if it can already discharge it from some other inert or previously
1570 encountered constraints. See Note [Avoiding the superclass explosion]
1571 
1572]
1573[GHCi linker: Assume non-Haskell libraries are dynamic libs
1574Ian Lynagh <igloo@earth.li>**20101213124930
1575 Ignore-this: aa153a8f6e309c7b3dae7e46bb7a9583
1576 This works around a segfault we get when trying to load libiconv.a on
1577 some platforms.
1578]
1579[Add --version support to ghc-cabal
1580Ian Lynagh <igloo@earth.li>**20101212213600
1581 Ignore-this: ef696dcb1b96a23765f9f18e75a56f5
1582]
1583[Don't link the GHC RTS into our C-only programs
1584Ian Lynagh <igloo@earth.li>**20101210185402
1585 Ignore-this: 56f620f7eb16a03e7497a161bc48458e
1586]
1587[Build a copy of ghc-cabal with the in-tree compiler, for the bindist
1588Ian Lynagh <igloo@earth.li>**20101210181123]
1589[Add a test that all programs in the bindist were built with the right GHC
1590Ian Lynagh <igloo@earth.li>**20101210161218
1591 They should use the GHC from the build tree, not the bootstrapping compiler.
1592]
1593[Fix Trac #4534: renamer bug
1594simonpj@microsoft.com**20101210084530
1595 Ignore-this: 8163bfa3a56344cfe89ad17c62e9655d
1596   
1597 The renamer wasn't attaching the right used-variables to a
1598 TransformStmt constructor.
1599 
1600 The real modification is in RnExpr; the rest is just
1601 pretty-printing and white space.
1602]
1603[White space only
1604simonpj@microsoft.com**20101210084255
1605 Ignore-this: 3fcf8a4fc8c15052c379a135951d53ea
1606]
1607[Comments only
1608simonpj@microsoft.com**20101210084116
1609 Ignore-this: 55bb1de129b1c9513751885eaa84b884
1610]
1611[Make the case-to-let transformation a little less eager
1612simonpj@microsoft.com**20101208172251
1613 Ignore-this: 55eaa1b5753af31aeb32ec792cb6b662
1614 
1615 See Note [Case elimination: lifted case].
1616 Thanks to Roman for identifying this case.
1617]
1618[warning fix: don't redefine BLOCKS_PER_MBLOCK
1619Simon Marlow <marlowsd@gmail.com>**20101210094002
1620 Ignore-this: cadba57f1c38f5e2af1de37d0a79c7ee
1621]
1622[Only reset the event log if logging is turned on (addendum to #4512)
1623Simon Marlow <marlowsd@gmail.com>**20101210093951
1624 Ignore-this: c9f85f0de2b11a37337672fba59aecc6
1625]
1626[allocate enough room for the longer filename (addendum to #4512)
1627Simon Marlow <marlowsd@gmail.com>**20101210093906
1628 Ignore-this: 270dc0219d98f1e0f9e006102ade7087
1629]
1630[Fix Windows build: move rtsTimerSignal to the POSIX-only section
1631Simon Marlow <marlowsd@gmail.com>**20101210090045
1632 Ignore-this: aa1844b70b9f1a44447787c4bbe10d44
1633]
1634[Default the value of -dppr-cols when the static flags aren't initialised yet
1635Ben Lippmeier <benl@ouroborus.net>**20101210060154
1636 Ignore-this: 4cea29085ef904f379a8829714c9e180
1637 If GHC's command line options are bad then the options parser uses the
1638 pretty printer before the -dppr-cols flag has been read.
1639]
1640[Defensify naked read in LLVM mangler
1641Ben Lippmeier <benl@ouroborus.net>**20101210045922
1642 Ignore-this: 1373f597863851bd03e7a7254558ed04
1643]
1644[Formatting only
1645Ben Lippmeier <benl@ouroborus.net>**20101210042600
1646 Ignore-this: 20bbcd95c70b59094d0bb8a63e459103
1647]
1648[Always ppr case alts on separate lines
1649Ben Lippmeier <benl@ouroborus.net>**20101208070508
1650 Ignore-this: 7e2edd57a61427621aeb254aef84f0f7
1651]
1652[Add -dppr-colsN to set width of dumps
1653Ben Lippmeier <benl@ouroborus.net>**20101208070245
1654 Ignore-this: edc64fee6c373b895bb80b83b549ce1a
1655]
1656[Add -dppr-case-as-let to print "strict lets" as actual lets
1657Ben Lippmeier <benl@ouroborus.net>**20101208065548
1658 Ignore-this: eb1d122dbd73b5263cae3a9f8259a838
1659]
1660[Suppress more info with -dsuppress-idinfo
1661Ben Lippmeier <benl@ouroborus.net>**20101208063037
1662 Ignore-this: 5e8213d7b8d2905e245917aa3e83efc5
1663]
1664[Implement -dsuppress-type-signatures
1665Ben Lippmeier <benl@ouroborus.net>**20101208062814
1666 Ignore-this: 34dbefe5f8d7fe58ecb26d6a748d1c71
1667]
1668[Add more suppression flags
1669Ben Lippmeier <benl@ouroborus.net>**20101208020723
1670 Ignore-this: b010ba9789a2fde6b815f33494fcc23c
1671  -dsuppress-all
1672  -dsuppress-type-applications
1673  -dsuppress-idinfo
1674]
1675[fix ticket number (#4505)
1676Simon Marlow <marlowsd@gmail.com>**20101209120404
1677 Ignore-this: 5769c5ce2a8d69d62d977a9ae138ec23
1678]
1679[fix warnings
1680Simon Marlow <marlowsd@gmail.com>**20101209115844
1681 Ignore-this: ffff37feb2abbfc5bd12940c7007c208
1682]
1683[Catch too-large allocations and emit an error message (#4505)
1684Simon Marlow <marlowsd@gmail.com>**20101209114005
1685 Ignore-this: c9013ab63dd0bd62ea045060528550c6
1686 
1687 This is a temporary measure until we fix the bug properly (which is
1688 somewhat tricky, and we think might be easier in the new code
1689 generator).
1690 
1691 For now we get:
1692 
1693 ghc-stage2: sorry! (unimplemented feature or known bug)
1694   (GHC version 7.1 for i386-unknown-linux):
1695         Trying to allocate more than 1040384 bytes.
1696 
1697 See: http://hackage.haskell.org/trac/ghc/ticket/4550
1698 Suggestion: read data from a file instead of having large static data
1699 structures in the code.
1700]
1701[Export the value of the signal used by scheduler (#4504)
1702Dmitry Astapov <dastapov@gmail.com>**20101208183755
1703 Ignore-this: 427bf8c2469283fc7a6f759440d07d87
1704]
1705[Tweak the "sorry" message a bit
1706Simon Marlow <marlowsd@gmail.com>**20101208163212
1707 Ignore-this: aa1ce5bc3c27111548204b740572efbe
1708 
1709 -              "sorry! (this is work in progress)\n"
1710 +              "sorry! (unimplemented feature or known bug)\n"
1711]
1712[:unset settings support
1713Boris Lykah <lykahb@gmail.com>**20101123190132
1714 Ignore-this: 5e97c99238f5d2394592858c34c004d
1715 Added support for settings [args, prog, prompt, editor and stop].
1716 Now :unset supports the same set of options as :set.
1717]
1718[Fix Windows memory freeing: add a check for fb == NULL; fixes trac #4506
1719Ian Lynagh <igloo@earth.li>**20101208152349
1720 Also added a few comments, and a load of code got indented 1 level deeper.
1721]
1722[Fixes for #4512: EventLog.c - provides ability to terminate event logging, Schedule.c - uses them in forkProcess.
1723Dmitry Astapov <dastapov@gmail.com>**20101203133950
1724 Ignore-this: 2da7f215d6c22708a18291a416ba8881
1725]
1726[Make CPPFLAGS variables, as well as CFLAGS and LDFLAGS
1727Ian Lynagh <igloo@earth.li>**20101207010033
1728 Ignore-this: 2fc1ca1422aae1988d0fe1d29a8485d9
1729 This fixes the "does unsetenv return void" test in the unix package on
1730 OS X, if I tell it to make 10.4-compatible binaries. The test uses
1731 CPPFLAGS but not CFLAGS, so it thought it returned int (as it was
1732 in 10.5-mode), but the C compiler (using CFLAGS, so in 10.4 mode)
1733 thought it returned void.
1734 
1735 I also added CONF_LD_OPTS_STAGE$3 to the list of things in LDFLAGS,
1736 which looks like an accidental ommission.
1737]
1738[Add a configure message
1739Ian Lynagh <igloo@earth.li>**20101206215201]
1740[Link even programs containing no Haskell modules with GHC
1741Ian Lynagh <igloo@earth.li>**20101206203329
1742 I don't remember why we made it use gcc instead, but going back to
1743 using ghc doesn't seem to break anything, and should fix the build
1744 on OS X 10.6.
1745]
1746[Correct the stage that the includes/ tools are built in
1747Ian Lynagh <igloo@earth.li>**20101206203125]
1748[Tweak the cleaning of inplace/; fixes trac #4320
1749Ian Lynagh <igloo@earth.li>**20101205212048]
1750[Close .ghci files after reading them; fixes trac #4487
1751Ian Lynagh <igloo@earth.li>**20101205205301]
1752[Fix the behaviour of :history for ticks surrounding top level functions
1753pepeiborra@gmail.com**20101203202346
1754 Ignore-this: 8059d4859c52c0c9a235b937cb8cde1d
1755]
1756[Don't warn of duplicate exports in case of module exports.
1757Michal Terepeta <michal.terepeta@gmail.com>**20101127212116
1758 Ignore-this: ea225d517826f971c400bbb68d1405b8
1759 
1760 But only when the module exports refer to different modules.
1761 See ticket #4478.
1762]
1763[Fix whitespace/layout in RnNames.
1764Michal Terepeta <michal.terepeta@gmail.com>**20101030171303
1765 Ignore-this: 707a7955fc4fc51683cc5a1dfe57f93
1766]
1767[Tell gcc to support back to OS X 10.5
1768Ian Lynagh <igloo@earth.li>**20101203201558
1769 Ignore-this: f02d70e5b9cce50137981c6cb2b62a18
1770]
1771[Make RelaxedLayout off by default
1772Ian Lynagh <igloo@earth.li>**20101202140808
1773 I suspect this is a vary rarely used extension to the official layout
1774 rule.
1775]
1776[Fix up TcInstDcls
1777simonpj@microsoft.com**20101203180758
1778 Ignore-this: 9311aeb4ee67c799704afec90b5982d0
1779 
1780 I really don't know how this module got left out of my last
1781 patch, namely
1782   Thu Dec  2 12:35:47 GMT 2010  simonpj@microsoft.com
1783   * Re-jig simplifySuperClass (again)
1784 
1785 I suggest you don't pull either the patch above, or this
1786 one, unless you really have to.  I'm not fully confident
1787 that it works properly yet.  Ran out of time. Sigh.
1788]
1789[throwTo: report the why_blocked value in the barf()
1790Simon Marlow <marlowsd@gmail.com>**20101203094840
1791 Ignore-this: 3b167c581be1c51dfe3586cc6359e1d0
1792]
1793[handle ThreadMigrating in throwTo() (#4811)
1794Simon Marlow <marlowsd@gmail.com>**20101203094818
1795 Ignore-this: 8ef8cb7fd3b50a27f83c29968131d461
1796 If a throwTo targets a thread that has just been created with
1797 forkOnIO, then it is possible the exception strikes while the thread
1798 is still in the process of migrating.  throwTo() didn't handle this
1799 case, but it's fairly straightforward.
1800]
1801[removeThreadFromQueue: stub out the link field before returning (#4813)
1802Simon Marlow <marlowsd@gmail.com>**20101202160838
1803 Ignore-this: 653ae17bc1120d7f4130da94665002a1
1804]
1805[small tidyup
1806Simon Marlow <marlowsd@gmail.com>**20101126140620
1807 Ignore-this: 70b1d5ed4c81a7b29dd5980a2d84aae1
1808]
1809[Fix a recomp bug: make classes/datatypes depend directly on DFuns (#4469)
1810Simon Marlow <marlowsd@gmail.com>**20101202122349
1811 Ignore-this: 61c765583bb1d97caa88cf9b4f45b87c
1812 And remove the old mechanism of recording dfun uses separately,
1813 because it didn't work.
1814 
1815 This wiki page describes recompilation avoidance and fingerprinting.
1816 I'll update it to describe the new method and what went wrong with the
1817 old method:
1818 
1819 http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/RecompilationAvoidance
1820]
1821[make a panic message more informative and suggest -dcore-lint (see #4534)
1822Simon Marlow <marlowsd@gmail.com>**20101201151706
1823 Ignore-this: 2a10761925d6f9f52675948baa30f7a
1824]
1825[Re-jig simplifySuperClass (again)
1826simonpj@microsoft.com**20101202123547
1827 Ignore-this: fe4062b8988258f6748ebd8fbd6515b5
1828 
1829 This fixes the current loop in T3731, and will fix other
1830 reported loops.  The loops show up when we are generating
1831 evidence for superclasses in an instance declaration.
1832 
1833 The trick is to make the "self" dictionary simplifySuperClass
1834 depend *explicitly* on the superclass we are currently trying
1835 to build.  See Note [Dependencies in self dictionaries] in TcSimplify.
1836 
1837 That in turn means that EvDFunApp needs a dependency-list, used
1838 when chasing dependencies in isGoodRecEv.
1839]
1840[A little refactoring (remove redundant argument passed to isGoodRecEv)
1841simonpj@microsoft.com**20101202123110
1842 Ignore-this: e517c5c12109a230f08dafb4d1e386df
1843]
1844[Make rebindable if-then-else a little more permissive
1845simonpj@microsoft.com**20101202122540
1846 Ignore-this: ddb552cfe307607b42d1e4baf4e3bf21
1847 
1848 See Note [Rebindable syntax for if].  Fixes Trac #4798.
1849 Thanks to Nils Schweinsberg <mail@n-sch.de>
1850]
1851[Improve error message (Trac #4799)
1852simonpj@microsoft.com**20101202102706
1853 Ignore-this: d9896e4d182936de1f256c820b96a8cf
1854]
1855[Fix a nasty bug in RULE matching: Trac #4814
1856simonpj@microsoft.com**20101202102618
1857 Ignore-this: ba058ad46a02bd2faf3a14de93fd19c6
1858 
1859 See Note [Matching lets], which explains it all in detail.
1860 It took me a day to think of a nice way to fix the bug,
1861 but I think the result is quite respectable. Subtle, though.
1862]
1863[Rename -XPArr to -XParallelArrays
1864Ben Lippmeier <benl@ouroborus.net>**20101130075415
1865 Ignore-this: 21b37680a7f25800d1200b59ad0b6b39
1866]
1867[FIX #1845 (unconditional relative branch out of range)
1868pho@cielonegro.org**20101130143014
1869 Ignore-this: df234bd8ad937104c455656fe3c33732
1870 
1871 Don't use mmap on powerpc-apple-darwin as mmap doesn't support
1872 reallocating but we need to allocate jump islands just after each
1873 object images. Otherwise relative branches to jump islands can fail
1874 due to 24-bits displacement overflow.
1875]
1876[rts/Linker.c (loadArchive):
1877pho@cielonegro.org**20101130142700
1878 Ignore-this: bc84f9369ce5c2d289440701b7a3a2ab
1879 
1880 This routine should be aware of Mach-O misalignment of malloc'ed memory regions.
1881]
1882[rts/Linker.c (machoGetMisalignment):
1883pho@cielonegro.org**20101130123355
1884 Ignore-this: 75425600049efd587e9873578e26392f
1885 
1886 Use fseek(3) instead of rewind(3) to move the file position indicator back to the initial position. Otherwise we can't use this function in loadArchive().
1887]
1888[rts/Linker.c (ocFlushInstructionCache):
1889pho@cielonegro.org**20101130121425
1890 Ignore-this: 1e2c207e4b1d17387617ec5d645204b7
1891 
1892 I found this function causes a segfault when ocAllocateSymbolExtras() has allocated a separate memory region for jump islands.
1893]
1894[Remove NewQualifiedOperators
1895Ian Lynagh <igloo@earth.li>**20101201181117
1896 The extension was rejected by Haskell', and deprecated in 7.0.
1897]
1898[fix ref to utils/ext-core, which moved to Hackage (extcore package)
1899Simon Marlow <marlowsd@gmail.com>**20101201092147
1900 Ignore-this: 272a7daaa335ef60bcc645db70b4d68b
1901]
1902[fix floating-point/FFI section: fenv is C99, not POSIX
1903Simon Marlow <marlowsd@gmail.com>**20101201092119
1904 Ignore-this: ce8b3edd428e4f77691dd739b5b4ae73
1905]
1906[Fixed some 'unused vars' warnings
1907keller@cse.unsw.edu.au**20101130013425
1908 Ignore-this: 35790d443faa23b87e4ba442e62376a3
1909]
1910[vectScalarLam handles int, float, and double now
1911keller@cse.unsw.edu.au**20101129231043
1912 Ignore-this: 6d67bdc8dd8577184040e791e6f3d0
1913]
1914[Handling of lets, letrec and case when checking if a lambda expr needs to be vectorised
1915keller@cse.unsw.edu.au**20101115051225
1916 Ignore-this: 1db6ed63d7b3f6d093e019322b407ff7
1917]
1918[Document the behaviour of fenv.h functions with GHC (#4391)
1919Simon Marlow <marlowsd@gmail.com>**20101126125336
1920 Ignore-this: bc4eab49428d567505a28add6fed90f1
1921]
1922[Remove the no-ghci-lib warning in ghc-pkg
1923Ian Lynagh <igloo@earth.li>**20101127235805
1924 GHCi libs are no longer necessary, as we can use the .a or .so versions
1925 instead.
1926]
1927[Add GNU-variant support to the .a parser, and other improvements/tidyups
1928Ian Lynagh <igloo@earth.li>**20101127223945]
1929[Re-indent only
1930Ian Lynagh <igloo@earth.li>**20101127191646]
1931[Improve linker debugging for archive files
1932Ian Lynagh <igloo@earth.li>**20101127190907]
1933[Always enable the archive-loading code
1934Ian Lynagh <igloo@earth.li>**20101127173000
1935 If the GHCi .o lib doesn't exist, load the .a instead
1936]
1937[Inherit the ForceSpecConstr flag in non-recursive nested bindings
1938Roman Leshchinskiy <rl@cse.unsw.edu.au>**20101127125025
1939 Ignore-this: 401391eae25cefcb4afaba2e357decc1
1940 
1941 This makes sure that join points are fully specialised in loops which are
1942 marked as ForceSpecConstr.
1943]
1944[Document -ddump-rule-firings and -ddump-rule-rewrites
1945Roman Leshchinskiy <rl@cse.unsw.edu.au>**20101127123528
1946 Ignore-this: beade2efe0cd767c0ce9d4f45a3380ba
1947]
1948[New flag -dddump-rule-rewrites
1949Roman Leshchinskiy <rl@cse.unsw.edu.au>**20101127122022
1950 Ignore-this: c0ef5b8a199fbd1ef020258d2cde85a3
1951 
1952 Now, -ddump-rule-firings only shows the names of the rules that fired (it would
1953 show "before" and "after" with -dverbose-core2core previously) and
1954 -ddump-rule-rewrites always shows the "before" and "after" bits, even without
1955 -dverbose-core2core.
1956]
1957[Acutally, wild-card variables *can* have occurrences
1958simonpj@microsoft.com**20101126162409
1959 Ignore-this: 544bffed75eeccef03a1097f98524eea
1960 
1961 This patch removes the Lint test, and comments why
1962]
1963[Tidy up the handling of wild-card binders, and make Lint check it
1964simonpj@microsoft.com**20101126133210
1965 Ignore-this: 9e0be9f7867d53046ee5b0e478a0f433
1966 
1967 See Note [WildCard binders] in SimplEnv.  Spotted by Roman.
1968]
1969[Substitution should just substitute, not optimise
1970simonpj@microsoft.com**20101125172356
1971 Ignore-this: 657628d9b6796ceb5f915c43d56e4a06
1972 
1973 This was causing Trac #4524, by optimising
1974      (e |> co)  to   e
1975 on the LHS of a rule.  Result, the template variable
1976 'co' wasn't bound any more.
1977 
1978 Now that substition doesn't optimise, it seems sensible to call
1979 simpleOptExpr rather than substExpr when substituting in the
1980 RHS of rules.  Not a big deal either way.
1981]
1982[Make SpecConstr "look through" identity coercions
1983simonpj@microsoft.com**20101125172138
1984 Ignore-this: c1cc585ed890a7702c33987e971e0af6
1985]
1986[Comment only
1987simonpj@microsoft.com**20101125172011
1988 Ignore-this: 3c7be8791badd00dcca9610ebb8981d1
1989]
1990[White space only
1991simonpj@microsoft.com**20101101080748
1992 Ignore-this: f7133fc6b22ae263c6672543a8534a6f
1993]
1994[Keep a maximum of 6 spare worker threads per Capability (#4262)
1995Simon Marlow <marlowsd@gmail.com>**20101125135729
1996 Ignore-this: a020786569656bf2f3a1717b65d463bd
1997]
1998[Unicide OtherNumber category should be allowed in identifiers (#4373)
1999Simon Marlow <marlowsd@gmail.com>**20101115095444
2000 Ignore-this: e331b6ddb17550163ee91bd283348800
2001]
2002[vectoriser: fix warning
2003Ben Lippmeier <benl@ouroborus.net>**20101126044036
2004 Ignore-this: e1a66bb405bf2f3f56b42c3b13fd4bf3
2005]
2006[vectoriser: fix warning
2007Ben Lippmeier <benl@ouroborus.net>**20101126042950
2008 Ignore-this: df8dd25bcfb3946c2974b13953a2f2c7
2009]
2010[vectoriser: take class directly from the instance tycon
2011Ben Lippmeier <benl@ouroborus.net>**20101126042900
2012 Ignore-this: 626a416717a5a059f39e53f4ec95fc66
2013]
2014[vectoriser: comments only
2015Ben Lippmeier <benl@ouroborus.net>**20101125073201
2016 Ignore-this: 8846ea8895307083bd1ebbc5d7fb1c5
2017]
2018[vectoriser: follow changes in mkClass
2019Ben Lippmeier <benl@ouroborus.net>**20101125062349
2020 Ignore-this: d5018cc022686d4272e126ca9a12283a
2021]
2022[vectoriser: tracing wibbles
2023Ben Lippmeier <benl@ouroborus.net>**20101125062332
2024 Ignore-this: c2024d8f03bc03bee2851f4f1c139fd5
2025]
2026[mkDFunUnfolding wants the type of the dfun to be a PredTy
2027benl@ouroborus.net**20100914062939
2028 Ignore-this: 7aa6e6b140746184cf00355b50c83b66
2029]
2030[vectoriser: fix conflicts
2031Ben Lippmeier <benl@ouroborus.net>**20101125060904
2032 Ignore-this: cc3decab1affada8629ca3818b76b3bf
2033]
2034[Comments and formatting only
2035benl@ouroborus.net**20100914062903
2036 Ignore-this: b0fc25f0952cafd56cc25353936327d4
2037]
2038[Comments and formatting to type environment vectoriser
2039benl@ouroborus.net**20100909080405
2040 Ignore-this: ab8549d53f845c9d82ed9a525fda3906
2041]
2042[Don't mix implicit and explicit layout
2043Ian Lynagh <igloo@earth.li>**20101124231514]
2044[Whitespace only
2045Ian Lynagh <igloo@earth.li>**20101124230655]
2046[Separate NondecreasingIndentation out into its own extension
2047Ian Lynagh <igloo@earth.li>**20101124220507]
2048[Add another GHC layout rule relaxation to RelaxedLayout
2049Ian Lynagh <igloo@earth.li>**20101124205957]
2050[Remove an unused build system variable: GhcDir
2051Ian Lynagh <igloo@earth.li>**20101124140455]
2052[Remove unused build system variable: GhcHasEditline
2053Ian Lynagh <igloo@earth.li>**20101124140415]
2054[Remove unused variables from the build system: HBC, NHC, MKDEPENDHS
2055Ian Lynagh <igloo@earth.li>**20101124140052]
2056[Remove references to Haskell 98
2057Ian Lynagh <igloo@earth.li>**20101123233536
2058 They are no longer right, as we have Haskell' generating new Haskell
2059 standards.
2060]
2061[Tweak a configure test
2062Ian Lynagh <igloo@earth.li>**20101123170621]
2063[Add a configure test for the visibility hidden attribute
2064Ian Lynagh <igloo@earth.li>**20101123170541]
2065[sanity: fix places where we weren't filling fresh memory with 0xaa
2066Simon Marlow <marlowsd@gmail.com>**20101029092843
2067 Ignore-this: 2cb18f7f5afcaf33371aeffce67e218f
2068]
2069[Just some alpha renaming
2070Ian Lynagh <igloo@earth.li>**20101121144455
2071 Ignore-this: d5e807c5470840efc199e29f7d50804c
2072]
2073[Fix bug #3165 (:history throws irrefutable pattern failed)
2074pepeiborra@gmail.com**20101115223623
2075 Ignore-this: 73edf56e502b4d0385bc044133b27946
2076 
2077 I ran across this bug and took the time to fix it, closing
2078 a long time due TODO in InteractiveEval.hs
2079 
2080 Instead of looking around to find the enclosing declaration
2081 of a tick, this patch makes use of the information already collected during the
2082 coverage desugaring phase
2083]
2084[For bindists, build ghc-pwd with stage 1
2085Ian Lynagh <igloo@earth.li>**20101121183520
2086 Ignore-this: a3b5c8b78c81ec1b6d5fbf23da346ff5
2087 rather then the bootstrapping compiler. This fixes problems where the
2088 bootstrapping compiler dynamically links against libraries not on the
2089 target machine.
2090]
2091[Makefile tweak
2092Ian Lynagh <igloo@earth.li>**20101121183342
2093 Ignore-this: cd55a2819c1a5fd36da1bc7a75d2ded1
2094]
2095[Fix a makefile include ordering sanity check
2096Ian Lynagh <igloo@earth.li>**20101121174916
2097 Ignore-this: d0bdd41c4b618944d04ecb4f54fdd0f1
2098]
2099[Add an extension for GHC's layout-rule relaxations
2100Ian Lynagh <igloo@earth.li>**20101120215340
2101 Still TODO: Add the other relaxation (#1060) and update the alternative
2102 layout rule to use the extension.
2103]
2104[Tweak the bindist configure.ac.in
2105Ian Lynagh <igloo@earth.li>**20101120173735]
2106[configure.ac tweaks
2107Ian Lynagh <igloo@earth.li>**20101120170245]
2108[When testing the bindist, tell it where gcc is
2109Ian Lynagh <igloo@earth.li>**20101120155920
2110 The location isn't baked into the bindist, as it may differ from
2111 machine to machine.
2112]
2113[Comments only
2114simonpj@microsoft.com**20101119100153
2115 Ignore-this: 7abd5d965ea805770449d6f8dadbb921
2116]
2117[ForceSpecConstr now forces specialisation even for arguments which aren't scrutinised
2118Roman Leshchinskiy <rl@cse.unsw.edu.au>**20101118212839
2119 Ignore-this: db45721d29a694e53746f8b76513efa4
2120]
2121[Move the superclass generation to the canonicaliser
2122simonpj@microsoft.com**20101118120533
2123 Ignore-this: 5e0e525402a240b709f2b8104c1682b2
2124 
2125 Doing superclass generation in the canonicaliser (rather than
2126 TcInteract) uses less code, and is generally more efficient.
2127 
2128 See Note [Adding superclasses] in TcCanonical.
2129 
2130 Fixes Trac #4497.
2131]
2132[Fix the generation of in-scope variables for IfaceLint check
2133simonpj@microsoft.com**20101118090057
2134 Ignore-this: bbcdba61ddf89d07fe69ca99c2017e3f
2135]
2136[Comments only
2137simonpj@microsoft.com**20101118090034
2138 Ignore-this: fa2936d35a0f7be4e4535ea9e2b7bf7b
2139]
2140[Omit bogus test for -XDeriveFunctor
2141simonpj@microsoft.com**20101118090028
2142 Ignore-this: a534243011809ebbb788b910961601c5
2143 
2144 It was duplicated in the case of 'deriving( Functor )'
2145 and wrong for 'deriving( Foldable )'
2146]
2147[Improve error message on advice from a user
2148simonpj@microsoft.com**20101118085306
2149 Ignore-this: bd4f3858ff24e602e985288f27d536f3
2150 
2151 See Trac #4499
2152]
2153[TAG 2010-11-18
2154Ian Lynagh <igloo@earth.li>**20101118011554
2155 Ignore-this: ccadbe7fadd1148d2ee3caa8c8821ec5
2156]
2157Patch bundle hash:
21584ad4a218c9685ed06fe10325727f46da153ecbb3