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

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

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

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