Ticket #4825: fix4825

File fix4825, 20.4 KB (added by Orphi, 2 years ago)

My documentation updates.

Line 
11 patch for repository http://darcs.haskell.org/ghc:
2
3Thu Dec  9 14:10:09 GMT 2010  Orphi <MathematicalOrchid@hotmail.com>
4  * FIX #4825: Update User Guide info on DLLs.
5
6New patches:
7
8[FIX #4825: Update User Guide info on DLLs.
9Orphi <MathematicalOrchid@hotmail.com>**20101209141009
10 Ignore-this: f1bd212d28501d8e71eb139f05b2be5b
11] {
12hunk ./docs/users_guide/shared_libs.xml 28
13 
14   <para>
15     In GHC version 6.12 building shared libraries is supported for Linux on
16-    x86 and x86-64 architectures and there is partial support on Windows (see
17-    <xref linkend="win32-dlls"/>). The crucial difference in support on
18-    Windows is that it is not currently possible to build each Haskell
19-    package as a separate DLL, it is only possible to link an entire Haskell
20-    program as one massive DLL.
21+    x86 and x86-64 architectures and GHC version 7.0 adds support on Windows
22+    (see <xref linkend="win32-dlls"/>).
23   </para>
24 
25   <para>
26hunk ./docs/users_guide/shared_libs.xml 153
27       <literal>-dynamic</literal> in the link step. That means to
28       statically link the rts all the base libraries into your new shared
29       library. This would make a very big, but standalone shared library.
30-      Indeed this is exactly what we must currently do on Windows where
31-      -dynamic is not yet supported (see <xref linkend="win32-dlls"/>).
32       On most platforms however that would require all the static libraries
33       to have been built with <literal>-fPIC</literal> so that the code is
34       suitable to include into a shared library and we do not do that at the
35hunk ./docs/users_guide/shared_libs.xml 174
36       The details of how this works varies between platforms, in particular
37       the three major systems: Unix ELF platforms, Windows and Mac OS X.
38     </para>
39+    <sect3 id="finding-shared-libs-unix">
40+    <title>Unix</title>
41     <para>
42       On Unix there are two mechanisms. Shared libraries can be installed
43       into standard locations that the dynamic linker knows about. For
44hunk ./docs/users_guide/shared_libs.xml 231
45       Similarly it would be possible to use a subdirectory relative to the
46       executable e.g. <literal>-optl-Wl,-rpath,'$ORIGIN/lib'</literal>.
47     </para>
48+    </sect3>
49+    <sect3 id="finding-shared-libs-mac">
50+    <title>MacOS</title>
51     <para>
52       The standard assumption on Darwin/MacOS X is that dynamic libraries will
53       be stamped at build time with an "install name", which is the full
54hunk ./docs/users_guide/shared_libs.xml 247
55       for you. It automatically sets the install name for dynamic libraries to
56       the absolute path of the ultimate install location.
57     </para>
58+    </sect3>
59   </sect2>
60 
61 </sect1>
62hunk ./docs/users_guide/win32-dlls.xml 211
63 <title>Building and using Win32 DLLs
64 </title>
65 
66+<!--
67 <para>
68 <emphasis>Making Haskell libraries into DLLs doesn't work on Windows at the
69 moment; we hope to re-instate this facility in the future
70hunk ./docs/users_guide/win32-dlls.xml 219
71 building an entire Haskell application as a single DLL is still supported: it's
72        just multi-DLL Haskell programs that don't work.  The Windows
73        distribution of GHC contains static libraries only.</emphasis></para>
74+-->
75 
76hunk ./docs/users_guide/win32-dlls.xml 221
77-<!--
78 <para>
79 <indexterm><primary>Dynamic link libraries, Win32</primary></indexterm>
80 <indexterm><primary>DLLs, Win32</primary></indexterm>
81hunk ./docs/users_guide/win32-dlls.xml 230
82 </para>
83 
84 <para>
85+There are two distinct ways in which DLLs can be used:
86+<itemizedlist>
87+  <listitem>
88+    <para>
89+      You can turn each Haskell package into a DLL, so that multiple
90+      Haskell executables using the same packages can share the DLL files.
91+      (As opposed to linking the libraries statically, which in effect
92+      creates a new copy of the RTS and all libraries for each executable
93+      produced.)
94+    </para>
95+    <para>
96+      That is the same as the dynamic linking on other platforms, and it
97+      is described in <xref linkend="using-shared-libs"/>.
98+    </para>
99+  </listitem>
100+  <listitem>
101+    <para>
102+      You can package up a complete Haskell program as a DLL, to be called
103+      by some external (usually non-Haskell) program. This is usually used
104+      to implement plugins and the like, and is described below.
105+    </para>
106+  </listitem>
107+</itemizedlist>
108+</para>
109+
110+<!--
111+<para>
112 Until recently, <command>strip</command> didn't work reliably on DLLs, so you
113 should test your version with care, or make sure you have the latest
114 binutils. Unfortunately, we don't know exactly which version of binutils
115}
116
117Context:
118
119[Make CPPFLAGS variables, as well as CFLAGS and LDFLAGS
120Ian Lynagh <igloo@earth.li>**20101207010033
121 Ignore-this: 2fc1ca1422aae1988d0fe1d29a8485d9
122 This fixes the "does unsetenv return void" test in the unix package on
123 OS X, if I tell it to make 10.4-compatible binaries. The test uses
124 CPPFLAGS but not CFLAGS, so it thought it returned int (as it was
125 in 10.5-mode), but the C compiler (using CFLAGS, so in 10.4 mode)
126 thought it returned void.
127 
128 I also added CONF_LD_OPTS_STAGE$3 to the list of things in LDFLAGS,
129 which looks like an accidental ommission.
130]
131[Add a configure message
132Ian Lynagh <igloo@earth.li>**20101206215201]
133[Link even programs containing no Haskell modules with GHC
134Ian Lynagh <igloo@earth.li>**20101206203329
135 I don't remember why we made it use gcc instead, but going back to
136 using ghc doesn't seem to break anything, and should fix the build
137 on OS X 10.6.
138]
139[Correct the stage that the includes/ tools are built in
140Ian Lynagh <igloo@earth.li>**20101206203125]
141[Tweak the cleaning of inplace/; fixes trac #4320
142Ian Lynagh <igloo@earth.li>**20101205212048]
143[Close .ghci files after reading them; fixes trac #4487
144Ian Lynagh <igloo@earth.li>**20101205205301]
145[Fix the behaviour of :history for ticks surrounding top level functions
146pepeiborra@gmail.com**20101203202346
147 Ignore-this: 8059d4859c52c0c9a235b937cb8cde1d
148]
149[Don't warn of duplicate exports in case of module exports.
150Michal Terepeta <michal.terepeta@gmail.com>**20101127212116
151 Ignore-this: ea225d517826f971c400bbb68d1405b8
152 
153 But only when the module exports refer to different modules.
154 See ticket #4478.
155]
156[Fix whitespace/layout in RnNames.
157Michal Terepeta <michal.terepeta@gmail.com>**20101030171303
158 Ignore-this: 707a7955fc4fc51683cc5a1dfe57f93
159]
160[Tell gcc to support back to OS X 10.5
161Ian Lynagh <igloo@earth.li>**20101203201558
162 Ignore-this: f02d70e5b9cce50137981c6cb2b62a18
163]
164[Make RelaxedLayout off by default
165Ian Lynagh <igloo@earth.li>**20101202140808
166 I suspect this is a vary rarely used extension to the official layout
167 rule.
168]
169[Fix up TcInstDcls
170simonpj@microsoft.com**20101203180758
171 Ignore-this: 9311aeb4ee67c799704afec90b5982d0
172 
173 I really don't know how this module got left out of my last
174 patch, namely
175   Thu Dec  2 12:35:47 GMT 2010  simonpj@microsoft.com
176   * Re-jig simplifySuperClass (again)
177 
178 I suggest you don't pull either the patch above, or this
179 one, unless you really have to.  I'm not fully confident
180 that it works properly yet.  Ran out of time. Sigh.
181]
182[throwTo: report the why_blocked value in the barf()
183Simon Marlow <marlowsd@gmail.com>**20101203094840
184 Ignore-this: 3b167c581be1c51dfe3586cc6359e1d0
185]
186[handle ThreadMigrating in throwTo() (#4811)
187Simon Marlow <marlowsd@gmail.com>**20101203094818
188 Ignore-this: 8ef8cb7fd3b50a27f83c29968131d461
189 If a throwTo targets a thread that has just been created with
190 forkOnIO, then it is possible the exception strikes while the thread
191 is still in the process of migrating.  throwTo() didn't handle this
192 case, but it's fairly straightforward.
193]
194[removeThreadFromQueue: stub out the link field before returning (#4813)
195Simon Marlow <marlowsd@gmail.com>**20101202160838
196 Ignore-this: 653ae17bc1120d7f4130da94665002a1
197]
198[small tidyup
199Simon Marlow <marlowsd@gmail.com>**20101126140620
200 Ignore-this: 70b1d5ed4c81a7b29dd5980a2d84aae1
201]
202[Fix a recomp bug: make classes/datatypes depend directly on DFuns (#4469)
203Simon Marlow <marlowsd@gmail.com>**20101202122349
204 Ignore-this: 61c765583bb1d97caa88cf9b4f45b87c
205 And remove the old mechanism of recording dfun uses separately,
206 because it didn't work.
207 
208 This wiki page describes recompilation avoidance and fingerprinting.
209 I'll update it to describe the new method and what went wrong with the
210 old method:
211 
212 http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/RecompilationAvoidance
213]
214[make a panic message more informative and suggest -dcore-lint (see #4534)
215Simon Marlow <marlowsd@gmail.com>**20101201151706
216 Ignore-this: 2a10761925d6f9f52675948baa30f7a
217]
218[Re-jig simplifySuperClass (again)
219simonpj@microsoft.com**20101202123547
220 Ignore-this: fe4062b8988258f6748ebd8fbd6515b5
221 
222 This fixes the current loop in T3731, and will fix other
223 reported loops.  The loops show up when we are generating
224 evidence for superclasses in an instance declaration.
225 
226 The trick is to make the "self" dictionary simplifySuperClass
227 depend *explicitly* on the superclass we are currently trying
228 to build.  See Note [Dependencies in self dictionaries] in TcSimplify.
229 
230 That in turn means that EvDFunApp needs a dependency-list, used
231 when chasing dependencies in isGoodRecEv.
232]
233[A little refactoring (remove redundant argument passed to isGoodRecEv)
234simonpj@microsoft.com**20101202123110
235 Ignore-this: e517c5c12109a230f08dafb4d1e386df
236]
237[Make rebindable if-then-else a little more permissive
238simonpj@microsoft.com**20101202122540
239 Ignore-this: ddb552cfe307607b42d1e4baf4e3bf21
240 
241 See Note [Rebindable syntax for if].  Fixes Trac #4798.
242 Thanks to Nils Schweinsberg <mail@n-sch.de>
243]
244[Improve error message (Trac #4799)
245simonpj@microsoft.com**20101202102706
246 Ignore-this: d9896e4d182936de1f256c820b96a8cf
247]
248[Fix a nasty bug in RULE matching: Trac #4814
249simonpj@microsoft.com**20101202102618
250 Ignore-this: ba058ad46a02bd2faf3a14de93fd19c6
251 
252 See Note [Matching lets], which explains it all in detail.
253 It took me a day to think of a nice way to fix the bug,
254 but I think the result is quite respectable. Subtle, though.
255]
256[Rename -XPArr to -XParallelArrays
257Ben Lippmeier <benl@ouroborus.net>**20101130075415
258 Ignore-this: 21b37680a7f25800d1200b59ad0b6b39
259]
260[FIX #1845 (unconditional relative branch out of range)
261pho@cielonegro.org**20101130143014
262 Ignore-this: df234bd8ad937104c455656fe3c33732
263 
264 Don't use mmap on powerpc-apple-darwin as mmap doesn't support
265 reallocating but we need to allocate jump islands just after each
266 object images. Otherwise relative branches to jump islands can fail
267 due to 24-bits displacement overflow.
268]
269[rts/Linker.c (loadArchive):
270pho@cielonegro.org**20101130142700
271 Ignore-this: bc84f9369ce5c2d289440701b7a3a2ab
272 
273 This routine should be aware of Mach-O misalignment of malloc'ed memory regions.
274]
275[rts/Linker.c (machoGetMisalignment):
276pho@cielonegro.org**20101130123355
277 Ignore-this: 75425600049efd587e9873578e26392f
278 
279 Use fseek(3) instead of rewind(3) to move the file position indicator back to the initial position. Otherwise we can't use this function in loadArchive().
280]
281[rts/Linker.c (ocFlushInstructionCache):
282pho@cielonegro.org**20101130121425
283 Ignore-this: 1e2c207e4b1d17387617ec5d645204b7
284 
285 I found this function causes a segfault when ocAllocateSymbolExtras() has allocated a separate memory region for jump islands.
286]
287[Remove NewQualifiedOperators
288Ian Lynagh <igloo@earth.li>**20101201181117
289 The extension was rejected by Haskell', and deprecated in 7.0.
290]
291[fix ref to utils/ext-core, which moved to Hackage (extcore package)
292Simon Marlow <marlowsd@gmail.com>**20101201092147
293 Ignore-this: 272a7daaa335ef60bcc645db70b4d68b
294]
295[fix floating-point/FFI section: fenv is C99, not POSIX
296Simon Marlow <marlowsd@gmail.com>**20101201092119
297 Ignore-this: ce8b3edd428e4f77691dd739b5b4ae73
298]
299[Fixed some 'unused vars' warnings
300keller@cse.unsw.edu.au**20101130013425
301 Ignore-this: 35790d443faa23b87e4ba442e62376a3
302]
303[vectScalarLam handles int, float, and double now
304keller@cse.unsw.edu.au**20101129231043
305 Ignore-this: 6d67bdc8dd8577184040e791e6f3d0
306]
307[Handling of lets, letrec and case when checking if a lambda expr needs to be vectorised
308keller@cse.unsw.edu.au**20101115051225
309 Ignore-this: 1db6ed63d7b3f6d093e019322b407ff7
310]
311[Document the behaviour of fenv.h functions with GHC (#4391)
312Simon Marlow <marlowsd@gmail.com>**20101126125336
313 Ignore-this: bc4eab49428d567505a28add6fed90f1
314]
315[Remove the no-ghci-lib warning in ghc-pkg
316Ian Lynagh <igloo@earth.li>**20101127235805
317 GHCi libs are no longer necessary, as we can use the .a or .so versions
318 instead.
319]
320[Add GNU-variant support to the .a parser, and other improvements/tidyups
321Ian Lynagh <igloo@earth.li>**20101127223945]
322[Re-indent only
323Ian Lynagh <igloo@earth.li>**20101127191646]
324[Improve linker debugging for archive files
325Ian Lynagh <igloo@earth.li>**20101127190907]
326[Always enable the archive-loading code
327Ian Lynagh <igloo@earth.li>**20101127173000
328 If the GHCi .o lib doesn't exist, load the .a instead
329]
330[Inherit the ForceSpecConstr flag in non-recursive nested bindings
331Roman Leshchinskiy <rl@cse.unsw.edu.au>**20101127125025
332 Ignore-this: 401391eae25cefcb4afaba2e357decc1
333 
334 This makes sure that join points are fully specialised in loops which are
335 marked as ForceSpecConstr.
336]
337[Document -ddump-rule-firings and -ddump-rule-rewrites
338Roman Leshchinskiy <rl@cse.unsw.edu.au>**20101127123528
339 Ignore-this: beade2efe0cd767c0ce9d4f45a3380ba
340]
341[New flag -dddump-rule-rewrites
342Roman Leshchinskiy <rl@cse.unsw.edu.au>**20101127122022
343 Ignore-this: c0ef5b8a199fbd1ef020258d2cde85a3
344 
345 Now, -ddump-rule-firings only shows the names of the rules that fired (it would
346 show "before" and "after" with -dverbose-core2core previously) and
347 -ddump-rule-rewrites always shows the "before" and "after" bits, even without
348 -dverbose-core2core.
349]
350[Acutally, wild-card variables *can* have occurrences
351simonpj@microsoft.com**20101126162409
352 Ignore-this: 544bffed75eeccef03a1097f98524eea
353 
354 This patch removes the Lint test, and comments why
355]
356[Tidy up the handling of wild-card binders, and make Lint check it
357simonpj@microsoft.com**20101126133210
358 Ignore-this: 9e0be9f7867d53046ee5b0e478a0f433
359 
360 See Note [WildCard binders] in SimplEnv.  Spotted by Roman.
361]
362[Substitution should just substitute, not optimise
363simonpj@microsoft.com**20101125172356
364 Ignore-this: 657628d9b6796ceb5f915c43d56e4a06
365 
366 This was causing Trac #4524, by optimising
367      (e |> co)  to   e
368 on the LHS of a rule.  Result, the template variable
369 'co' wasn't bound any more.
370 
371 Now that substition doesn't optimise, it seems sensible to call
372 simpleOptExpr rather than substExpr when substituting in the
373 RHS of rules.  Not a big deal either way.
374]
375[Make SpecConstr "look through" identity coercions
376simonpj@microsoft.com**20101125172138
377 Ignore-this: c1cc585ed890a7702c33987e971e0af6
378]
379[Comment only
380simonpj@microsoft.com**20101125172011
381 Ignore-this: 3c7be8791badd00dcca9610ebb8981d1
382]
383[White space only
384simonpj@microsoft.com**20101101080748
385 Ignore-this: f7133fc6b22ae263c6672543a8534a6f
386]
387[Keep a maximum of 6 spare worker threads per Capability (#4262)
388Simon Marlow <marlowsd@gmail.com>**20101125135729
389 Ignore-this: a020786569656bf2f3a1717b65d463bd
390]
391[Unicide OtherNumber category should be allowed in identifiers (#4373)
392Simon Marlow <marlowsd@gmail.com>**20101115095444
393 Ignore-this: e331b6ddb17550163ee91bd283348800
394]
395[vectoriser: fix warning
396Ben Lippmeier <benl@ouroborus.net>**20101126044036
397 Ignore-this: e1a66bb405bf2f3f56b42c3b13fd4bf3
398]
399[vectoriser: fix warning
400Ben Lippmeier <benl@ouroborus.net>**20101126042950
401 Ignore-this: df8dd25bcfb3946c2974b13953a2f2c7
402]
403[vectoriser: take class directly from the instance tycon
404Ben Lippmeier <benl@ouroborus.net>**20101126042900
405 Ignore-this: 626a416717a5a059f39e53f4ec95fc66
406]
407[vectoriser: comments only
408Ben Lippmeier <benl@ouroborus.net>**20101125073201
409 Ignore-this: 8846ea8895307083bd1ebbc5d7fb1c5
410]
411[vectoriser: follow changes in mkClass
412Ben Lippmeier <benl@ouroborus.net>**20101125062349
413 Ignore-this: d5018cc022686d4272e126ca9a12283a
414]
415[vectoriser: tracing wibbles
416Ben Lippmeier <benl@ouroborus.net>**20101125062332
417 Ignore-this: c2024d8f03bc03bee2851f4f1c139fd5
418]
419[mkDFunUnfolding wants the type of the dfun to be a PredTy
420benl@ouroborus.net**20100914062939
421 Ignore-this: 7aa6e6b140746184cf00355b50c83b66
422]
423[vectoriser: fix conflicts
424Ben Lippmeier <benl@ouroborus.net>**20101125060904
425 Ignore-this: cc3decab1affada8629ca3818b76b3bf
426]
427[Comments and formatting only
428benl@ouroborus.net**20100914062903
429 Ignore-this: b0fc25f0952cafd56cc25353936327d4
430]
431[Comments and formatting to type environment vectoriser
432benl@ouroborus.net**20100909080405
433 Ignore-this: ab8549d53f845c9d82ed9a525fda3906
434]
435[Don't mix implicit and explicit layout
436Ian Lynagh <igloo@earth.li>**20101124231514]
437[Whitespace only
438Ian Lynagh <igloo@earth.li>**20101124230655]
439[Separate NondecreasingIndentation out into its own extension
440Ian Lynagh <igloo@earth.li>**20101124220507]
441[Add another GHC layout rule relaxation to RelaxedLayout
442Ian Lynagh <igloo@earth.li>**20101124205957]
443[Remove an unused build system variable: GhcDir
444Ian Lynagh <igloo@earth.li>**20101124140455]
445[Remove unused build system variable: GhcHasEditline
446Ian Lynagh <igloo@earth.li>**20101124140415]
447[Remove unused variables from the build system: HBC, NHC, MKDEPENDHS
448Ian Lynagh <igloo@earth.li>**20101124140052]
449[Remove references to Haskell 98
450Ian Lynagh <igloo@earth.li>**20101123233536
451 They are no longer right, as we have Haskell' generating new Haskell
452 standards.
453]
454[Tweak a configure test
455Ian Lynagh <igloo@earth.li>**20101123170621]
456[Add a configure test for the visibility hidden attribute
457Ian Lynagh <igloo@earth.li>**20101123170541]
458[sanity: fix places where we weren't filling fresh memory with 0xaa
459Simon Marlow <marlowsd@gmail.com>**20101029092843
460 Ignore-this: 2cb18f7f5afcaf33371aeffce67e218f
461]
462[Just some alpha renaming
463Ian Lynagh <igloo@earth.li>**20101121144455
464 Ignore-this: d5e807c5470840efc199e29f7d50804c
465]
466[Fix bug #3165 (:history throws irrefutable pattern failed)
467pepeiborra@gmail.com**20101115223623
468 Ignore-this: 73edf56e502b4d0385bc044133b27946
469 
470 I ran across this bug and took the time to fix it, closing
471 a long time due TODO in InteractiveEval.hs
472 
473 Instead of looking around to find the enclosing declaration
474 of a tick, this patch makes use of the information already collected during the
475 coverage desugaring phase
476]
477[For bindists, build ghc-pwd with stage 1
478Ian Lynagh <igloo@earth.li>**20101121183520
479 Ignore-this: a3b5c8b78c81ec1b6d5fbf23da346ff5
480 rather then the bootstrapping compiler. This fixes problems where the
481 bootstrapping compiler dynamically links against libraries not on the
482 target machine.
483]
484[Makefile tweak
485Ian Lynagh <igloo@earth.li>**20101121183342
486 Ignore-this: cd55a2819c1a5fd36da1bc7a75d2ded1
487]
488[Fix a makefile include ordering sanity check
489Ian Lynagh <igloo@earth.li>**20101121174916
490 Ignore-this: d0bdd41c4b618944d04ecb4f54fdd0f1
491]
492[Add an extension for GHC's layout-rule relaxations
493Ian Lynagh <igloo@earth.li>**20101120215340
494 Still TODO: Add the other relaxation (#1060) and update the alternative
495 layout rule to use the extension.
496]
497[Tweak the bindist configure.ac.in
498Ian Lynagh <igloo@earth.li>**20101120173735]
499[configure.ac tweaks
500Ian Lynagh <igloo@earth.li>**20101120170245]
501[When testing the bindist, tell it where gcc is
502Ian Lynagh <igloo@earth.li>**20101120155920
503 The location isn't baked into the bindist, as it may differ from
504 machine to machine.
505]
506[Comments only
507simonpj@microsoft.com**20101119100153
508 Ignore-this: 7abd5d965ea805770449d6f8dadbb921
509]
510[ForceSpecConstr now forces specialisation even for arguments which aren't scrutinised
511Roman Leshchinskiy <rl@cse.unsw.edu.au>**20101118212839
512 Ignore-this: db45721d29a694e53746f8b76513efa4
513]
514[Move the superclass generation to the canonicaliser
515simonpj@microsoft.com**20101118120533
516 Ignore-this: 5e0e525402a240b709f2b8104c1682b2
517 
518 Doing superclass generation in the canonicaliser (rather than
519 TcInteract) uses less code, and is generally more efficient.
520 
521 See Note [Adding superclasses] in TcCanonical.
522 
523 Fixes Trac #4497.
524]
525[Fix the generation of in-scope variables for IfaceLint check
526simonpj@microsoft.com**20101118090057
527 Ignore-this: bbcdba61ddf89d07fe69ca99c2017e3f
528]
529[Comments only
530simonpj@microsoft.com**20101118090034
531 Ignore-this: fa2936d35a0f7be4e4535ea9e2b7bf7b
532]
533[Omit bogus test for -XDeriveFunctor
534simonpj@microsoft.com**20101118090028
535 Ignore-this: a534243011809ebbb788b910961601c5
536 
537 It was duplicated in the case of 'deriving( Functor )'
538 and wrong for 'deriving( Foldable )'
539]
540[Improve error message on advice from a user
541simonpj@microsoft.com**20101118085306
542 Ignore-this: bd4f3858ff24e602e985288f27d536f3
543 
544 See Trac #4499
545]
546[TAG 2010-11-18
547Ian Lynagh <igloo@earth.li>**20101118011554
548 Ignore-this: ccadbe7fadd1148d2ee3caa8c8821ec5
549]
550Patch bundle hash:
5518a12ce82b26929c7793bd0a5335cfd130a93a37c