Ticket #3550: ghc-macosx-dylibs-v4.darcs-send

File ghc-macosx-dylibs-v4.darcs-send, 100.1 KB (added by StephenBlackheath, 5 years ago)

GHC patches to fix Mac OS/X dynamic libs, v4

Line 
1Tue Sep 29 09:34:00 NZDT 2009  Stephen Blackheath <oversensitive.pastors.stephen@blacksapphire.com>
2  * Add -install-name option to GHC so the install name can be set for dynamic libs on Mac OS/X.
3
4Tue Sep 29 09:38:00 NZDT 2009  Stephen Blackheath <oversensitive.pastors.stephen@blacksapphire.com>
5  * Force -fPIC when linking against dynamic libraries on Mac OS/X.
6  Otherwise you get
7  /tmp/ghc7602_0/ghc7602_0.s:207:0:
8     non-relocatable subtraction expression, "___stginit_Lib_dyn" minus "L1x2;4"
9  /tmp/ghc7602_0/ghc7602_0.s:207:0:
10     symbol: "___stginit_Lib_dyn" can't be undefined in a subtraction expression
11
12Tue Sep 29 09:41:58 NZDT 2009  Stephen Blackheath <oversensitive.pastors.stephen@blacksapphire.com>
13  * Link all dynamic libraries with the correct install_name on Mac OS/X.
14
15New patches:
16
17[Add -install-name option to GHC so the install name can be set for dynamic libs on Mac OS/X.
18Stephen Blackheath <oversensitive.pastors.stephen@blacksapphire.com>**20090928203400
19 Ignore-this: 4cb302364ead896ab95cf3bb6fa1c258
20] {
21hunk ./compiler/main/DriverPipeline.hs 1624
22     --  later, so that it will not complain about the use of the option
23     --  -undefined dynamic_lookup above.
24     -- -install_name
25-    --   Causes the dynamic linker to ignore the DYLD_LIBRARY_PATH when loading
26-    --   this lib and instead look for it at its absolute path.
27-    --   When installing the .dylibs (see target.mk), we'll change that path to
28-    --   point to the place they are installed. Therefore, we won't have to set
29-    --  up DYLD_LIBRARY_PATH specifically for ghc.
30+    --   Mac OS/X stores the path where a dynamic library is (to be) installed
31+    --   in the library itself.  It's called the "install name" of the library.
32+    --   Then any library or executable that links against it before it's
33+    --   installed will search for it in its ultimate install location.  By
34+    --   default we set the install name to the absolute path at build time, but
35+    --   it can be overridden by the -install-name option passed to ghc.  Cabal
36+    --   does this.
37     -----------------------------------------------------------------------------
38 
39     let output_fn = case o_file of { Just s -> s; Nothing -> "a.out"; }
40hunk ./compiler/main/DriverPipeline.hs 1635
41 
42-    pwd <- getCurrentDirectory
43+    instName <- case installName dflags of
44+        Just n -> return n
45+        Nothing -> do
46+            pwd <- getCurrentDirectory
47+            return $ pwd `combine` output_fn
48     SysTools.runLink dflags
49         ([ SysTools.Option verb
50          , SysTools.Option "-dynamiclib"
51hunk ./compiler/main/DriverPipeline.hs 1649
52         ++ map SysTools.Option (
53            md_c_flags
54         ++ o_files
55-        ++ [ "-undefined", "dynamic_lookup", "-single_module", "-Wl,-macosx_version_min","-Wl,10.5", "-install_name " ++ (pwd </> output_fn) ]
56+        ++ [ "-undefined", "dynamic_lookup", "-single_module", "-Wl,-macosx_version_min","-Wl,10.5",
57+              "-Wl,-read_only_relocs,suppress", "-install_name", instName ]
58         ++ extra_ld_inputs
59         ++ lib_path_opts
60         ++ extra_ld_opts
61hunk ./compiler/main/DynFlags.hs 379
62 
63   -- paths etc.
64   objectDir             :: Maybe String,
65+  installName           :: Maybe String,
66   hiDir                 :: Maybe String,
67   stubDir               :: Maybe String,
68 
69hunk ./compiler/main/DynFlags.hs 621
70         thisPackage             = mainPackageId,
71 
72         objectDir               = Nothing,
73+        installName             = Nothing,
74         hiDir                   = Nothing,
75         stubDir                 = Nothing,
76 
77hunk ./compiler/main/DynFlags.hs 764
78   | verbosity dflags >= 3  = "-v"
79   | otherwise =  ""
80 
81-setObjectDir, setHiDir, setStubDir, setOutputDir,
82+setObjectDir, setHiDir, setStubDir, setOutputDir, setInstallName,
83          setObjectSuf, setHiSuf, setHcSuf, parseDynLibLoaderMode,
84          setPgmP, setPgmL, setPgmF, setPgmc, setPgmm, setPgms, setPgma, setPgml, setPgmdll, setPgmwindres,
85          addOptL, addOptP, addOptF, addOptc, addOptm, addOpta, addOptl, addOptwindres,
86hunk ./compiler/main/DynFlags.hs 779
87   -- -stubdir D adds an implicit -I D, so that gcc can find the _stub.h file
88   -- \#included from the .hc file when compiling with -fvia-C.
89 setOutputDir  f = setObjectDir f . setHiDir f . setStubDir f
90+setInstallName  f d = d{ installName = Just f}
91 
92 setObjectSuf  f d = d{ objectSuf  = f}
93 setHiSuf      f d = d{ hiSuf      = f}
94hunk ./compiler/main/DynFlags.hs 1324
95   , Flag "tmpdir"         (HasArg (upd . setTmpDir)) Supported
96   , Flag "stubdir"        (HasArg (upd . setStubDir)) Supported
97   , Flag "outputdir"      (HasArg (upd . setOutputDir)) Supported
98+  , Flag "install-name"   (HasArg (upd . setInstallName)) Supported
99   , Flag "ddump-file-prefix" (HasArg (upd . setDumpPrefixForce . Just))
100          Supported
101 
102}
103[Force -fPIC when linking against dynamic libraries on Mac OS/X.
104Stephen Blackheath <oversensitive.pastors.stephen@blacksapphire.com>**20090928203800
105 Ignore-this: 465433af2349779b510f500dc79768f3
106 Otherwise you get
107 /tmp/ghc7602_0/ghc7602_0.s:207:0:
108    non-relocatable subtraction expression, "___stginit_Lib_dyn" minus "L1x2;4"
109 /tmp/ghc7602_0/ghc7602_0.s:207:0:
110    symbol: "___stginit_Lib_dyn" can't be undefined in a subtraction expression
111] hunk ./compiler/main/StaticFlags.hs 268
112 opt_PIC :: Bool
113 #if darwin_TARGET_OS && x86_64_TARGET_ARCH
114 opt_PIC                         = True
115+#elif darwin_TARGET_OS
116+opt_PIC                         = lookUp (fsLit "-fPIC") || not opt_Static
117 #else
118 opt_PIC                         = lookUp (fsLit "-fPIC")
119 #endif
120[Link all dynamic libraries with the correct install_name on Mac OS/X.
121Stephen Blackheath <oversensitive.pastors.stephen@blacksapphire.com>**20090928204158
122 Ignore-this: aef6dfa45d84bd7f4e4358df19490907
123]
124<
125[We now tell the linker macosx_version_min is 10.5; trac #3521
126Ian Lynagh <igloo@earth.li>**20090924162450
127 We used to say 10.3, but this gives
128     -rpath can only be used when targeting Mac OS X 10.5 or later
129 when building shared libraries.
130 Patch from mwotton.
131]
132[Add -install-name option to GHC so the install name can be set for dynamic libs on Mac OS/X.
133Stephen Blackheath <oversensitive.pastors.stephen@blacksapphire.com>**20090928203400
134 Ignore-this: 4cb302364ead896ab95cf3bb6fa1c258
135]
136> {
137hunk ./ghc.mk 717
138        $(INSTALL_DIR) $(DESTDIR)$(bindir)
139        for i in $(INSTALL_BINS); do \
140                $(INSTALL_PROGRAM) $(INSTALL_BIN_OPTS) $$i $(DESTDIR)$(bindir) ;  \
141-                if test "$(darwin_TARGET_OS)" = "1"; then \
142-                   sh mk/fix_install_names.sh $(ghclibdir) $(DESTDIR)$(bindir)/$$i ; \
143-                fi ; \
144        done
145 
146 install_libs: $(INSTALL_LIBS)
147hunk ./ghc.mk 731
148                  *.so) \
149                    $(INSTALL_SHLIB) $(INSTALL_OPTS) $$i $(DESTDIR)$(ghclibdir) ;; \
150                  *.dylib) \
151-                   $(INSTALL_SHLIB) $(INSTALL_OPTS) $$i $(DESTDIR)$(ghclibdir); \
152-                   install_name_tool -id $(DESTDIR)$(ghclibdir)/`basename $$i` $(DESTDIR)$(ghclibdir)/`basename $$i` ;; \
153+                   $(INSTALL_SHLIB) $(INSTALL_OPTS) $$i $(DESTDIR)$(ghclibdir) ;; \
154                  *) \
155                    $(INSTALL_DATA) $(INSTALL_OPTS) $$i $(DESTDIR)$(ghclibdir); \
156                esac; \
157hunk ./ghc.mk 854
158        $(wildcard libraries/*/dist-install/doc/) \
159     $(filter-out extra-gcc-opts,$(INSTALL_LIBS)) \
160     $(filter-out %/project.mk mk/config.mk %/mk/install.mk,$(MAKEFILE_LIST)) \
161-       mk/fix_install_names.sh \
162        mk/project.mk \
163        mk/install.mk.in \
164        bindist.mk \
165hunk ./libffi/ghc.mk 85
166 libffi_DYNAMIC_LIBS = $(libffi_HS_DYN_LIB)
167 else
168 libffi_DYNAMIC_PROG =
169+ifeq "$(darwin_TARGET_OS)" "1"
170+libffi_DYNAMIC_LIBS = libffi/libffi$(soext) libffi/libffi.5$(soext) libffi/libffi.5.0.9$(soext)
171+else
172 libffi_DYNAMIC_LIBS = libffi/libffi.so libffi/libffi.so.5 libffi/libffi.so.5.0.9
173 endif
174hunk ./libffi/ghc.mk 90
175+endif
176 
177 ifeq "$(BuildSharedLibs)" "YES"
178 libffi_EnableShared=yes
179hunk ./libffi/ghc.mk 196
180 # Rename libffi.so to libHSffi...so
181 $(libffi_HS_DYN_LIB): $(libffi_DYNAMIC_LIBS)
182        "$(CP)" $(word 1,$(libffi_DYNAMIC_LIBS)) $(libffi_HS_DYN_LIB)
183+ifeq "$(darwin_TARGET_OS)" "1"
184+       # Ensure library's install name is correct before anyone links with it.
185+       install_name_tool -id $(ghclibdir)/$(libffi_HS_DYN_LIB_NAME) $(libffi_HS_DYN_LIB)
186+endif
187 
188 $(eval $(call all-target,libffi,$(libffi_HS_DYN_LIB)))
189 endif
190hunk ./mk/fix_install_names.sh 1
191-# Darwin / Mac OS X only
192-#   sh fix_install_names.sh directory binary
193-#
194-# Changes 'binary' to assume that all libHS*_dyn.dylib libraries
195-# are to be found in 'directory'.
196-
197-prefix=$1
198-file=$2
199-
200-type=`file "$file"`
201-
202-if `test "${type/Mach-O}" == "$type"`
203-then
204-    exit
205-fi
206-
207-if `test x${prefix%/} != x"" `
208-then
209-    prefix=${prefix%/}/
210-fi
211-
212-for i in `otool -L $file \
213-         | grep 'libHS.*_dyn.dylib' \
214-         | sed 's/.\(.*libHS.*_dyn.dylib\).*/\1/'`
215-do
216-    install_name_tool -change $i "$prefix`basename $i`" $file
217-done
218-
219-if `test "${file%.dylib}" != "${file}"`
220-then
221-    install_name_tool -id "$prefix`basename $file`" $file
222-fi
223rmfile ./mk/fix_install_names.sh
224hunk ./rts/ghc.mk 101
225 $(call c-suffix-rules,rts,dist,$1,YES)
226 $(call cmm-suffix-rules,rts,dist,$1)
227 
228-rts_$1_LIB = rts/dist/build/libHSrts$$($1_libsuf)
229+rts_$1_LIB_NAME = libHSrts$$($1_libsuf)
230+rts_$1_LIB = rts/dist/build/$$(rts_$1_LIB_NAME)
231 
232 rts_$1_C_OBJS   = $$(patsubst rts/%.c,rts/dist/build/%.$$($1_osuf),$$(rts_C_SRCS)) $$(patsubst %.c,%.$$($1_osuf),$$(rts_$1_EXTRA_C_SRCS))
233 rts_$1_S_OBJS   = $$(patsubst rts/%.S,rts/dist/build/%.$$($1_osuf),$$(rts_S_SRCS))
234hunk ./rts/ghc.mk 117
235        "$$(RM)" $$(RM_OPTS) $$@
236        "$$(rts_dist_HC)" -shared -dynamic -dynload deploy \
237          -no-auto-link-packages `cat rts/libs.depend` $$(rts_$1_OBJS) -o $$@
238+ifeq "$(darwin_TARGET_OS)" "1"
239+       # Ensure library's install name is correct before anyone links with it.
240+       install_name_tool -id $(ghclibdir)/$$(rts_$1_LIB_NAME) $$@
241+endif
242 else
243 $$(rts_$1_LIB) : $$(rts_$1_OBJS)
244        "$$(RM)" $$(RM_OPTS) $$@
245hunk ./rules/build-package-way.mk 50
246        "$$($1_$2_HC)" $$($1_$2_$3_ALL_OBJS) \
247          `$$($1_$2_$3_MKSTUBOBJS)` \
248          -shared -dynamic -dynload deploy \
249+         -install-name $(ghclibdir)/`basename "$$@" | sed 's/^libHS//;s/[-]ghc.*//'`/`basename "$$@"` \
250          -no-auto-link-packages $$(addprefix -package,$$($1_$2_DEPS)) \
251          -o $$@
252 else
253}
254
255Context:
256
257[emitRetUT: cope with arguments overlapping with results (#3546)
258Simon Marlow <marlowsd@gmail.com>**20090928124455
259 Ignore-this: 899c4be65a7c31d05bf5e79ea423147e
260 
261 In decodeFloat_Int# we have the C-- code:
262 
263     mp_tmp1  = Sp - WDS(1);
264     mp_tmp_w = Sp - WDS(2);
265     
266     /* arguments: F1 = Float# */
267     arg = F1;
268     
269     /* Perform the operation */
270     foreign "C" __decodeFloat_Int(mp_tmp1 "ptr", mp_tmp_w "ptr", arg) [];
271     
272     /* returns: (Int# (mantissa), Int# (exponent)) */
273     RET_NN(W_[mp_tmp1], W_[mp_tmp_w]);
274 
275 Which all looks quite reasonable.  The problem is that RET_NN() might
276 assign the results to the stack (with an unregisterised back end), and
277 in this case the arguments to RET_NN() refer to the same stack slots
278 that will be assigned to.
279 
280 The code generator should do the right thing here, but it wasn't - it
281 was assuming that it could assign the results sequentially.  A 1-line
282 fix to use emitSimultaneously rather than emitStmts (plus comments).
283]
284[fix cut-and-paste bugs in .cmm -> .hc/.s rules
285Simon Marlow <marlowsd@gmail.com>**20090928115139
286 Ignore-this: fe9a834cb94b53c7d4d6dc238c0d348d
287]
288[Add a way to generate tracing events programmatically
289Simon Marlow <marlowsd@gmail.com>**20090925150243
290 Ignore-this: 7f17f3474b06a1fb4a527c62e003e7aa
291 
292 added:
293 
294  primop  TraceEventOp "traceEvent#" GenPrimOp
295    Addr# -> State# s -> State# s
296    { Emits an event via the RTS tracing framework.  The contents
297      of the event is the zero-terminated byte string passed as the first
298      argument.  The event will be emitted either to the .eventlog file,
299      or to stderr, depending on the runtime RTS flags. }
300 
301 and added the required RTS functionality to support it.  Also a bit of
302 refactoring in the RTS tracing code.
303]
304[Under utils/ext-core, update README to mention that ext-core is now on Hackage
305Tim Chevalier <chevalier@alum.wellesley.edu>**20090927230845
306 Ignore-this: 8d8d2cad45c07931f0ed1ccfed002d66
307]
308[Update the OS X package build scripts
309Ian Lynagh <igloo@earth.li>**20090925132151
310 The docs are no longer built and installed separately.
311]
312[Use $topdir in the RTS's package.conf file when doing a relocatable build
313Ian Lynagh <igloo@earth.li>**20090927145309]
314[Fix invoking windres in a directory containing spaces
315Ian Lynagh <igloo@earth.li>**20090927144119]
316[Add support for relocatable builds in the new build system
317Ian Lynagh <igloo@earth.li>**20090927010605]
318[Fix building of the RTS with the NCG under Windows
319Ben.Lippmeier@anu.edu.au**20090926075507]
320[Make some sed more portable: Use \{0,1\} instead of \?
321Ian Lynagh <igloo@earth.li>**20090924171025]
322[teach boot-pkgs about -snapshot tarballs
323Ian Lynagh <igloo@earth.li>**20090921203904]
324[We now tell the linker macosx_version_min is 10.5; trac #3521
325Ian Lynagh <igloo@earth.li>**20090924162450
326 We used to say 10.3, but this gives
327     -rpath can only be used when targeting Mac OS X 10.5 or later
328 when building shared libraries.
329 Patch from mwotton.
330]
331[Errors talking about a left section should refer to the "first" argument
332Ian Lynagh <igloo@earth.li>**20090924124128
333 rather than the "second" argument. Fixes trac #3505.
334]
335[Make count_lines work with the new directory layout
336Ian Lynagh <igloo@earth.li>**20090923182251]
337[Add count_lines back into the repo
338Ian Lynagh <igloo@earth.li>**20090923174945]
339[Remove a haskeline release note that doesn't apply to ghci
340Ian Lynagh <igloo@earth.li>**20090923145130
341 Spotted by Judah.
342]
343[fix warnings
344Simon Marlow <marlowsd@gmail.com>**20090923125059
345 Ignore-this: 6cc0a727c7a55a5bf79b0190c47666de
346]
347[Add erf, erfc, erfff, erfcf (#3536)
348Simon Marlow <marlowsd@gmail.com>**20090923105240
349 Ignore-this: 4c90186bf779bec6b9c72e2989a1876a
350]
351[Various updates/additions
352Simon Marlow <marlowsd@gmail.com>**20090923094647
353 Ignore-this: 7551a50a3f7723f21bc8c17e4c827764
354]
355[Document -package-id, and use the term "package ID" consistently
356Simon Marlow <marlowsd@gmail.com>**20090923094639
357 Ignore-this: 234a5a2840b7a9608c9a5d4bc475080f
358]
359[Make it so that -Ds implies -ls
360Simon Marlow <marlowsd@gmail.com>**20090923105119
361 Ignore-this: 52662a8e69ff4b8e8d9a07e4ca3e181
362]
363[Don't build haddock if HADDOC_DOCS = NO, and disable HADDOC_DOCS if GhcWithInterpreter = NO
364Matthias Kilian <kili@outback.escape.de>**20090920181319
365 Ignore-this: 1268ae31d74e746b09287814ee435f65
366 Haddock uses TcRnDriver.tcRnGetInfo, which is only available if
367 GHCI is built. Set HADDOC_DOCS to NO if GhcWithInterpreter is NO,
368 and disable the haddock build if HADDOC_DOCS = NO.
369]
370[Remove syb; it is no longer needed
371Ian Lynagh <igloo@earth.li>**20090922222308]
372[Remove base3-compat
373Ian Lynagh <igloo@earth.li>**20090922200657]
374[clean some Haddock-generated files
375Simon Marlow <marlowsd@gmail.com>**20090921114210
376 Ignore-this: a2569ec63c9aa6b975345872ba4f2f2a
377]
378[Set version number to 6.13
379Ian Lynagh <igloo@earth.li>**20090922152400]
380[boot-pkgs now automatically works out which libraries are from tarballs
381Ian Lynagh <igloo@earth.li>**20090921165559]
382[remove "touch %_hsc.c" - what was it for?
383Simon Marlow <marlowsd@gmail.com>**20090921155720
384 Ignore-this: 48d5d7ad35e1f2bdcebf4e197d46c609
385]
386[Validate now cleans regardless of whether mk/config.mk exists
387Ian Lynagh <igloo@earth.li>**20090921182636
388 Cleaning should always succeed now
389]
390[Update 6.12.1 release notes
391Ian Lynagh <igloo@earth.li>**20090921182431
392 Add changes that we inherit from haskeline
393]
394[Add sdist to ghc-cabal's bag of tricks
395Ian Lynagh <igloo@earth.li>**20090921162003]
396[Add the --checked-out flag; expand the docs/comments at the top
397Simon Marlow <marlowsd@gmail.com>**20090921145201
398 Ignore-this: f714387e94beb5e03ce2ec5432bca38e
399]
400[move way-related stuff into a separate file
401Simon Marlow <marlowsd@gmail.com>**20090921130024
402 Ignore-this: f75bfb3b60ee92d6add3e35b000da60d
403 This fixes at least one problem: libHSffi-ghc<version>.so wasn't being
404 cleaned, because $(dyn_libsuf) wasn't defined while cleaning.
405]
406[Fix bindist creation
407Ian Lynagh <igloo@earth.li>**20090920183631]
408[Update dependencies
409Ian Lynagh <igloo@earth.li>**20090920152402]
410[Add release notes for 6.12.1
411Ian Lynagh <igloo@earth.li>**20090920141820]
412[remove encoding of output using Haskeline; the IO library does it now (#3398)
413Simon Marlow <marlowsd@gmail.com>**20090918144041
414 Ignore-this: 155e3d4253462af10874882ca2d0b2e
415]
416[ignore unused-import warnings from Haskeline
417Simon Marlow <marlowsd@gmail.com>**20090918142718
418 Ignore-this: 619c5c1d572842b0b19268f87dffe75a
419]
420[Fix the nursery size calculation when -N is used with -H
421Simon Marlow <marlowsd@gmail.com>**20090918134438
422 Ignore-this: 182b62d1c9fc1568fe453e375cb34bc4
423]
424[implement case-on-Word in the byte code generator/interpreter (#2881)
425Simon Marlow <marlowsd@gmail.com>**20090918133204
426 Ignore-this: f8c29e1cdb4fb70e9d9ba6230a5531dc
427]
428[Fix #3439: -debug implies -ticky, and -ticky code links with any RTS
429Simon Marlow <marlowsd@gmail.com>**20090918114631
430 Ignore-this: 2bc27f861f33a5db471539b0d13618b4
431]
432[Fix #3525 - we were still checking for ParsePkgConf.hs, which is gone
433Simon Marlow <marlowsd@gmail.com>**20090918104327
434 Ignore-this: d461a9cf7213c292bf2021edfadf08fc
435]
436[improve the cyclic module error message as per #1856
437Simon Marlow <marlowsd@gmail.com>**20090916205036
438 Ignore-this: 2e679e7f6f44e613717742cc2edee10b
439 
440  - remove the main: stuff
441  - show the filenames
442  - don't clutter the output with imports that aren't involved in
443    the cycle
444]
445[Use CONF_CC_OPTS
446Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090917132706
447 Ignore-this: 3dd1a67c04f8bb8e10c161c7c5549753
448 - Needed to get arch-dependent options, eg, on Snow Leopard
449]
450[fix install on Windows
451Simon Marlow <marlowsd@gmail.com>**20090917121921
452 Ignore-this: e94a2d765b618e3adc9e2af7bfaf8559
453]
454[fix install on Windows
455Simon Marlow <marlowsd@gmail.com>**20090917103350
456 Ignore-this: 513bb0336183cd23535e5d1c6d7e2d58
457]
458[Allow -package-id to override the default package shadowing semantics
459Simon Marlow <marlowsd@gmail.com>**20090917121510
460 Ignore-this: 30d211e9989085f1de40552569b544b9
461 So that Cabal, if it wants, can use a more general algorithm to find a
462 consistent set of packages to use.
463]
464[fix xref
465Simon Marlow <marlowsd@gmail.com>**20090917100544
466 Ignore-this: 1bdfc1c3cd79de5be808e9ec2c8d3542
467]
468[add -eventlog
469Simon Marlow <marlowsd@gmail.com>**20090917100403
470 Ignore-this: bb3f722cb2becfca08a971c927e8ea28
471]
472[document -eventlog and the associated runtime options
473Simon Marlow <marlowsd@gmail.com>**20090916152815
474 Ignore-this: 3efd91b35ac73487d94b887fdd85a04d
475]
476[typo in error message
477Simon Marlow <marlowsd@gmail.com>**20090916142324
478 Ignore-this: 37bda5b3aac4c383e21f1c26ab054d0b
479]
480[only create the .eventlog file if any tracing options are enabled
481Simon Marlow <marlowsd@gmail.com>**20090916142315
482 Ignore-this: 144e9261e008e9e8b641c596d9892fd2
483]
484[Fix build on Mac OS 10.6 (Snow Leopard)
485Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090917044121
486 Ignore-this: 16fbdb0fc58acf3d1497da4a8b3b516e
487 - We have -m32 as machine-dependent option for gcc for a 32 bit build
488 - Like on OpenBSD, SL requires -fno-stack-protector to avoid triggering the
489   stack smashing checks inserted by gcc by default on this platform.
490]
491[Follow the builtin:rts vs. builtin_rts renaming
492Matthias Kilian <kili@outback.escape.de>**20090915204254
493 Ignore-this: d205dfce1a912796c355ba1c1e660d7a
494 
495 This unbreaks make install again.
496 
497]
498[Put context information for warnings in errMsgExtraInfo.
499Thomas Schilling <nominolo@googlemail.com>**20090915150353
500 
501 For type checker warnings, the context information ("In the expression
502 ...") was simply appended to the main message while for proper errors
503 they live in errMsgExtraInfo.  This allows GHC API clients to drop
504 that information if not needed.
505]
506[Update and improve packages documentation
507Simon Marlow <marlowsd@gmail.com>**20090915161024
508 Ignore-this: a0253dbee88fe3fe1a0a87e6e1f67bf
509]
510[FIX #3434 (improve vi tags: add non-exported symbols, kinds, regex tags)
511Peter Hercek <phercek@gmail.com>**20090817184100
512 Ignore-this: 929dd59429be967bb3c9ec4409f6f850
513]
514[Event tracing: put the capability in the block marker, omit it from the events
515Simon Marlow <marlowsd@gmail.com>**20090915111227
516 Ignore-this: 6c1e336e077f50aca1c3e4c094e033a9
517 This makes events smaller and tracing quicker, and speeds up reading
518 and sorting the trace file.
519 
520 HEADS UP: this changes the format of event log files.  Corresponding
521 changes to the ghc-events package are required (and will be pushed
522 soon).  Normally we would make backwards-compatible changes, but this
523 changes the format of every event (to remove the capability) so I'm
524 breaking the rules this time.  This will be the only time we can do
525 this, since the format becomes public in 6.12.1.
526]
527[Add event block markers
528Simon Marlow <marlowsd@gmail.com>**20090913212546
529 Ignore-this: f9de0afe4730560fa79a5a8450e08dcf
530 These indicate the size and time span of a sequence of events in the
531 event log, to make it easier to sort and navigate a large event log.
532]
533[Optimise the code generated at trace points
534Simon Marlow <marlowsd@gmail.com>**20090912213504
535 Ignore-this: eaad8b3a8f204f0cbfed31d7e25672d1
536]
537[Improve the default parallel GC settings, and sanitise the flags (#3340)
538Simon Marlow <marlowsd@gmail.com>**20090915084000
539 Ignore-this: 1aec6ccccb26ed80286de468e72657a1
540 
541 Flags (from +RTS -?):
542 
543   -qg[<n>]  Use parallel GC only for generations >= <n>
544             (default: 0, -qg alone turns off parallel GC)
545   -qb[<n>]  Use load-balancing in the parallel GC only for generations >= <n>
546             (default: 1, -qb alone turns off load-balancing)
547 
548 these are good defaults for most parallel programs.  Single-threaded
549 programs that want to make use of parallel GC will probably want +RTS
550 -qg1 (this is documented).
551 
552 I've also updated the docs.
553]
554[Update the "Hints for using SMP parallelism" section
555Simon Marlow <marlowsd@gmail.com>**20090915083431
556 Ignore-this: e0147b4b025b356e9395b47f085002b7
557 In particular, remove the claim that the GC is single-threaded!
558]
559[Fix collateral damage after distdir-opts.mk was refactored away
560Simon Marlow <marlowsd@gmail.com>**20090914144427
561 Ignore-this: bc47d134ce4cdd47e664bf4cbb28d7bd
562]
563[alow macros to redefine builtin GHCi commands (implements #3084)
564Peter Hercek <phercek@gmail.com>**20090512172459
565 Ignore-this: 62f3aa596e922bd1cb8c4875ca674570
566]
567[Fix build on Windows
568Simon Marlow <marlowsd@gmail.com>**20090914110550
569 Ignore-this: b2aaa2183edfd175d23ea3b0dd8dd2b0
570]
571[Add "ghc-pkg init" command for creating a new package DB
572Simon Marlow <marlowsd@gmail.com>**20090914105823
573 Ignore-this: 1f788fb090f28c0ac005695fb79b3c7f
574]
575[Fix a space leak in the native code gen (again)
576Simon Marlow <marlowsd@gmail.com>**20090911152812
577 Ignore-this: 8c678698faf4f3cfa4be5c923fb4f6a2
578]
579[Use _ rather than : for the builtin package filenames
580Ian Lynagh <igloo@earth.li>**20090913204016
581 Using "builtin:foo" creates a file called "builtin" on Windows
582]
583[Don't register the non-munged stage1 ghc package
584Ian Lynagh <igloo@earth.li>**20090913161945
585 It confuses the build system.
586]
587[Fixes for compiling the HEAD with iteslf
588Ian Lynagh <igloo@earth.li>**20090913142122]
589[Don't try and put HaddockLex and HaddockParse into src dists
590Ian Lynagh <igloo@earth.li>**20090912175050
591 They no longer exist.
592]
593[ParsePkgConf no longer exists, so don't try to put it in source dists
594Ian Lynagh <igloo@earth.li>**20090912173253]
595[Tweak an error message
596Ian Lynagh <igloo@earth.li>**20090912173223]
597[Refactor sdist so that we can see which command is being run
598Ian Lynagh <igloo@earth.li>**20090912171627]
599[Fix the location of the package database in the installed ghc-pkg
600Ian Lynagh <igloo@earth.li>**20090912144046
601 It was using the old filename, rather than the new directory name.
602]
603[More bindist fixes
604Ian Lynagh <igloo@earth.li>**20090912143248]
605[Add includes/ghcautoconf.h and includes/ghcplatform.h to bindists
606Ian Lynagh <igloo@earth.li>**20090912132842]
607[Update the URL in the usage info to point to the current docs location
608Ian Lynagh <igloo@earth.li>**20090911220735]
609[move hschooks.c to ghc/, and enable it
610Simon Marlow <marlowsd@gmail.com>**20090911140702
611 Ignore-this: 97a3cc9b1fa2ce756058c4c708da4dd2
612]
613[Fix #3408: lengthen the idle GC time to 5s for GHC/GHCi.
614Simon Marlow <marlowsd@gmail.com>**20090911124547
615 Ignore-this: 238db99e1fcca0d15a7e5c2a948ac05c
616]
617[Comments and Cmm notes
618simonpj@microsoft.com**20090911133513
619 Ignore-this: 9fd8719a14824dbe2fcb07b655e972cd
620]
621[Remove the old package.conf parser, use read instead (fixed #3410)
622Simon Marlow <marlowsd@gmail.com>**20090911114928
623 Ignore-this: 4f677ceb1f05c55515da6dd5045fa6c5
624 Performance isn't an issue for reading the old-style package.conf
625 files, so we might as well revert to using read and fix a bug at the
626 same time.
627]
628[Fix some makefile logic, and remove the now unused *_USE_BOOT_LIBS vars
629Ian Lynagh <igloo@earth.li>**20090911123135]
630[Change a sed separator character to make it easier to read
631Ian Lynagh <igloo@earth.li>**20090911121827]
632[Use -fno-warn-name-shadowing when compiling Binary.hs
633Ian Lynagh <igloo@earth.li>**20090911114756]
634[Improve optimisation of cost centres
635simonpj@microsoft.com**20090911115630
636 Ignore-this: 9964cfe9d39b12eb10724cd1f3fee6b5
637 
638 This patch fixes test failures for the profiling way for drv001.
639 The problem was that the arity of a function was decreasing during
640 "optimisation" because of interaction with SCC annotations.
641 In particular
642       f = /\a. scc "f" (h x)    -- where h had arity 2
643 and h gets inlined, led to
644       f = /\a. scc "f" let v = scc "f" x in \y. <blah>
645 
646 Two main changes:
647 
648 1.  exprIsTrivial now says True for (scc "f" x)
649     See Note [SCCs are trivial] in CoreUtils
650 
651 2.  The simplifier eliminates nested pushing of the same cost centre:
652        scc "f" (...(scc "f" e)...)
653        ==>  scc "f" (...e...)
654 
655 
656 
657]
658[Fix build with GHC <= 6.10.1
659Simon Marlow <marlowsd@gmail.com>**20090911103142
660 Ignore-this: 7a378cd66edf9ada5ea813051a1a7c30
661]
662[loosen base dependency to allow base-3
663Simon Marlow <marlowsd@gmail.com>**20090911093139
664 Ignore-this: 7b07363b4e9003acbfc310a66d0746e8
665]
666[remove superfluous trailing backslash
667Simon Marlow <marlowsd@gmail.com>**20090911093124
668 Ignore-this: e13b6a5ca640c216db477485b92356d7
669]
670[Work around bug in old bytestring versions by reading the package DB strictly
671Simon Marlow <marlowsd@gmail.com>**20090911093103
672 Ignore-this: 96778e3c876a1ab012888368bbcd9777
673]
674[Add cmm-notes, describing Simon and John's work on Cmm pipeline
675simonpj@microsoft.com**20090911105316
676 Ignore-this: f042ad4d869a667d84de9d432e8d96ff
677]
678[Wibble to error message
679simonpj@microsoft.com**20090911090819
680 Ignore-this: 930f47d57a9d33643dd87f19821df55f
681]
682[add comment: __thread is not supported by gcc on OS X yet
683Simon Marlow <marlowsd@gmail.com>**20090910152146
684 Ignore-this: 44abcd5ece4baeb91c9461f3cb35df52
685]
686[Fix #3320: we forgot to save/restore the GC register variable
687Simon Marlow <marlowsd@gmail.com>**20090910151623
688 Ignore-this: 95fe8e80d1977feca7ba61222a992db7
689]
690[put back F_, just in case the via-C codegen uses it
691Simon Marlow <marlowsd@gmail.com>**20090910124037
692 Ignore-this: 4bbfcf2765422a9c965052120b7643fb
693]
694[remove debugging/testing code that got here by mistake
695Simon Marlow <marlowsd@gmail.com>**20090910122607
696 Ignore-this: 76a733fc1d310fc5bf38820b8d925bf1
697]
698[fix installation of header files (#3451)
699Simon Marlow <marlowsd@gmail.com>**20090910121831
700 Ignore-this: d49dcadc1cbd62d7c593b06888aa3d5b
701]
702[Three improvements to Template Haskell (fixes #3467)
703simonpj@microsoft.com**20090910125848
704 Ignore-this: 40e480334a8cd06d128a845cefd4632a
705 
706 This patch implements three significant improvements to Template Haskell.
707   
708 Declaration-level splices with no "$"
709 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
710 This change simply allows you to omit the "$(...)" wrapper for
711 declaration-level TH splices.  An expression all by itself is
712 not legal, so we now treat it as a TH splice.  Thus you can now
713 say
714        data T = T1 | T2
715        deriveMyStuff ''T
716 
717 where deriveMyStuff :: Name -> Q [Dec]
718 This makes a much nicer interface for clients of libraries that use
719 TH: no scary $(deriveMyStuff ''T).
720 
721 Nested top-level splices
722 ~~~~~~~~~~~~~~~~~~~~~~~~
723 Previously TH would reject this, saying that splices cannot be nested:
724        f x = $(g $(h 'x))
725 But there is no reason for this not to work.  First $(h 'x) is run,
726 yielding code <blah> that is spliced instead of the $(h 'x). Then (g
727 <blah>) is typechecked and run, yielding code that replaces the
728 $(g ...) splice. 
729 
730 So this simply lifts the restriction.
731 
732 Fix Trac #3467: non-top-level type splices
733 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
734 
735 It appears that when I added the ability to splice types in TH
736 programs, I failed to pay attention to non-top-level splices -- that
737 is, splices inside quotatation brackets. 
738 
739 This patch fixes the problem.  I had to modify HsType, so there's a
740 knock-on change to Haddock.
741 
742 Its seems that a lot of lines of code has changed, but almost all the
743 new lines are comments!
744 
745 General tidying up
746 ~~~~~~~~~~~~~~~~~~
747 As a result of thinking all this out I re-jigged the data type ThStage,
748 which had far too many values before.  And I wrote a nice state transition
749 diagram to make it all precise;
750    see Note [Template Haskell state diagram] in TcSplice
751 
752 Lots more refactoring in TcSplice, resulting in significantly less code.
753 (A few more lines, but actually less code -- the rest is comments.)
754 
755 I think the result is significantly cleaner.
756 
757]
758[Refactor the parsing of data type declarations
759simonpj@microsoft.com**20090908192327
760 Ignore-this: ee7969cd804c1901e4cf4f36d832fc2f
761 
762 This is a minor change to the parser that tidies it up a bit,
763 and allows us to parse
764 
765        data T :: *
766         data S :: * -> *
767 
768 just like 
769 
770        data T
771        data S a
772 
773]
774[Remove unused data constructor ITpragma in type Lexer.Token
775simonpj@microsoft.com**20090905171511
776 Ignore-this: a0f80c136477921ca8df3d2853e65e6b
777]
778[Comments in Cmm
779simonpj@microsoft.com**20090910122928
780 Ignore-this: 8a3bdd5a63ebd217ab5c9e02d482974c
781]
782[fix warnings
783Simon Marlow <marlowsd@gmail.com>**20090910111156
784 Ignore-this: b3a5e52a9c35b7ecc796b1efaa855856
785]
786[binary has unused-import warnings
787Simon Marlow <marlowsd@gmail.com>**20090910111115
788 Ignore-this: 31ec6d9a0f2f6d5c463a81d0234f8798
789]
790[Change the representation of the package database
791Simon Marlow <marlowsd@gmail.com>**20090910102703
792 Ignore-this: 7c9b38ded7f753d5bb95743695700dbc
793 
794  - the package DB is a directory containing one file per package
795    instance (#723)
796 
797  - there is a binary cache of the database (#593, #2089)
798 
799  - the binary package is now a boot package
800 
801  - there is a new package, bin-package-db, containing the Binary
802    instance of InstalledPackageInfo for the binary cache.
803 
804 Also included in this patch
805 
806  - Use colour in 'ghc-pkg list' to indicate broken or hidden packages
807   
808    Broken packages are red, hidden packages are
809   
810    Colour support comes from the terminfo package, and is only used when
811     - not --simple-output
812     - stdout is a TTY
813     - the terminal type has colour capability
814 
815  - Fix the bug that 'ghc-pkg list --user' shows everything as broken
816]
817[Improve the user guide section on shared libs
818Duncan Coutts <duncan@well-typed.com>**20090908183241
819 Ignore-this: ee48f925b9e5441be0fb004b774613cd
820 Make it clear that Haskell code to be used by other Haskell code
821 must be built as a package.
822]
823[FIX #711 implement osFreeAllMBlocks for unix
824Austin Seipp <mad.one@gmail.com>**20090910084630
825 Ignore-this: 5c773ab5f7f25350dda33d34b77f89f
826]
827[NO_CLEAN_GMP fixes
828Simon Marlow <marlowsd@gmail.com>**20090909093443
829 Ignore-this: 7d490a47c837f1a002937a2b229d0049
830]
831[Omit visibility pragmas on Windows (fixes warnings/validate failures)
832Simon Marlow <marlowsd@gmail.com>**20090909093217
833 Ignore-this: 14cd79e7cded8c0a353544d272f3b974
834]
835[Comments only, on Cmm data types
836simonpj@microsoft.com**20090910091703
837 Ignore-this: ff152a48718289c8125af052b30f8813
838]
839[Fix up logic to decide whether shared libs are being built or not
840Simon Marlow <marlowsd@gmail.com>**20090909115757
841 Ignore-this: 7709d980f416318eae71e8bae255fa2d
842 
843 Now, adding dyn to $(GhcLibWays) is how shared libs are enabled.
844 Everything else keys off that, rather than testing
845 $(BuildSharedLibs).
846]
847[remove a ToDo that is Done
848Simon Marlow <marlowsd@gmail.com>**20090908154411
849 Ignore-this: 44b2ada6bc9fe2ed33813bd18159d316
850]
851[comment fix
852Simon Marlow <marlowsd@gmail.com>**20090908150351
853 Ignore-this: 65b1708f41cfdc2f633e66940dc85be5
854]
855[refactor *_OPTS settings in the build system; no functional changes
856Simon Marlow <marlowsd@gmail.com>**20090909094408
857 Ignore-this: 34f51913eef30e4f0afc2c199ad1a42f
858]
859[add $(CONF_*_OPTS) for options that come from ./configure (fixes #3426)
860Simon Marlow <marlowsd@gmail.com>**20090908151908
861 Ignore-this: e70ca8071b79d25fc0d2fa45aafb319e
862]
863[Add -package-id, improve package shadowing behaviour and error messages
864Simon Marlow <marlowsd@gmail.com>**20090908140906
865 Ignore-this: 7180370e7ad19a6d632e8e3c9732267c
866 A few changes bundled together here:
867 
868  - Add -package-id flag, like -package but takes an
869    InstalledPackageId as an argument (mainly for Cabal)
870    (docs to follow)
871 
872  - Fix the shadowing behaviour: if we end up with
873    two packages with the same name/version that came from
874    different package databases, then one will shadow the
875    other.  This may mean we have to disable other packages
876    that depended on the now-shadowed package.  Lots of
877    refactoring to ensure that we can get reasonable diagnostics when
878    this happens
879 
880 <command line>: cannot satisfy -package shadowdep:
881     shadowdep-1-XXX is unusable due to missing or recursive dependencies:
882       shadow-1-XXX
883     (use -v for more information)
884]
885[remove --enable-hc-boot-unregisterised (implied by --enable-hc-boot now)
886Simon Marlow <marlowsd@gmail.com>**20090908141919
887 Ignore-this: ee36b12d19c28557ebb2334a87197da2
888 and fix up related cruft
889]
890[fix a warning
891Simon Marlow <marlowsd@gmail.com>**20090908131551
892 Ignore-this: f61240f6e4e4cae7c1272773ef6c6e01
893]
894[fix warnings
895Simon Marlow <marlowsd@gmail.com>**20090908130854
896 Ignore-this: 46db903fb4bc7b5e6be2fe591548f98e
897]
898[fix warnings
899Simon Marlow <marlowsd@gmail.com>**20090908114200
900 Ignore-this: c39be5ba8646bfb3241f02e15ad97683
901]
902[remove Haddock-lexing/parsing/renaming from GHC
903Isaac Dupree <id@isaac.cedarswampstudios.org>**20090826145924
904 Ignore-this: 6cecf43747cd1f50e3d8e21485af781
905]
906[Fix Trac #3403: interaction of CPR and pattern-match failure
907simonpj@microsoft.com**20090908131400
908 Ignore-this: 38bbb145cdc2c814a45122144ef84a4d
909 
910 A fine bug report (#3403) demonstrated that we were losing the tail
911 call property when a complicated pattern match was involved.  After
912 a bit of investigation I discovered that the culprit was the failure
913 join-point introduced by the pattern matcher.  It was a zero-argument
914 thunk, which is not very CPR-friendly, and that interacted badly with
915 CPR worker/wrapper.
916 
917 It's easy to fix, the same way that we fix other join points, by supplying
918 a dummy argument (that is not really passed at runtime.
919 
920]
921[Fix Trac #3468: improve checking for hs-boot interfaces
922simonpj@microsoft.com**20090908130350
923 Ignore-this: df9e84e963b1c69328e020772a481f5e
924 
925 When checking the interface exported by a hs-boot file against the
926 Real Thing, I'd failed to check the kind of a type constructor.  If you
927 get it wrong, the inconsistency leads to all manner of mischief, as
928 'wkahl' reports in #3468.
929 
930 This patch should do the job.
931 
932]
933[Allow TH/annotations to be used with -dynamic
934Simon Marlow <marlowsd@gmail.com>**20090908101644
935 Ignore-this: ba9e132a946e1f7cd56775d4237405f0
936]
937[Fix warnings on 64-bit platforms; fixes validate on x86-64
938Simon Marlow <marlowsd@gmail.com>**20090908092639
939 Ignore-this: 6bf1d21759aa5ac43807f010c9a9908f
940]
941[fix -u flags (after changes for #3310)
942Simon Marlow <marlowsd@gmail.com>**20090903072318
943 Ignore-this: 518e20973adf1136caf866770f5980ed
944]
945[Unify event logging and debug tracing.
946Simon Marlow <marlowsd@gmail.com>**20090829094727
947 Ignore-this: c137a22fb32a7a5b50fe6906b464344e
948 
949   - tracing facilities are now enabled with -DTRACING, and -DDEBUG
950     additionally enables debug-tracing.  -DEVENTLOG has been
951     removed.
952 
953   - -debug now implies -eventlog
954 
955   - events can be printed to stderr instead of being sent to the
956     binary .eventlog file by adding +RTS -v (which is implied by the
957     +RTS -Dx options).
958 
959   - -Dx debug messages can be sent to the binary .eventlog file
960     by adding +RTS -l.  This should help debugging by reducing
961     the impact of debug tracing on execution time.
962 
963   - Various debug messages that duplicated the information in events
964     have been removed.
965]
966[waitForReturnCapability: fix logic bug
967Simon Marlow <marlowsd@gmail.com>**20090831064908
968 Ignore-this: 9a9efaee2ab33fc26a04d075f93424b1
969 The check for whether a Capability was free was inverted, which harmed
970 performance for callbacks.
971]
972[Handle renames from #3310
973Simon Marlow <marlowsd@gmail.com>**20090830153123
974 Ignore-this: 7973f406c726dab27e28b2145dac81dc
975 
976 Also add a panic for resurrecting a thread blocked on an exception,
977 since it should never happen.
978]
979[add RTS_PRIVATE attribute
980Simon Marlow <marlowsd@gmail.com>**20090829171752
981 Ignore-this: 5566c6ecdd4f40c10c4d996856c39113
982]
983[Fix incorrectly hidden RTS symbols
984Simon Marlow <marlowsd@gmail.com>**20090829132814
985 Ignore-this: 6ec9d80873930cfaf05e4ffccce498f6
986]
987[Maintain Task/Capability invariants in performPendingThrowTos
988Simon Marlow <marlowsd@gmail.com>**20090829092607
989 Ignore-this: f33aa00f326155172c30906c7db9ec5b
990 Fixes an ASSERTION failure with concprog001, -threaded -debug, +RTS -N2
991]
992[Declare RTS-private prototypes with __attribute__((visibility("hidden")))
993Simon Marlow <marlowsd@gmail.com>**20090805102159
994 Ignore-this: 7e298c7ecbc1216502463fa05a984d3b
995 This has no effect with static libraries, but when the RTS is in a
996 shared library it does two things:
997 
998  - it prevents the function from being exposed by the shared library
999 
1000  - internal calls to the function can use the faster non-PLT calls,
1001    because the function cannot be overriden at link time.
1002]
1003[Configurable iconv header and library locations
1004Matthias Kilian <kili@outback.escape.de>**20090826155913
1005 Ignore-this: f3ef2490c61fea6f1cfff648422b919b
1006 Should help to fix the build on OpenBSD (together with a corresponding
1007 patch to libraries/base).
1008]
1009[Use -W, not -Werror, for gcc older than 3.4
1010Matthias Kilian <kili@outback.escape.de>**20090826210044
1011 Ignore-this: d2fdfef7c2915f58ebe716986847a22d
1012]
1013[Don't mess up absolute INCLUDE_DIRS
1014Matthias Kilian <kili@outback.escape.de>**20090826153340
1015 Ignore-this: 3b8c2cceee0bcf9397fb803991ce27ab
1016 When there are some absolute include dirs, don't create arguments
1017 like -Ilibraries/base//usr/local/include.
1018 
1019 I need this fix for injecting the iconv include dir (which is
1020 /usr/local/include on OpenBSD) into the build of libraries/base.
1021]
1022[Fix #3461: protect the use of keepCAFs with #ifdef DYNAMIC
1023Simon Marlow <marlowsd@gmail.com>**20090828125802
1024 Ignore-this: 96e2dd803e548ec080d701791eab06c
1025]
1026[fix 'darcs-all rec' (amongst other things)
1027Simon Marlow <marlowsd@gmail.com>**20090827141554
1028 Ignore-this: fb91b85e37c9be9d153f381c27d9d37c
1029]
1030[REDO: Add -r option to darcs-all, and remove push-all (#3375)
1031Simon Marlow <marlowsd@gmail.com>**20090827135717
1032 Ignore-this: 270dbe385afb807c32eaa4b02a3f7d7
1033 
1034 rolling back:
1035 
1036 Mon Aug  3 11:44:13 BST 2009  Simon Marlow <marlowsd@gmail.com>
1037   UNDO: Add -r option to darcs-all, and remove push-all (#3375)
1038   Contributed by: seliopou@gmail.com
1039       
1040   This patch modifies darcs-all to have feature parity with push-all by
1041   recognizing two new options.
1042   
1043       * -i, equivalent to --ignore-failure in push-all
1044       * -r <repo>, specifies the remote repository darcs commands will use
1045   
1046   Some example commands:
1047   
1048   Get the libraries from a repository of your choosing. This is useful
1049   when working with a git mirror:
1050   
1051       $ ./darcs-all -r http://darcs.haskell.org get
1052   
1053   Pull changes. Used to be:
1054   
1055       $ ./push-all --pull http://darcs.haskell.org
1056   
1057   Is now:
1058   
1059       $ ./darcs-all -r http://darcs.haskell.org pull
1060   
1061   Or to use the default remote of the ghc repository:
1062   
1063       $ ./darcs-all pull
1064 
1065     M ./darcs-all -79 +33
1066     A ./push-all
1067]
1068[Add a link to hp2any from the profiling section.
1069Simon Marlow <marlowsd@gmail.com>**20090827114050
1070 Ignore-this: 998f316811cacaa3a9ee6a25aae99e80
1071]
1072[Fix "make install"
1073Ian Lynagh <igloo@earth.li>**20090826155638
1074 We need to change a dependency on
1075     pkg-inplace
1076 to
1077     pkg-$abihash
1078 when installing
1079]
1080["ghc-cabal install" now needs to know where GHC is, to get the ABI hash
1081Ian Lynagh <igloo@earth.li>**20090826133359]
1082[Fix bindist creation
1083Ian Lynagh <igloo@earth.li>**20090826122953
1084 We were running into problems like:
1085     for f in  LICENSE configure config.sub config.guess [...]
1086     make[2]: execvp: /bin/sh: Argument list too long
1087 This patch moves the loop into make, rather than the shell.
1088]
1089[UNDO: fix the inplace runghc (it broke the installed runghc)
1090Simon Marlow <marlowsd@gmail.com>**20090826104937
1091 Ignore-this: 4a9639a93dbe37d81baafcec0029cdcb
1092]
1093[Fix part of #3398: pretty-printing always goes via the I/O library encoding
1094Simon Marlow <marlowsd@gmail.com>**20090826104052
1095 Ignore-this: 7ce68105539ff38f4853de149a43a1a3
1096 That is, unless we're printing in LeftMode, where we bypass encoding
1097 for speed.  This is safe, because LeftMode is used for outputting C or
1098 asm, where everyting is Z-encoded and hence ASCII.
1099 
1100 Error messages and other compiler output containing Unicode will now
1101 appear correctly according to the locale settings.
1102]
1103[Tidy up file headers and copyrights; point to the wiki for docs
1104Simon Marlow <marlowsd@gmail.com>**20090825095047
1105 Ignore-this: d34994b9910fd24ff7498102d2a12648
1106 
1107 I've updated the wiki page about the RTS headers
1108   http://hackage.haskell.org/trac/ghc/wiki/Commentary/SourceTree/Includes
1109 to reflect the new layout and explain some of the rationale.  All the
1110 header files now point to this page.
1111]
1112[Follow changes in Cabal: package -> sourcePackageId
1113Simon Marlow <marlowsd@gmail.com>**20090824160020
1114 Ignore-this: c1f9d41c2ed75cf47842fa04c4b2fac5
1115]
1116[fix an unused-import warning
1117Simon Marlow <marlowsd@gmail.com>**20090824153657
1118 Ignore-this: 35e87617fc289237cfa12133ee9d5dca
1119]
1120[Add unique package identifiers (InstalledPackageId) in the package DB
1121Simon Marlow <marlowsd@gmail.com>**20090820110920
1122 Ignore-this: 5e09becc51e6888ec5186811e7e33d46
1123 See commentary at
1124 http://hackage.haskell.org/trac/ghc/wiki/Commentary/Packages
1125]
1126[Move the standalone-deriving flag test from parser to renamer
1127simonpj@microsoft.com**20090825073324
1128 Ignore-this: 10e3760c5443fc88b0f498ad0a2595ae
1129 
1130 This is just a tiny refactoring.  In general, we're trying to
1131 get rid of parser errors in favour of later, more civlised, errors.
1132 
1133]
1134[Error message wibble
1135simonpj@microsoft.com**20090825073259
1136 Ignore-this: 85257158393634c41057a0849d95490f
1137]
1138[Fix Trac #3406 (albeit not very satisfactorily): scoped type variables
1139simonpj@microsoft.com**20090825073059
1140 Ignore-this: 1509e0565ccd4b6708ac4cf4b2eb451e
1141 
1142 The issue here is this:
1143 
1144   type ItemColID a b = Int  -- Discards a,b
1145 
1146   get :: ItemColID a b -> a -> ItemColID a b
1147   get (x :: ItemColID a b) = x :: ItemColID a b
1148 
1149 The pattern signature for 'x' doesn't actually rigidly bind a,b.
1150 This crashed GHC 6.10 with a 'readFilledBox' panic.  Now we fail
1151 with an erroe message
1152 
1153 With the new outside-in algorithm we'll be able to accept this program.
1154 
1155]
1156[Make FastString thread-safe.
1157Thomas Schilling <nominolo@googlemail.com>**20090824182252
1158   
1159 This is needed both for per-session parallelism and for allowing
1160 multiple concurrent sessions in the same process.  With the help of
1161 atomicModifyIORef and unsafePerformIO it is also quite fast--an MVar
1162 would most likely be slower.  On a full compilation of Cabal's head
1163 branch it was about 1-2 percent slower, but then overall compilation
1164 times varied by about 4 percent, so I think it's worth it.
1165]
1166[Improve docs on -XFlexibleContexts
1167simonpj@microsoft.com**20090824113722
1168 Ignore-this: 16c4b05f52bca250ae6eff59feb08cc4
1169]
1170[fix do-notation warnings
1171Simon Marlow <marlowsd@gmail.com>**20090824080400
1172 Ignore-this: 74e0b085478ec858ce56cc925749e0ea
1173]
1174[Use explicit Word32/Int32 in place of Int in the on-disk .hi file
1175Simon Marlow <marlowsd@gmail.com>**20090821155028
1176 Ignore-this: e48ea5045f9460c347d457ada0e2b0da
1177 For: FastStrings, Names, and Bin values.  This makes .hi files smaller
1178 on 64-bit platforms, while also making the format a bit more robust.
1179]
1180[Fix the interface-file incompatibility crash (#3435)
1181Simon Marlow <marlowsd@gmail.com>**20090821154737
1182 Ignore-this: 5b7b9aca621fd378a7f911c50429c100
1183 
1184 We now have a dummy 32/64-bit field near the beginning of a .hi file
1185 for backward-compatibility reasons; see comments (Note [dummy iface
1186 field]) in BinIface.hs.
1187]
1188[trim Data.Sequence import, in preparation for expanding its API
1189Ross Paterson <ross@soi.city.ac.uk>**20090824080533
1190 Ignore-this: 97f8c3e309c14a132f20c565d33d46a9
1191]
1192[Remove bitrotted IA64 code in Linker.c
1193Ian Lynagh <igloo@earth.li>**20090823151600
1194 It breaks the unregisterised build on IA64.
1195]
1196[Make consIORef atomic.
1197Thomas Schilling <nominolo@googlemail.com>**20090822230937
1198 Ignore-this: c4570e17a21be724b45c574bd25d0330
1199]
1200[Make updates to external package state idempotent.
1201Thomas Schilling <nominolo@googlemail.com>**20090821235355
1202 
1203 Without this, concurrent updates to the EPS could introduce
1204 overlapping instances (even though they came from the same module).
1205]
1206[Fix Trac #3423: missed instantiation for newtype-derived instances
1207simonpj@microsoft.com**20090821210700
1208 Ignore-this: 73fa66b45a9affe5b4e0276551e5861f
1209 
1210 Somehow I'd forgotten to instantiate the coercion that is stored in a
1211 'NewtypeDerived' constructor in an InstInfo.  The necessary code is
1212 in TcInstDcls.tc_inst_decl2.
1213 
1214 The result was ghc: panic! (the 'impossible' happened)
1215    (GHC version 6.10.3 for x86_64-unknown-linux):
1216    No match in record selector Var.tcTyVarDetails
1217 because we were looking at an (uninstantiated) TyVar instead of
1218 an (instantiated) TcTyVar.
1219 
1220]
1221[Put "dl" back in rts/package.conf if HAVE_DL is defined
1222Ian Lynagh <igloo@earth.li>**20090821145423
1223 Fixes linking with -dynamic
1224]
1225[Link CMM objects into dynamic libraries
1226Ian Lynagh <igloo@earth.li>**20090821132809
1227 This fixes linking hello world with -dynamic. I've also added some more
1228 variables, so there is less duplication between the different ways of
1229 linking.
1230]
1231[-fPIC -fvia-C issues a warning and ignores -fvia-C
1232Simon Marlow <marlowsd@gmail.com>**20090821144544
1233 Ignore-this: 2ba1902cf7eec7f149f38cadeac8c245
1234 Also, -fPIC causes an error if the target is registerised and has no
1235 native code generator.
1236]
1237[Use allocateLocal() rather than allocate() in the interpreter
1238Simon Marlow <marlowsd@gmail.com>**20090820152325
1239 Ignore-this: 42cc9250f46d95a945394b82acc76be4
1240 This gives about a 15% performance boost in GHCi for me.  nice!
1241]
1242[Another tiny tidy-up to RnPat
1243simonpj@microsoft.com**20090821100826
1244 Ignore-this: 4290aab233ee1b0fcd3768009950a213
1245]
1246[Fix Trac #3437: strictness of specialised functions
1247simonpj@microsoft.com**20090821095251
1248 Ignore-this: 24345ff251a517e540a9666a78ed8176
1249 
1250 'lilac' helpful pin-pointed a space leak that was due to a specialised
1251 function being insufficiently strict.  Here's the new comment in SpecConstr:
1252 
1253 Note [Transfer strictness]
1254 ~~~~~~~~~~~~~~~~~~~~~~~~~~
1255 We must transfer strictness information from the original function to
1256 the specialised one.  Suppose, for example
1257 
1258   f has strictness     SS
1259         and a RULE     f (a:as) b = f_spec a as b
1260 
1261 Now we want f_spec to have strictess  LLS, otherwise we'll use call-by-need
1262 when calling f_spec instead of call-by-value.  And that can result in
1263 unbounded worsening in space (cf the classic foldl vs foldl')
1264 
1265 See Trac #3437 for a good example.
1266 
1267 The function calcSpecStrictness performs the calculation.
1268 
1269 
1270]
1271[Wibbles to field-label puns
1272simonpj@microsoft.com**20090821090637
1273 Ignore-this: ed6dc679b906b2a928e1b9a6db590108
1274]
1275[Fix library installation; fixes #3374
1276Ian Lynagh <igloo@earth.li>**20090820173707
1277 When configuring packages, enable library profiling and shared libraries
1278 based on the ways in GhcLibWays.
1279]
1280[Escape some $s in makefiles for consistency
1281Ian Lynagh <igloo@earth.li>**20090820165033]
1282[Wibble to RnPat refactoring
1283simonpj@microsoft.com**20090820161520
1284 Ignore-this: 77c328334e088113afb25275f0aca364
1285]
1286[Rollback: use cas() to claim the closure in copyPart(), to match copy_tag()
1287Simon Marlow <marlowsd@gmail.com>**20090820155833
1288 Ignore-this: e62da4d667c15c0dafb2660f4b915b36
1289 
1290 rolling back:
1291 
1292   * use cas() to claim the closure in copyPart(), to match copy_tag()
1293   * rename whitehole_spin to evac_collision, and update it properly
1294 
1295 This introduced a new failure in parallel GC.  I'll rollback for now
1296 until I've fixed it.
1297]
1298[Relax the assumption that all objects fit in a single block (#3424)
1299Simon Marlow <marlowsd@gmail.com>**20090820144308
1300 Ignore-this: 44ec5ed31491241b6f03182c80c0681e
1301 
1302 It is possible for the program to allocate single object larger than a
1303 block, without going through the normal large-object mechanisms that
1304 we have for arrays and threads and so on. 
1305 
1306 The GC was assuming that no object was larger than a block, but #3424
1307 contains a program that breaks the assumption.  This patch removes the
1308 assumption.  The objects in question will still be copied, that is
1309 they don't get the normal large-object treatment, but this case is
1310 unlikely to occur often in practice.
1311 
1312 In the future we may improve things by generating code to allocate
1313 them as large objects in the first place.
1314]
1315[remove a bogus assertion
1316Simon Marlow <marlowsd@gmail.com>**20090820143305
1317 Ignore-this: 1b58b8a73d58257630832d37475795bb
1318]
1319[Restore the GHC version check
1320Simon Marlow <marlowsd@gmail.com>**20090820134234
1321 Ignore-this: a1a0640e985a9eaf78804465276aadcd
1322 I'm not sure what happened here, but the ordering of tests was messed
1323 up, with the result that the GHC version check was being omitted.
1324]
1325[fix the inplace runghc
1326Simon Marlow <marlowsd@gmail.com>**20090820122538
1327 Ignore-this: 54be86fcd9ff96b5a37e77f64bf3c1d9
1328 
1329 It was invoking $(TOP)/inplace/bin/ghc rather than
1330 $(TOP)/inplace/bin/ghc-stage2
1331]
1332[Add a case for IND (and a comment).  Fixes #3424, perhaps only partially.
1333Simon Marlow <marlowsd@gmail.com>**20090820131537
1334 Ignore-this: 75287786343359fdceb0691f88cb4f5f
1335]
1336[Improvements to record puns, wildcards
1337simonpj@microsoft.com**20090820123443
1338 Ignore-this: 2ac26fcc045853dab346280bcc440431
1339 
1340 * Make C { A.a } work with punning, expanding to C { A.a = a }
1341 
1342 * Make it so that, with -fwarn-unused-matches,
1343         f (C {..}) = x
1344   does not complain about the bindings introduced by the "..".
1345 
1346 * Make -XRecordWildCards implies -XDisambiguateRecordFields.
1347 
1348 * Overall refactoring of RnPat, which had become very crufty.
1349   In particular, there is now a monad, CpsRn, private to RnPat,
1350   which deals with the cps-style plumbing.  This is why so many
1351   lines of RnPat have changed.
1352 
1353 * Refactor the treatment of renaming of record fields into two passes
1354        - rnHsRecFields1, used both for patterns and expressions,
1355             which expands puns, wild-cards
1356        - a local renamer in RnPat for fields in patterns
1357        - a local renamer in RnExpr for fields in construction and update
1358   This make it all MUCH easier to understand
1359 
1360 * Improve documentation of record puns, wildcards, and disambiguation
1361 
1362]
1363[Make -dppr-debug print locations in HsSyn
1364simonpj@microsoft.com**20090820123245
1365 Ignore-this: 673f8100c2744e58635e75e6cf585ce5
1366 
1367 Show SrcSpans for Located things might be overkill, but it's sometimes
1368 useful.
1369 
1370 I also added
1371   ppWhen, ppUnless :: Bool -> SDoc -> SDoc
1372 to Outputable
1373 
1374]
1375[Make -dynamic a proper way, so we read the .dyn_hi files
1376Simon Marlow <marlowsd@gmail.com>**20090820121208
1377 Ignore-this: 252d2091ff90041e055efd0d62ebe185
1378 Also, I cleaned up some of the way-related infrastructure, removing
1379 two global variables. 
1380 
1381 There's more that could be done here, but it's a start.  The way flags
1382 probably don't need to be static any more.
1383]
1384[fix warning
1385Simon Marlow <marlowsd@gmail.com>**20090820110532
1386 Ignore-this: ce16d3661b6bc2f0d382f9025c007019
1387]
1388[generalise the type of "on"
1389Simon Marlow <marlowsd@gmail.com>**20090820094516
1390 Ignore-this: 5b789c36663accb7284c26b1bd7e019d
1391]
1392[need to check $(HADDOCK_DOCS) around contents/index generation
1393Simon Marlow <marlowsd@gmail.com>**20090820092220
1394 Ignore-this: ef5352164fd6aac41ba3a1542182d213
1395]
1396[WAY_dyn_LIB_TARGET is not used anywhere; kill it
1397Simon Marlow <marlowsd@gmail.com>**20090819155952
1398 Ignore-this: 36b784db6d85acc2374e781fcd77d10d
1399]
1400[Rolling back: Add a kludge to fix building shared libs
1401Simon Marlow <marlowsd@gmail.com>**20090819145507
1402 Ignore-this: fd2cc70119796be7a0ba62131f7e9ddb
1403]
1404[rename whitehole_spin to evac_collision, and update it properly
1405Simon Marlow <marlowsd@gmail.com>**20090819141518
1406 Ignore-this: c6bad4a99758b7a60749cc769305aa90
1407]
1408[use cas() to claim the closure in copyPart(), to match copy_tag()
1409Simon Marlow <marlowsd@gmail.com>**20090819141106
1410 Ignore-this: 6baad6aa65e640d9dbfd3d18b0f77644
1411 
1412 copyPart() was still using the old WHITEHOLE mechanism for locking the
1413 closure.  I don't think this fixes any actual bugs, but it removes a
1414 gratuitous difference between two functions that should look similar.
1415]
1416[Always yieldCapabilty() when a bound thread blocks
1417Simon Marlow <marlowsd@gmail.com>**20090819130856
1418 Ignore-this: 25303050a3095760972fc550445865e6
1419 Fixes crash in concprog002(threaded2_qw), and possibly other problems
1420]
1421[FIX #2767 & original problem of #3208
1422Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090820072608
1423 Ignore-this: cb8326cf885c2da0b497ef10f8fed942
1424]
1425[Improve the "Stack space overflow" error; fixes trac #3296
1426Ian Lynagh <igloo@earth.li>**20090819202112]
1427[Detect C finalizer callbacks in rts_lock() instead of schedule()
1428Simon Marlow <marlowsd@gmail.com>**20090819123208
1429 Ignore-this: 522b05d928b711ee3473539c9db421b4
1430 Otherwise, finalizer callbacks cause a deadlock in the threaded RTS
1431 (including GHCi)
1432]
1433[Bump Happy requirement from 1.15 to 1.16
1434Simon Marlow <marlowsd@gmail.com>**20090819093929
1435 Ignore-this: d550a42d284b8585faf546231046134b
1436 Now that the haskell98 dependency of GHC has been removed, the
1437 Happy-generated parsers must import Data.Array rather than Array, and
1438 that change was made in Happy 1.16.
1439]
1440[Restore the entry field in StgInfoTable when !defined(TABLES_NEXT_TO_CODE)
1441Simon Marlow <marlowsd@gmail.com>**20090819113550
1442 Ignore-this: 491038d9d526888f31e12e7349024e37
1443 Somehow this got lost, probably in the recent RTS tidy-up. 
1444 Fixes segfaults in unregisterised compilation.
1445]
1446[Fix warnings
1447Ian Lynagh <igloo@earth.li>**20090819125440]
1448[Put a newtype wrapper around ModuleEnv
1449Ian Lynagh <igloo@earth.li>**20090818192903]
1450[Make the thr_dyn RTS ways optional on GhcUnregisterised
1451Simon Marlow <marlowsd@gmail.com>**20090819095538
1452 Ignore-this: 7bbeddde0fcd7f2030087f3292416492
1453 
1454 Fixes this failure in the unreigsterised build:
1455   /usr/bin/ld: cannot find -lHSrts_thr
1456]
1457[fix an include
1458Simon Marlow <marlowsd@gmail.com>**20090819095237
1459 Ignore-this: d2988008e40589f615e56f92df01c19b
1460]
1461[remove some redundant declarations
1462Simon Marlow <marlowsd@gmail.com>**20090819094338
1463 Ignore-this: ce62ec28b40d00f6e8b072807b2f7591
1464]
1465[Remove the lock around NameCache for readBinIface.
1466Thomas Schilling <nominolo@googlemail.com>**20090818213243
1467 
1468 Turns out using atomic update instead of a full-blown lock was easier
1469 than I thought.  It should also be safe in the case where we
1470 concurrently read the same interface file.  Whichever thread loses the
1471 race will simply find that all of the names are already defined and
1472 will have no effect on the name cache.
1473]
1474[Fix #3429: a tricky race condition
1475Simon Marlow <marlowsd@gmail.com>**20090818112942
1476 Ignore-this: c6f47c6bd3b12ecbd7aa3cfcd25bf9a7
1477 
1478 There were two bugs, and had it not been for the first one we would
1479 not have noticed the second one, so this is quite fortunate.
1480 
1481 The first bug is in stg_unblockAsyncExceptionszh_ret, when we found a
1482 pending exception to raise, but don't end up raising it, there was a
1483 missing adjustment to the stack pointer. 
1484 
1485 The second bug was that this case was actually happening at all: it
1486 ought to be incredibly rare, because the pending exception thread
1487 would have to be killed between us finding it and attempting to raise
1488 the exception.  This made me suspicious.  It turned out that there was
1489 a race condition on the tso->flags field; multiple threads were
1490 updating this bitmask field non-atomically (one of the bits is the
1491 dirty-bit for the generational GC).  The fix is to move the dirty bit
1492 into its own field of the TSO, making the TSO one word larger (sadly).
1493]
1494[comment fixes (install.mk.in, not dirs.mk.in)
1495Simon Marlow <marlowsd@gmail.com>**20090817094724
1496 Ignore-this: 1ca40b832e7cec7a560762a40daa8d4f
1497]
1498[Fix configure summary: --enable-shared has gone
1499Simon Marlow <marlowsd@gmail.com>**20090817091210
1500 Ignore-this: 97dce2f98f13c00fd4475f78f3c04e84
1501]
1502[comment fix
1503Simon Marlow <marlowsd@gmail.com>**20090817091105
1504 Ignore-this: 880c1948e6f1cfc2841c20a9f93232c1
1505]
1506[remove unused file
1507Simon Marlow <marlowsd@gmail.com>**20090806112859
1508 Ignore-this: b0aea4ddcd651e04806a4d2a0f250c3d
1509]
1510[Fix unregisterised build
1511Simon Marlow <marlowsd@gmail.com>**20090806095417
1512 Ignore-this: 93ad8435aa581fd767fb639b10c1ed4a
1513]
1514[FIX #3405
1515Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090818121425
1516 Ignore-this: 6ca07059605e9cdf5ab5aa5bb8cc4455
1517]
1518[Make the dynamic linker thread-safe.
1519Thomas Schilling <nominolo@googlemail.com>**20090817142352
1520   
1521 The current implementation is rather pessimistic.  The persistent
1522 linker state is now an MVar and all exported Linker functions are
1523 wrapped in modifyMVar calls.  This is serves as a big lock around all
1524 linker functions.
1525 
1526 There might be a chance for more concurrency in a few places. E.g.,
1527 extending the closure environment and loading packages might be
1528 independent in some cases.  But for now it's better to be on the safe
1529 side.
1530]
1531[Make access to NameCache atomic.  Sometimes needs a lock.
1532Thomas Schilling <nominolo@googlemail.com>**20090817004819
1533 
1534 'readBinIface' updates the name cache in a way that is hard to use
1535 with atomicModifyIORef, so this patch introduces a lock for this case.
1536 All other updates use atomicModifyIORef.
1537 
1538 Having a single lock is quite pessimistic, so it remains to be seen
1539 whether this will become a problem.  In principle we only need to make
1540 sure that we do not load the same file concurrently (or that it's
1541 idempotent).  In practice we also need to ensure that concurrent reads
1542 do not cancel each other out (since the new NameCache may be based on
1543 an outdated version).
1544]
1545[Make updates to the Finder caches atomic.  Well, almost.
1546Thomas Schilling <nominolo@googlemail.com>**20090816231920
1547 
1548 Flushing and uncaching a single module is not completely atomic since
1549 both caches a cleared separately.  However, flushing is only done when
1550 changing the working directory which shouldn't be done concurrently to
1551 other threads.  Uncaching is only done in 'summariseModule' which
1552 requires some more work to become thread-safe anyway.
1553]
1554[Make updates to the external package state atomic.
1555Thomas Schilling <nominolo@googlemail.com>**20090816231316
1556 Ignore-this: a700ff0c6725264941d6a5458ce5dade
1557]
1558[Minor documentation fixes.
1559Thomas Schilling <nominolo@googlemail.com>**20090722231342]
1560[bindist fix
1561Ian Lynagh <igloo@earth.li>**20090816200326]
1562[Build fixes
1563Ian Lynagh <igloo@earth.li>**20090816190043]
1564[Remove the old platform code from the bindist configure.ac
1565Ian Lynagh <igloo@earth.li>**20090814225431]
1566[Make our install variables etc compliant with GNU standards; fixes #1924
1567Ian Lynagh <igloo@earth.li>**20090814224549]
1568[Improve fix to Trac #3007
1569simonpj@microsoft.com**20090814110214
1570 Ignore-this: ba7d9b91b80f66aa5ece93dcd4ca4bab
1571 
1572 This patch tides up Ian's fix a little. In particular, if if you
1573 {-# SOURCE #-} import a module from a different package, you now
1574 get a much more civlised error message.
1575 
1576]
1577[Only look up whether a module's SOURCE-imported if it's in the current package
1578Ian Lynagh <igloo@earth.li>**20090813162435
1579 Suppose we import anotherPackage:M, which exports things from
1580 anotherPackage:Internal. Then GHC will want to read
1581 anotherPackage:Internal.hi.
1582 
1583 However, if we have also SOURCE-imported thisPackage:Internal then
1584 we don't want GHC to try to read anotherPackage:Internal.hi-boot
1585 instead.
1586 
1587 The mapping that tells us whether a module is SOURCE-imported uses just
1588 the module name for the key, so we have to check the package ID before
1589 looking it up.
1590 
1591 Fixes #3007.
1592]
1593[Fix Trac #3409: type synonyms that discard their arguments
1594simonpj@microsoft.com**20090813161154
1595 Ignore-this: d2ab9292c281323280fc74e04a9d29dd
1596 
1597 Type synonyms that don't mention one of their type parameters on the
1598 RHS are a pain in the neck.  This patch fixes a long-standing bug (that
1599 simply has not appeared before) in that exprType could return a type
1600 mentioning an existentially-quantified variable (in one of those ignored
1601 argument positions).
1602 
1603 See CoreUtils Note [Existential variables and silly type synonyms]
1604 
1605 The fix is not entirely beautiful, but it works, and is very localised.
1606 
1607]
1608[Add support for multi-line deprecated pragmas; trac #3303
1609Ian Lynagh <igloo@earth.li>**20090812185912]
1610[Fix a sanity check; fixes #3089
1611Ian Lynagh <igloo@earth.li>**20090812133817]
1612[Skip "Cabal check" for certain packages that we know will fail
1613Ian Lynagh <igloo@earth.li>**20090811220146]
1614[Fix "Cabal check" warnings
1615Ian Lynagh <igloo@earth.li>**20090811215839]
1616[Check Cabal packages when validating
1617Ian Lynagh <igloo@earth.li>**20090811212559
1618 This checks that hackage would accept the packages.
1619 Currently warnings are printed, but don't result in failure.
1620]
1621[Include a pointer to GHC.Exts in the generated GHC.Prim docs
1622Ian Lynagh <igloo@earth.li>**20090811145300]
1623[Refactor, and improve error messages (cf Trac #3395)
1624simonpj@microsoft.com**20090811143655
1625 Ignore-this: e7205f5bcf8408ff791ba19156e48461
1626 
1627 The Convert stuff should not panic if the programmer hands over an
1628 invalid TH term; instead it should give a graceful error message.
1629 Largely this had been done, but not for do-blocks, so this patch
1630 fixes that problem.
1631 
1632 Moreover, I did some refactoring and tidying up, which is why
1633 so many lines of code have changed
1634 
1635]
1636[Fix Trac #3421: a typo in TysPrim
1637simonpj@microsoft.com**20090810164320
1638 Ignore-this: 67af95909862d672c6eb738c52458873
1639 
1640 This is just a blatant typo, where Any1 :: *->* was getting mixed
1641 up with Any :: *.
1642 
1643]
1644[Improve the recent changes to overlap-checking for view patters
1645simonpj@microsoft.com**20090810141158
1646 Ignore-this: 8b97dfef44aa9951c31587a884ec92f
1647 
1648 The previous patch simply gave up for view patterns; this version
1649 instead treats them like n+k patterns and gives signficantly better
1650 results.
1651 
1652 Less code, too.
1653 
1654]
1655[Turn group into a special_id when TransformListComp is on
1656Max Bolingbroke <batterseapower@hotmail.com>**20090717224903
1657 Ignore-this: eabef2f2044ee6cc6bc876529f4044ca
1658]
1659[Make Constants shareable with the base package
1660Ian Lynagh <igloo@earth.li>**20090809180701]
1661[Minor refactoring
1662Ian Lynagh <igloo@earth.li>**20090809154258]
1663[FIX #2395 (ViewPatterns trigger bad Check errors)
1664Alexander Dunlap <alexander.dunlap@gmail.com>**20090807184841
1665 Ignore-this: af83dc1d93b735bd89d5f9dcb2f5ca6b
1666]
1667[Pass -m32 to gcc on i386 and ppc OS X
1668Ian Lynagh <igloo@earth.li>**20090808222537
1669 This makes GHC work even if you are actually running it in 64bit mode,
1670 e.g. on OS X 10.6 Snow.
1671]
1672[Fix bindist creation
1673Ian Lynagh <igloo@earth.li>**20090808184407
1674 This is a bit kludgy. We've hit the maximum number of arguments you can
1675 have in the for loop for adding files to the bindist list, so this just
1676 splits the list in 2.
1677]
1678[Put the library haddock docs in the html subdirectory of docdir
1679Ian Lynagh <igloo@earth.li>**20090808175756]
1680[Install the main doc index page, and also put it in bindists
1681Ian Lynagh <igloo@earth.li>**20090808112034]
1682[FIX BUILD: Remove harmful dnls and identifier typo in aclocal.m4
1683Alexander Dunlap <alexander.dunlap@gmail.com>**20090801012335
1684 Ignore-this: 825b21e13d4b3f04fab91bf07f4e693b
1685]
1686[Fix the build on OS X
1687Ian Lynagh <igloo@earth.li>**20090807152151]
1688[Add -r option to darcs-all, and remove push-all (#3375)
1689Simon Marlow <marlowsd@gmail.com>*-20090803104413
1690 Ignore-this: 6871c15294113898902be90210d9a7a9
1691 Contributed by: seliopou@gmail.com
1692     
1693 This patch modifies darcs-all to have feature parity with push-all by
1694 recognizing two new options.
1695 
1696     * -i, equivalent to --ignore-failure in push-all
1697     * -r <repo>, specifies the remote repository darcs commands will use
1698 
1699 Some example commands:
1700 
1701 Get the libraries from a repository of your choosing. This is useful
1702 when working with a git mirror:
1703 
1704     $ ./darcs-all -r http://darcs.haskell.org get
1705 
1706 Pull changes. Used to be:
1707 
1708     $ ./push-all --pull http://darcs.haskell.org
1709 
1710 Is now:
1711 
1712     $ ./darcs-all -r http://darcs.haskell.org pull
1713 
1714 Or to use the default remote of the ghc repository:
1715 
1716     $ ./darcs-all pull
1717]
1718[Add a kludge to fix building shared libs
1719Ian Lynagh <igloo@earth.li>**20090807130731
1720 The .dyn_hi files currently depend on the .dyn_hi files of modules that
1721 they import. But they actually want the .hi files of modules from
1722 another package.This we make the .dyn_hi files depend on the .hi files
1723 so we are sure that they exist and are up-to-date.
1724]
1725[Leave dyn in GhcLibWays when validating
1726Ian Lynagh <igloo@earth.li>**20090807005445]
1727[Build shared library support by default on platforms that support it
1728Ian Lynagh <igloo@earth.li>**20090806164320]
1729[Update the libffi filenames to follow the new version number
1730Ian Lynagh <igloo@earth.li>**20090806141359
1731 Stops make going into an infinite rebuilding loop
1732]
1733[Fix ticky build
1734Simon Marlow <marlowsd@gmail.com>**20090806093021
1735 Ignore-this: dbabf96061763e3a6cb7259e3ea71bed
1736]
1737[add #include <sys/types.h> (hopefully fixes OS X build)
1738Simon Marlow <marlowsd@gmail.com>**20090806081747
1739 Ignore-this: 82d02b32ec5f7ad1966729402a6610
1740]
1741[profiling build fix
1742Simon Marlow <marlowsd@gmail.com>**20090805102217
1743 Ignore-this: 610a09b10b9f326e392f96d92f0fcb20
1744]
1745[profiling build fixes
1746Simon Marlow <marlowsd@gmail.com>**20090805093539
1747 Ignore-this: 90015383cdb908227508363b28de76e4
1748]
1749[#include fix
1750Simon Marlow <marlowsd@gmail.com>**20090805092537
1751 Ignore-this: f48f53a20e0ad367d78ecdd675b99b7c
1752]
1753[use C99-style array initialisers
1754Simon Marlow <marlowsd@gmail.com>**20090803214545
1755 Ignore-this: 87a2adbaf9495d8ee9b9191dd863dfa7
1756]
1757[use C99-style array initialisers
1758Simon Marlow <marlowsd@gmail.com>**20090803210948
1759 Ignore-this: fadcc60df270797beec7dcc4dca5da04
1760]
1761[move termios prototypes into a public header
1762Simon Marlow <marlowsd@gmail.com>**20090803210304
1763 Ignore-this: ef87e8e25aac38ba4b92df4f0078d9cc
1764]
1765[move StgEntCounter type into its own header
1766Simon Marlow <marlowsd@gmail.com>**20090803210229
1767 Ignore-this: 6f9896a3e575e347ca9c89108d12469e
1768]
1769[Common up two closure type -> string tables
1770Simon Marlow <marlowsd@gmail.com>**20090803203252
1771 Ignore-this: e4a07b24c945a5181339ce769a178c33
1772 Also, use C99-style array initialisers
1773]
1774[Rename primops from foozh_fast to stg_foozh
1775Simon Marlow <marlowsd@gmail.com>**20090803202940
1776 Ignore-this: eb6022a346e27ad8e19b1be307d4618e
1777 For consistency with other RTS exported symbols
1778]
1779[remove the GUM closure types
1780Simon Marlow <marlowsd@gmail.com>**20090803202151
1781 Ignore-this: 871ab05276a311af7330c38a49e415f0
1782]
1783[use C99-style array initialisers
1784Simon Marlow <marlowsd@gmail.com>**20090803201148
1785 Ignore-this: 3490e28f536bfb424510628b0d75d4a7
1786]
1787[Remove final bits of the old .NET support
1788Simon Marlow <marlowsd@gmail.com>**20090803195935
1789 Ignore-this: a02948975e17219512910d530f2faab2
1790]
1791[fast make omits all GHC stages
1792Simon Marlow <marlowsd@gmail.com>**20090802190752
1793 Ignore-this: 8462306d70cbb95df532e50caec3d20f
1794]
1795[fast make omits dependencies in ghc/ too
1796Simon Marlow <marlowsd@gmail.com>**20090802190733
1797 Ignore-this: 5f622f40ce8ce604573ee9867047ce0a
1798]
1799[remove unnecessary -#include options
1800Simon Marlow <marlowsd@gmail.com>**20090802190651
1801 Ignore-this: 4e6765f51914cbc258f9b5e75c86fd83
1802]
1803[mention that INCLUDE pragmas are accepted, but ignored
1804Simon Marlow <marlowsd@gmail.com>**20090802190614
1805 Ignore-this: 533952df3b9c4350b1d2a19bda40f324
1806]
1807[Deprecate the -#include flag
1808Simon Marlow <marlowsd@gmail.com>**20090802190535
1809 Ignore-this: 851c0c0d791af34eac7578b59affcf79
1810]
1811[remove docuumentation for -#include option
1812Simon Marlow <marlowsd@gmail.com>**20090801222118
1813 Ignore-this: 7b8a03145a2b767e6f71cf768a2e97
1814]
1815[fix off-by-one in memory allocation
1816Simon Marlow <marlowsd@gmail.com>**20090804092115
1817 Ignore-this: a92a5e27d1acd27706b96fff701af0a2
1818]
1819[Windows build fix
1820Simon Marlow <marlowsd@gmail.com>**20090803150533
1821 Ignore-this: 425a5572d84152f5bf98890030ed2b34
1822]
1823[Windows build fixes
1824Simon Marlow <marlowsd@gmail.com>**20090803142346
1825 Ignore-this: e1ede00e0ecb223ce222767c29f92063
1826]
1827[move gc_alloc_block to make it visible on 32-bit
1828Simon Marlow <marlowsd@gmail.com>**20090803132847
1829 Ignore-this: 1859f0a8e527a37012587ae385f2c4f4
1830]
1831[Windows build fixes
1832Simon Marlow <marlowsd@gmail.com>**20090803131933
1833 Ignore-this: 9a381956cbe00a3be1487d68ee70f67f
1834]
1835[x86_64 warning fix
1836Simon Marlow <marlowsd@gmail.com>**20090803120415
1837 Ignore-this: 2f5484f0285849f090cedc2e24cae161
1838]
1839[x86_64 warning fixes
1840Simon Marlow <marlowsd@gmail.com>**20090803115955
1841 Ignore-this: 7a0a2a5e98441b1bc1d40848e9265891
1842]
1843[x86_64 build fix: declare gc_alloc_block_sync
1844Simon Marlow <marlowsd@gmail.com>**20090803113603
1845 Ignore-this: c719572e261edd98f9b7fadf43cf7616
1846]
1847[RTS tidyup sweep, first phase
1848Simon Marlow <marlowsd@gmail.com>**20090802213204
1849 Ignore-this: 1f7aabac4d5f9d32f6d91f1ccb1a80a4
1850 
1851 The first phase of this tidyup is focussed on the header files, and in
1852 particular making sure we are exposinng publicly exactly what we need
1853 to, and no more.
1854 
1855  - Rts.h now includes everything that the RTS exposes publicly,
1856    rather than a random subset of it.
1857 
1858  - Most of the public header files have moved into subdirectories, and
1859    many of them have been renamed.  But clients should not need to
1860    include any of the other headers directly, just #include the main
1861    public headers: Rts.h, HsFFI.h, RtsAPI.h.
1862 
1863  - All the headers needed for via-C compilation have moved into the
1864    stg subdirectory, which is self-contained.  Most of the headers for
1865    the rest of the RTS APIs have moved into the rts subdirectory.
1866 
1867  - I left MachDeps.h where it is, because it is so widely used in
1868    Haskell code.
1869 
1870  - I left a deprecated stub for RtsFlags.h in place.  The flag
1871    structures are now exposed by Rts.h.
1872 
1873  - Various internal APIs are no longer exposed by public header files.
1874 
1875  - Various bits of dead code and declarations have been removed
1876 
1877  - More gcc warnings are turned on, and the RTS code is more
1878    warning-clean.
1879 
1880  - More source files #include "PosixSource.h", and hence only use
1881    standard POSIX (1003.1c-1995) interfaces.
1882 
1883 There is a lot more tidying up still to do, this is just the first
1884 pass.  I also intend to standardise the names for external RTS APIs
1885 (e.g use the rts_ prefix consistently), and declare the internal APIs
1886 as hidden for shared libraries.
1887]
1888[replace sparc-specific Int64 code with calls to platform-independent macros
1889Simon Marlow <marlowsd@gmail.com>**20090727215103
1890 Ignore-this: 4f65892caeb42f8f58724883cc6097eb
1891]
1892[remove old incarnation of .NET support
1893Simon Marlow <marlowsd@gmail.com>**20090628211147
1894 Ignore-this: b8e0e316e371b91e676cacf08ed8e1c3
1895]
1896[Windows build fix
1897Simon Marlow <marlowsd@gmail.com>**20090803144931
1898 Ignore-this: c066b5b75e58f3c4389fc199f700dce5
1899]
1900[rts_stop_on_exception is a C int, not a W_
1901Simon Marlow <marlowsd@gmail.com>**20090803124916
1902 Ignore-this: d0432287956e7291a503a554424d6897
1903 amazing this hasn't caused any problems before now
1904]
1905[Fix #3412: the worker of an Id might not be a local Id
1906Simon Marlow <marlowsd@gmail.com>**20090803112803
1907 Ignore-this: c433025fd02c997a05555f5c7e6a6a7b
1908]
1909[Add -r option to darcs-all, and remove push-all (#3375)
1910Simon Marlow <marlowsd@gmail.com>**20090803104413
1911 Ignore-this: 6871c15294113898902be90210d9a7a9
1912 Contributed by: seliopou@gmail.com
1913     
1914 This patch modifies darcs-all to have feature parity with push-all by
1915 recognizing two new options.
1916 
1917     * -i, equivalent to --ignore-failure in push-all
1918     * -r <repo>, specifies the remote repository darcs commands will use
1919 
1920 Some example commands:
1921 
1922 Get the libraries from a repository of your choosing. This is useful
1923 when working with a git mirror:
1924 
1925     $ ./darcs-all -r http://darcs.haskell.org get
1926 
1927 Pull changes. Used to be:
1928 
1929     $ ./push-all --pull http://darcs.haskell.org
1930 
1931 Is now:
1932 
1933     $ ./darcs-all -r http://darcs.haskell.org pull
1934 
1935 Or to use the default remote of the ghc repository:
1936 
1937     $ ./darcs-all pull
1938]
1939[remove dead code
1940Simon Marlow <marlowsd@gmail.com>**20090620214113
1941 Ignore-this: 6da2bda8efd2dc63c8931243ab7dec0a
1942]
1943[fix warnings
1944Simon Marlow <marlowsd@gmail.com>**20090729134348
1945 Ignore-this: 98128ac0b78d861439ebf807af1ca417
1946]
1947[Implement "ghc --abi-hash M1 M2 ..."
1948Simon Marlow <marlowsd@gmail.com>**20090729132125
1949 Ignore-this: d0a71b2fadefdfdefa6d287d28bad40f
1950 This prints a combined hash of the ABIs exposed by the modules listed
1951 on the command line.  It will be used by Cabal for generating a
1952 package Id based on the actual ABI of a package.
1953]
1954[Clean GMP properly; fixes #3411
1955Ian Lynagh <igloo@earth.li>**20090802195759]
1956[Fix permissions when installing
1957Ian Lynagh <igloo@earth.li>**20090802161237]
1958[Fix creation of library doc index, and put the library docs in bindists
1959Ian Lynagh <igloo@earth.li>**20090802114202]
1960[Remove a TODO item that's been done
1961Ian Lynagh <igloo@earth.li>**20090802103944]
1962[Add a publish-docs rule
1963Ian Lynagh <igloo@earth.li>**20090801224155]
1964[Add docs to bindists
1965Ian Lynagh <igloo@earth.li>**20090801222551]
1966[Fix "make show" in a bindist
1967Ian Lynagh <igloo@earth.li>**20090801212604]
1968[Make the new build system install the documentation
1969Ian Lynagh <igloo@earth.li>**20090801204624]
1970[whitespace tweaks in rules/docbook.mk
1971Ian Lynagh <igloo@earth.li>**20090801195221]
1972[Fix configure when alex/happy are installed to a directory containing spaces
1973Ian Lynagh <igloo@earth.li>**20090801182817]
1974[Allow more than 64k instructions in a BCO; fixes #789
1975Ian Lynagh <igloo@earth.li>**20090801153203]
1976[If ghci runs out of labels, panic
1977Ian Lynagh <igloo@earth.li>**20090801132829]
1978[Fix the 64k insns overflow check in ghci, and add more checks
1979Ian Lynagh <igloo@earth.li>**20090801130014]
1980[Fix cleaning the integer package
1981Ian Lynagh <igloo@earth.li>**20090730143129]
1982[Fix warnings when building with the HEAD
1983Ian Lynagh <igloo@earth.li>**20090730143031]
1984[Remove some redundant fromIntegral's
1985Ian Lynagh <igloo@earth.li>**20090730105532]
1986[Fix space problems in ghci
1987Ian Lynagh <igloo@earth.li>**20090730105351
1988 We were making arrays with range (0, n-1) which is bad if n == 0 now
1989 that we are using Word types.
1990]
1991[Make the types we use when creating GHCi bytecode better match reality
1992Ian Lynagh <igloo@earth.li>**20090729130911
1993 We were keeping things as Int, and then converting them to Word16 at
1994 the last minute, when really they ought to have been Word16 all along.
1995]
1996[Add an (Outputable Word16) instance
1997Ian Lynagh <igloo@earth.li>**20090728134436]
1998[Fix whitespace in ByteCodeAsm.lhs
1999Ian Lynagh <igloo@earth.li>**20090728123444]
2000[Add CHECK(p), like ASSERT(p) but works even when !defined(DEBUG)
2001Simon Marlow <marlowsd@gmail.com>**20090729075433
2002 Ignore-this: a723f456e4b1eaeaa617a675da276aa2
2003 For inexpensive assertions
2004]
2005[enable the x86-specific versions of atomic_inc()/atomic_dec()
2006Simon Marlow <marlowsd@gmail.com>**20090729075307
2007 Ignore-this: a271b7ade5502ec4d8444aac19f4b4c3
2008]
2009[fix warning
2010Simon Marlow <marlowsd@gmail.com>**20090728103855
2011 Ignore-this: ee626aa5de0a2aed8f44ae1131cc341d
2012]
2013[fix warning
2014Simon Marlow <marlowsd@gmail.com>**20090728102707
2015 Ignore-this: ad4f07a163921d17d242a9452b4bb578
2016]
2017[fix a warning
2018Simon Marlow <marlowsd@gmail.com>**20090728101731
2019 Ignore-this: 73ead0a0004723757c0a51b56681c991
2020]
2021[Be a bit more sensible about choosing external OccNames
2022Simon Marlow <marlowsd@gmail.com>**20090728100434
2023 Ignore-this: 4adcd661e76440deb2b4ab498ebd2d1e
2024 
2025 Instead of chr_$wchr, we now just get $wchr.  In general, when an
2026 OccName is system-generated, we leave it out of the final external
2027 name, preferring to use the name of the exported parent instead (which
2028 is necessarily a user-written name).
2029 
2030 Names should be no less deterministic, but should be shorter and more
2031 readable.
2032]
2033[Remove old 'foreign import dotnet' code
2034Simon Marlow <marlowsd@gmail.com>**20090727144524
2035 Ignore-this: 821ebea2c3897415195318f107421472
2036 It still lives in darcs, if anyone wants to revive it sometime.
2037]
2038[remove a couple of ToDos
2039Simon Marlow <marlowsd@gmail.com>**20090727094719
2040 Ignore-this: ef00fc481821dff4381ba9efcd792708
2041]
2042[buildinfo files need a $$(wildcard)
2043Simon Marlow <marlowsd@gmail.com>**20090727091012
2044 Ignore-this: b4c3201dfa81fef32ee254dd9c955b2d
2045]
2046[Slight tweak to avoid overflowing the command-line size in bindist
2047Simon Marlow <marlowsd@gmail.com>**20090727090946
2048 Ignore-this: 1e2ff207d03fed08576ac59f0b46c08c
2049 Not a real fix: if this bites us again we'll have to rethink
2050]
2051[avoid (benign) error about overriding rules for binary-dist
2052Simon Marlow <marlowsd@gmail.com>**20090727090903
2053 Ignore-this: ffb7f7bf1290f2faf96ac177f76a1422
2054]
2055[Give a better error message for hidden packages when building Cabal package
2056Ian Lynagh <igloo@earth.li>**20090726194915
2057 Fixes #3168
2058]
2059[Add a -fbuilding-cabal-package flag
2060Ian Lynagh <igloo@earth.li>**20090726181934
2061 This means GHC knows whether it's building a Cabal package, or just
2062 Haskell sources. For example, it may wish to give different error
2063 messages when building a Cabal package.
2064]
2065[Add an extension to disable n+k patterns
2066Ian Lynagh <igloo@earth.li>**20090725134703]
2067[Fix a warning on Windows
2068Ian Lynagh <igloo@earth.li>**20090724221244]
2069[Remove GHC's haskell98 dependency
2070Ian Lynagh <igloo@earth.li>**20090724210825]
2071[add number of bytes to +RTS -DS leak reports
2072Simon Marlow <marlowsd@gmail.com>**20090724150010
2073 Ignore-this: 3a66585c8fd2b58ce96abab1e154fb6e
2074]
2075[free the gc_thread structures during shutdown
2076Simon Marlow <marlowsd@gmail.com>**20090724145956
2077 Ignore-this: 25efeb189cbfb549af4550d266604f0e
2078]
2079[Add atomic_inc()/atomic_dec(), and use them to replace gc_running_mutex
2080Simon Marlow <marlowsd@gmail.com>**20090724142620
2081 Ignore-this: d775eeaf85fd0f9064d87a0909134bc0
2082 This also fixes a memory leak on Windows with -threaded, because we
2083 were calling initMutex(&gc_running_mutex) for each GC, which allocates
2084 memory.
2085]
2086[Rewrite the foreign import string parser using ReadP
2087Simon Marlow <marlowsd@gmail.com>**20090723152138
2088 Ignore-this: 1c7db770a29d48710b05e2a3d216b2a8
2089 And kill the duplicate one in HsSyn.Convert
2090]
2091[point to the wiki
2092Simon Marlow <marlowsd@gmail.com>**20090723132345
2093 Ignore-this: c11300bac62ce2f56d7fc271aa26dbcd
2094]
2095[Remove note about avoiding use of #def in libraries
2096Simon Marlow <marlowsd@gmail.com>**20090723111026
2097 Ignore-this: 8a027ed37b2d10094f7a31548aee2535
2098 It should be safe to use now that we aren't relying on C prototypes
2099 for foreign functions in via-C code.
2100]
2101[refactorings
2102Simon Marlow <marlowsd@gmail.com>**20090723091230
2103 Ignore-this: 836feb0e819127603dd56623af6e48dc
2104]
2105[Fix Trac #3391: make generic to/from bindings only for newly-declared types
2106simonpj@microsoft.com**20090723155803
2107 Ignore-this: bb56c2ec054397d421dce13d5eb6c73f
2108 
2109 Before this patch we were bogusly making to/from bindings for all data types
2110 in the TcGblEnv.  But that is wrong when we have multiple "chunks" of
2111 bindings in Template Haskell.  We should start from the declarations
2112 themselves.  Easy.
2113 
2114]
2115[Print explicit braces and semicolons in do-notation
2116simonpj@microsoft.com**20090723152411
2117 Ignore-this: a97ddf19774d27d15a01d63787708b20
2118 
2119 By printing explicit braces we make it more likely that pretty-printed
2120 code will be acceptable if fed back into GHC.
2121 
2122 See http://www.haskell.org/pipermail/glasgow-haskell-users/2009-July/017554.html
2123 
2124]
2125[Documentation for stand-alone deriving (Trac #3012)
2126simonpj@microsoft.com**20090723132558
2127 Ignore-this: 54445c5984594eb7f82151b2ac118695
2128]
2129[Windows only: set the encoding on stdin to utf8
2130Simon Marlow <marlowsd@gmail.com>**20090723121913
2131 Ignore-this: d65115d9711b5fb68e77786565ef6de
2132 Otherwise it defaults to latin1.
2133]
2134[Fix Trac #3012: allow more free-wheeling in standalone deriving
2135simonpj@microsoft.com**20090723130145
2136 Ignore-this: 357580b9388ccbe1da3c1da3ba90e456
2137 
2138 In standalone deriving, we now do *not* check side conditions.
2139 We simply generate the code and typecheck it.  If there's a type
2140 error, it's the programmer's problem.
2141 
2142 This means that you can do 'deriving instance Show (T a)', where
2143 T is a GADT, for example, provided of course that the boilerplate
2144 code does in fact typecheck.
2145 
2146 I put some work into getting a decent error message.  In particular
2147 if there's a type error in a method, GHC will show the entire code
2148 for that method (since, after all, the user did not write it).
2149 Most of the changes are to achieve that goal.
2150 
2151 Still to come: changes in the documentation.
2152 
2153]
2154[Use the ErrMsg record type
2155simonpj@microsoft.com**20090723130108
2156 Ignore-this: 7fb6dd78d3185da0c33901b8aac8d108
2157]
2158[Stop generating redundant parens in 'deriving' code
2159simonpj@microsoft.com**20090723125903
2160 Ignore-this: 6fc82df9648a82bcf7bf6fdfa9b4dad3
2161 
2162 This makes the code printed by -ddump-deriv look prettier
2163 
2164]
2165[Wibble to printing tuple sections
2166simonpj@microsoft.com**20090723125756
2167 Ignore-this: af2a1b9784f6447fea0e11d454cf082f
2168]
2169[Fix Trac #3193: improve line number reporting for equality constraints
2170simonpj@microsoft.com**20090723065504
2171 Ignore-this: b45a68071bcaca48cad7855dccb9c9eb
2172 
2173 When reporting an error from a failed equality constraint, we were
2174 setting the *context* but not the *line number* in TcTyFuns.eqInstMisMatch
2175 As a result, the line number didn't match the context at all.  It's
2176 trivial to fix.
2177 
2178 I'm 99% certain this fixes #3193, but it's too complicated to
2179 reproduce, so I have not actually tested it.
2180 
2181]
2182[Add fmapM_maybe :: Monad m => (a -> m b) -> Maybe a -> m (Maybe b)
2183simonpj@microsoft.com**20090723064932
2184 Ignore-this: db5f6319b52a5e6b5f85d76985f2a7c9
2185 
2186 This function isn't used at the moment, but Max added it, and it
2187 looks useful.
2188 
2189]
2190[Add tuple sections as a new feature
2191simonpj@microsoft.com**20090723063859
2192 Ignore-this: d42a26fc1efff112b852b5c1135c1746
2193 
2194 This patch adds tuple sections, so that
2195 
2196        (x,,z)  means   \y -> (x,y,z)
2197 
2198 Thanks for Max Bolinbroke for doing the hard work.
2199 
2200 In the end, instead of using two constructors in HsSyn, I used
2201 just one (still called ExplicitTuple) whose arguments can be
2202        Present (LHsExpr id)
2203 or     Missing PostTcType
2204 
2205 While I was at it, I did a bit of refactoring too.
2206 
2207]
2208[NetBSD defines _REENTRANT in its header files, so compiling ghc gives
2209Simon Marlow <marlowsd@gmail.com>**20090723075030
2210 Ignore-this: 4722c4ff0541c6080de8f433e498684
2211 redefinition warnings for all files that are including includes/Rts.h.
2212 
2213 Contributed by: Krister Walfridsson <krister.walfridsson@gmail.com>
2214]
2215[includes/TSO.h: kill trailing whitespace
2216Samuel Bronson <naesten@gmail.com>**20090722170354
2217 Ignore-this: 36d4afd1a21188d604ed6b432942dcdc
2218]
2219[Say what StgTSOBlockInfo is for, where to read about it.
2220Samuel Bronson <naesten@gmail.com>**20090722163011
2221 Ignore-this: 6c09e11f23594251cdc2db1bc642edc9
2222]
2223[Make the Integer library used directly configurable in GHC and base
2224Ian Lynagh <igloo@earth.li>**20090722151048
2225 Rather than indirecting through an integer package
2226]
2227[Fix cleaning with the new integer changes
2228Ian Lynagh <igloo@earth.li>**20090722142545]
2229[Add integer-simple as a build option
2230Ian Lynagh <igloo@earth.li>**20090722013137]
2231[Tweak whitespace
2232Ian Lynagh <igloo@earth.li>**20090719221303]
2233[thenIO, bindIO, returnIO moved to GHC.Base
2234Simon Marlow <marlowsd@gmail.com>**20090722102219
2235 Ignore-this: 5d6c5988e0abab2c5169540aa8ddedb9
2236]
2237[remove unused $(HscIfaceFileVersion)
2238Simon Marlow <marlowsd@gmail.com>**20090720145053
2239 Ignore-this: d725cbbde3c68673e2342b370460d87f
2240]
2241[Choose external names more predictably
2242Simon Marlow <marlowsd@gmail.com>**20090720144751
2243 Ignore-this: 17513bc93af646108f21bbed1c8f4a3a
2244 
2245 Now, for a compiler-generated binding "x", if "x" is referred to by
2246 the exported "f", then it will be named "f_x" rather than something
2247 like "x23".  This means that hopefully
2248 
2249   - compilation will more often product the same results given the
2250     same input (the choice of names is not dependent on the
2251     non-deterministic order of bindings within the compiler).
2252 
2253   - less recompilation will be necessary after making changes
2254 
2255   - navigating Core might be a bit easier.
2256 
2257 unfortunately, compilation with -O still does not consistently produce
2258 the same ABI.  The simplifier sometimes does different things,
2259 apparently.
2260 
2261 Names will be longer, but I can't see a way around that.
2262]
2263[Use stable ordering in the dependencies
2264Simon Marlow <marlowsd@gmail.com>**20090717123449
2265 Ignore-this: e20bac233cf6f834e69c027ff60b5b50
2266 Fixes another cause of wobbly interface files and unnecessary recompilation.
2267]
2268[fall back on libffi for 'foreign import "wrapper"' if necessary
2269Simon Marlow <marlowsd@gmail.com>**20090716134549
2270 Ignore-this: e1073e1ad77e720326865a6d3c4f3790
2271]
2272[Take account of GADTs when reporting patterm-match overlap
2273simonpj@microsoft.com**20090722050933
2274 Ignore-this: 7dcbdcb91021e83e6e6208a2e68c50c9
2275 
2276 When matching against a GADT, some of the constructors may be impossible.
2277 For example
2278        data T a where
2279           T1 :: T Int
2280           T2 :: T Bool
2281           T3 :: T a
2282 
2283         f :: T Int -> Int
2284         f T1 = 3
2285         f T3 = 4
2286 
2287 Here, does not have any missing cases, despite omittting T2, because
2288 T2 :: T Bool.
2289 
2290 This patch teaches the overlap checker about GADTs, which happily
2291 turned out to be rather easy even though the overlap checker needs
2292 a serious rewrite.
2293 
2294]
2295[Fix Trac #3382: desugaring of NPats
2296simonpj@microsoft.com**20090720061226
2297 Ignore-this: 4dccdaf2b7d6428141dcf174cb455a20
2298 
2299 Max spotted that the short-cut rules for desugaring NPats (where
2300 we compare against a literal) were wrong now that we have overloaded
2301 strings.
2302 
2303]
2304[Add a -fwarn-dodgy-exports flag; fixes #1911
2305Ian Lynagh <igloo@earth.li>**20090719200124
2306 This is used to control warnings that were previously unconditional.
2307]
2308[Build terminfo if we /aren't/ on Windows, not if we /are/
2309Ian Lynagh <igloo@earth.li>**20090719111709]
2310[Change how PACKAGES is constructed, so that everything gets cleaned properly
2311Ian Lynagh <igloo@earth.li>**20090718210058
2312 If Windows wasn't defined properly then the Win32 package wasn't being
2313 cleaned, as it wasn't added to PACKAGES. Now we always add everything to
2314 PACKAGES when CLEANING=YES.
2315]
2316[temporarily turn off unused import warnings for the time library
2317Ian Lynagh <igloo@earth.li>**20090718183445]
2318[Follow the split directory rename in the GHC build system rules
2319Ian Lynagh <igloo@earth.li>**20090718155618]
2320[Add osuf to the name we use for the split dir
2321Ian Lynagh <igloo@earth.li>**20090718145522
2322 This avoids a collision between the directories we use when compiling
2323 multiple ways, which in turn leads to a race condition in parallel
2324 builds.
2325]
2326[Temporarily turn off unused-do-bind warnings for the time package
2327Ian Lynagh <igloo@earth.li>**20090718134536]
2328[Make ghc-cabal handle "Custom" Setup.hs files that have a configure script
2329Ian Lynagh <igloo@earth.li>**20090718131555]
2330[Add the time library, and support for libraries in tarballs
2331Ian Lynagh <igloo@earth.li>**20090718121649]
2332[Always serialise Int as 64bit values; fixes trac #3041
2333Ian Lynagh <igloo@earth.li>**20090717224203
2334 This means that, provided the values are small enough, files
2335 serialized are portable between architectures. In particular,
2336 .haddock files are portable.
2337]
2338[Remove some code that has always been commented out
2339Ian Lynagh <igloo@earth.li>**20090717224100]
2340[Fix Trac #3346: tcSimplify for LHS of RULES with type equalities
2341simonpj@microsoft.com**20090717155722
2342 Ignore-this: dfdd0f9a62d78d63276a4d558831099c
2343]
2344[Allow mixed case in the LINE pragma; patch from squadette; fixes #1817
2345Ian Lynagh <igloo@earth.li>**20090717133522]
2346[Comment only
2347simonpj@microsoft.com**20090717120154
2348 Ignore-this: f96b11e602fe4b311c1e466af9aa1908
2349]
2350[Add missing case for eq_note.
2351t-peterj@microsoft.com**20090624134407]
2352[Rename parameters to make debugging code compile.
2353t-peterj@microsoft.com**20090626105440]
2354[Comment fix: use the same variable names in the conclusion as in the premise.
2355t-peterj@microsoft.com**20090618092235]
2356[Typo fixes, from Alexey Mahotkin
2357Ian Lynagh <igloo@earth.li>**20090717010817]
2358[Use names like '$fOrdInt' for dfuns (and TF instances), rather than '$f21'
2359Simon Marlow <marlowsd@gmail.com>**20090716125643
2360 Ignore-this: d0b4632cf8ed9e05b67a19aa19ab3e19
2361 
2362 2 reasons for this:
2363   - compilation is more predictable.  Adding or removing an instance
2364     is less likely to force unnecessary recompilation due to
2365     renumbering other dfun names.
2366   - it makes it easier to read Core / C-- / asm
2367 
2368 The names aren't completely deterministic.  To do that, we'd have to
2369 include package and module names, which would make the symbol names
2370 long and reduce readability.  So the compromise is that if there's a
2371 clash, we disambiguate by adding an integer suffix.  This is fairly
2372 unlikely in practice unless you're using overlapping instances.
2373 
2374 Type family instances are handled in the same way, with the same
2375 disambiguation strategy.
2376]
2377[Use a stable ordering for the export list in the interface
2378Simon Marlow <marlowsd@gmail.com>**20090716122601
2379 Ignore-this: 847dd7adc8b52e56f28d2478c78c925
2380 The export list was ordered according to the whim of FastStrings,
2381 which meant that interface fingerprints could change for no good
2382 reason, causing spurious recompilation.
2383]
2384[Don't put all of $CFLAGS into $SRC_CC_OPTS
2385Ian Lynagh <igloo@earth.li>**20090716131309
2386 Instead, we just put the flags we need in there (e.g. -m64 on OS X 64).
2387 This fixes a problem found by Simon M, where we were compiling
2388 everything with -g, leading to a bloated RTS.
2389]
2390[Move showOpt into DynFlags
2391Ian Lynagh <igloo@earth.li>**20090716005314]
2392[Make the --info values printable with "ghc --print-foo"; trac #3122
2393Ian Lynagh <igloo@earth.li>**20090716001718
2394 Also, libdir is now part of the --info output, so this subsumes the old
2395 --print-libdir flag.
2396 The mode parsing was getting rather adhoc, so I've tidied it up a bit
2397 in the process.
2398]
2399[whitespace only
2400Simon Marlow <marlowsd@gmail.com>**20090716104217
2401 Ignore-this: 38cff291d9ef15c30e3ed685ffc3c9f9
2402]
2403[refactor: use packageConfigId in place of mkPackageId . package
2404Simon Marlow <marlowsd@gmail.com>**20090716104145
2405 Ignore-this: f3d73e7bd1b307a67d26585c49f3d89f
2406]
2407[Fix a flag name in the docs
2408Ian Lynagh <igloo@earth.li>**20090714165943]
2409[Add the -fno-shared-implib flag
2410Ian Lynagh <igloo@earth.li>**20090714165631
2411 Patch from
2412     Max Bolingbroke <batterseapower@hotmail.com>
2413 Rerecorded to avoid conflicts.
2414]
2415[Derived Foldable instances should use Data.Foldable.foldr
2416m.niloc@gmail.com**20090711130647
2417 Ignore-this: e3eb841e9535a842a98bb1ae0532c6e8
2418]
2419[remove Solaris-specific hacks, now unnecessary
2420Simon Marlow <marlowsd@gmail.com>**20090713083524
2421 Ignore-this: 500077008e463532e0677ee82f5284bb
2422]
2423[Simplify timestamp restoration
2424Matthias Kilian <kili@outback.escape.de>**20090711100244
2425 Ignore-this: 7eaede224befa6b5368c91b92366211
2426]
2427[FIX #3272
2428Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090714054559
2429 Ignore-this: 225fe4d82d4eed02e9b1377687661bac
2430]
2431[Fix warnings
2432Roman Leshchinskiy <rl@cse.unsw.edu.au>**20090713092032
2433 Ignore-this: 3631b87164fc54d82e3a02875dc08f7d
2434]
2435[Separate length from data in DPH arrays
2436Roman Leshchinskiy <rl@cse.unsw.edu.au>**20090713044212
2437 Ignore-this: aa2cc3b5ae43bd2c493ce4b330c883cd
2438]
2439[Stop using -fno-warn-unused-do-bind when compiling the libraries
2440Ian Lynagh <igloo@earth.li>**20090709160422
2441 They're now fixed to not generate those warnings
2442]
2443[Remove maybePrefixMatch, using stripPrefix instead
2444Ian Lynagh <igloo@earth.li>**20090709160412
2445 We already require GHC 6.8 to build, and that included stripPrefix
2446 in Data.List.
2447]
2448[TFs: FIX #2203 (second half)
2449Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090710064834
2450 Ignore-this: 46a46feaa73f74feb08524b9e7547414
2451]
2452[TFs: Fix should_compile/Simple8
2453Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090710042728
2454 Ignore-this: 471ab67e3df1c5245921be5286a45f93
2455]
2456[workaround new Cygwin bash CRLF behaviour
2457Simon Marlow <marlowsd@gmail.com>**20090709132850
2458 Ignore-this: 5cfa2cc9d776ebe315c0f6ad7ab56d98
2459]
2460[Use /usr/bin/test if it exists, and fix test syntax.
2461Simon Marlow <marlowsd@gmail.com>**20090709124616
2462 Ignore-this: 83a75ba7c3ce2a1d02bddb7bfe414bfe
2463 Should fix Solaris build failures
2464]
2465[Allow mixed case pragmas; #1817. Patch from squadette
2466Ian Lynagh <igloo@earth.li>**20090709153737
2467 This patch allow you to use "Language CPP", or even "LaNgUaGe CPP",
2468 if you wish, as the manual claims you can.
2469]
2470[don't create inplace/bin/ghc-<version>
2471Simon Marlow <marlowsd@gmail.com>**20090706092031
2472 Ignore-this: 2584d7bf56e77b27ca5b7b557c152c5e
2473]
2474[Fix ignored-monadic-result warnings
2475Ian Lynagh <igloo@earth.li>**20090707181857]
2476[Fix an unused import warning
2477Ian Lynagh <igloo@earth.li>**20090707144706]
2478[Fix unused import warnings
2479Ian Lynagh <igloo@earth.li>**20090707143216]
2480[Fix unused import warnings
2481Ian Lynagh <igloo@earth.li>**20090707133537]
2482[When exporting F(..), all the children of F are also exported
2483Ian Lynagh <igloo@earth.li>**20090707133427
2484 This fixes the unused imports warning when
2485     Foo (F(x,y,z))
2486 is imported and
2487     Foo (F(..))
2488 is exported.
2489]
2490[Remove unused imports
2491Ian Lynagh <igloo@earth.li>**20090707121548]
2492[Major patch to fix reporting of unused imports
2493simonpj@microsoft.com**20090706112503
2494 Ignore-this: 3b5ecdd880474493d73bdbdc0fa0b782
2495 
2496 This patch, joint work between and Ian and Simon, fixes Trac #1074
2497 by reporting unused import declarations much more accuratly than
2498 before.  The specification is described at
2499 
2500 http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/UnusedImports
2501 
2502 The implementation is both easier to understand than before, and shorter
2503 too. 
2504 
2505 Also fixed are #1148, #2267
2506 
2507 Also fixed is -ddump-minimal imports, which now works properly, fixing
2508 Trac #1792.
2509 
2510 
2511]
2512[Trim unused imports detected by new unused-import code
2513simonpj@microsoft.com**20090706112201
2514 Ignore-this: c6ca46d3a750c1cd1d58ea2c0de9f14f
2515]
2516[Avoid unnecessary recompilation after ./configure (helps #3228)
2517Simon Marlow <marlowsd@gmail.com>**20090707085040
2518 Ignore-this: f8b3e7a2a96bc23cd29505ab9c8dbd7d
2519 We cache the old versions of files generated by configure, so that if
2520 configure touches the file without changing it, we can detect that and
2521 restore the timestamp.
2522]
2523[check for tabs in compiler/ghc.cabal.in (#3344)
2524Simon Marlow <marlowsd@gmail.com>**20090707081845
2525 Ignore-this: 6073db47eafd52e13e76c58ef738afcf
2526]
2527[remove tabs
2528Simon Marlow <marlowsd@gmail.com>**20090707081823
2529 Ignore-this: 3d65831fc019f76cefac03291904842a
2530]
2531[fix cleaning of libraries (now 'make clean' in libraries/* works again)
2532Simon Marlow <marlowsd@gmail.com>**20090703114638
2533 Ignore-this: b3af731d50ff5bfbd453f94aa40cb92c
2534]
2535[FIX #2677
2536Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090707055442
2537 Ignore-this: e224dd09d0d1c9ec4f3b46c7accb8d57
2538]
2539[Update driver/Makefile for the new build system
2540Ian Lynagh <igloo@earth.li>**20090705204041]
2541[Fix generational GC bug (#3348)
2542Simon Marlow <marlowsd@gmail.com>**20090706112227
2543 Ignore-this: 5938338efa0ad1550968c664a5a76f31
2544]
2545[Windows fixes to build system: use the 'find' and 'sort' found by configure
2546simonpj@microsoft.com**20090706103413
2547 Ignore-this: a96197917f388a637118bafefb427495
2548 
2549 The build system should use 'find' and 'sort' that are discovered by
2550 configure, not the ones in your path.  On Windows the ones in your path
2551 might well be the non-Unixy Windows versions.
2552 
2553 This patch fixes the ones I tripped over. There may be more.
2554 
2555]
2556[Follow Cabal changes
2557Ian Lynagh <igloo@earth.li>**20090705180414]
2558[Update TODO list
2559Ian Lynagh <igloo@earth.li>**20090705165009]
2560[Make -fext-core a dynamic flag (it was a static flag)
2561Ian Lynagh <igloo@earth.li>**20090705132420]
2562[Update a few points about shared libs in other sections
2563Duncan Coutts <duncan@well-typed.com>**20090704212212
2564 And add links to the new shared libs section.
2565]
2566[Document -dynload flag. Also add it and -shared to the flags reference.
2567Duncan Coutts <duncan@well-typed.com>**20090704212119]
2568[Add new section on using shared libs
2569Duncan Coutts <duncan@well-typed.com>**20090704212003]
2570[Document foreign import prim in the user guide
2571Duncan Coutts <duncan@well-typed.com>**20090704180547
2572 Basically just stat that it exists and refer to the ghc dev wiki
2573 for the details, because we don't really want people using it.
2574]
2575[For now, use -fno-warn-unused-do-bind when building the libraries
2576Ian Lynagh <igloo@earth.li>**20090704210654]
2577[Make changes to -fwarn-unused-do-bind and -fwarn-wrong-do-bind suggested by SPJ
2578Max Bolingbroke <batterseapower@hotmail.com>**20090702150943
2579 Ignore-this: 595368298d2e11623c0bd280ff89d8de
2580]
2581[Support for -fwarn-unused-do-bind and -fwarn-wrong-do-bind, as per #3263
2582Max Bolingbroke <batterseapower@hotmail.com>**20090701200344
2583 Ignore-this: 511117ffc10d4b656e530b751559b8b8
2584]
2585[Improved infrastructure for fast-rebuilding of parts of the tree
2586Simon Marlow <marlowsd@gmail.com>**20090703074527
2587 Ignore-this: ab348d0988d8bbc28c2b4babbd6bbfb8
2588 
2589 e.g.
2590 
2591   cd compiler
2592   make FAST=YES stage1/build/HscTypes.o
2593 
2594 builds just the specified .o file, without rebuilding dependencies,
2595 and omitting some of the makefile phases.  FAST=YES works anywhere, to
2596 omit depenencies and phases.  'make fast' is shorthand for 'make
2597 all FAST=YES'.
2598]
2599[Fix Trac #3342: missed zonking in TcHsSyn
2600simonpj@microsoft.com**20090702124331
2601 Ignore-this: 9b97b2142dfc665b503f59df7c55dd17
2602 
2603 The type in a ViewPat wasn't being zonked.  Easily fixed.
2604 
2605]
2606[Type synonym families may be nullary
2607Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090702084826
2608 Ignore-this: bcfe6ed62c901206daf5a5088890bbea
2609]
2610[New syntax for GADT-style record declarations, and associated refactoring
2611simonpj@microsoft.com**20090702094657
2612 Ignore-this: bd9817230d3773b3b01fae3d7f04c57d
2613 
2614 The main purpose of this patch is to fix Trac #3306, by fleshing out the
2615 syntax for GADT-style record declraations so that you have a context in
2616 the type.  The new form is
2617    data T a where
2618      MkT :: forall a. Eq a => { x,y :: !a } -> T a
2619 See discussion on the Trac ticket.
2620 
2621 The old form is still allowed, but give a deprecation warning.
2622 
2623 When we remove the old form we'll also get rid of the one reduce/reduce
2624 error in the grammar. Hurrah!
2625 
2626 While I was at it, I failed as usual to resist the temptation to do lots of
2627 refactoring.  The parsing of data/type declarations is now much simpler and
2628 more uniform.  Less code, less chance of errors, and more functionality.
2629 Took longer than I planned, though.
2630 
2631 ConDecl has record syntax, but it was not being used consistently, so I
2632 pushed that through the compiler.
2633 
2634]
2635[White space only
2636simonpj@microsoft.com**20090702094627
2637 Ignore-this: 19f654cbf371c8dcc6517fd4934855b4
2638]
2639[Comments only
2640simonpj@microsoft.com**20090702094531
2641 Ignore-this: 384fc2729c7c50a1680775a1f9ff89e4
2642]
2643[Look through Notes when matching
2644simonpj@microsoft.com**20090702094444
2645 Ignore-this: 7daea81e905ec6061d3e0fd588d7e61b
2646]
2647[FIX #3197
2648Manuel M T Chakravarty <chak@cse.unsw.edu.au>**20090702070905
2649 Ignore-this: ebf829f0ae025e82bccdfa4345828ffe
2650]
2651[Fix #2197 (properly this time)
2652Simon Marlow <marlowsd@gmail.com>**20090701122354
2653 Ignore-this: 39b6e4b0bcdd8c2f4660f976b7db768d
2654 
2655 $ ./inplace/bin/ghc-stage2 --interactive
2656 GHCi, version 6.11.20090701: http://www.haskell.org/ghc/  :? for help
2657 ghc-stage2: GHCi cannot be used when compiled with -prof
2658 [1]    32473 exit 1     ./inplace/bin/ghc-stage2 --interactive
2659]
2660[make GhcProfiled work, and add a "prof" flavour to build.mk
2661Simon Marlow <marlowsd@gmail.com>**20090701114211
2662 Ignore-this: 386d347e4ad8b6c2bd40a2ba7da31ba6
2663 
2664 Building a profiled GHC is as simple as adding
2665 
2666 GhcLibWays += p
2667 GhcProfiled = YES
2668 
2669 to your build.mk and saying 'make'.  Then you have a profiled
2670 inplace/bin/ghc-stage2.
2671]
2672[remove unnecessary $(RM)s
2673Simon Marlow <marlowsd@gmail.com>**20090701110609
2674 Ignore-this: f326ec8931d0d484a66b67ce1270cc6e
2675]
2676['make html' in a library builds the Haddock docs
2677Simon Marlow <marlowsd@gmail.com>**20090630111137
2678 Ignore-this: 781bf10e2d4bca23b7f70c6f0465d120
2679]
2680[fix GC bug introduced with the C finalizer support
2681Simon Marlow <marlowsd@gmail.com>**20090630080834
2682 Ignore-this: 3567e3adb5ae4a5dcbce81733487f348
2683]
2684[Add a configure test for whether or not __mingw_vfprintf exists
2685Ian Lynagh <igloo@earth.li>**20090627150501]
2686[Fix #3319, and do various tidyups at the same time
2687Simon Marlow <marlowsd@gmail.com>**20090626095421
2688 Ignore-this: ea54175f6bd49e101d7b33392764f643
2689  - converting a THSyn FFI declaration to HsDecl was broken; fixed
2690  - pretty-printing of FFI declarations was variously bogus; fixed
2691  - there was an unused "library" field in CImport; removed
2692]
2693[rename cache variable to keep recent autoconfs happy
2694Ross Paterson <ross@soi.city.ac.uk>**20090626131410
2695 Ignore-this: 187091bbe78f2b14402162acfb98180f
2696]
2697[TAG 2009-06-25
2698Ian Lynagh <igloo@earth.li>**20090625155528]
2699Patch bundle hash:
2700bc96e1d367a9b638acc2fd6ebd38991bec3dd684