summaryrefslogtreecommitdiff
path: root/ghc/docs/users_guide/debugging.sgml
Commit message (Collapse)AuthorAgeFilesLines
* [project @ 2004-08-15 20:37:22 by panne]panne2004-08-151-522/+0
| | | | | | Started to convert the users guide to DocBook XML. Not yet finished, there are still *tons* of misplaced indexterms, but some sensible documentation can already be generated.
* [project @ 2004-08-08 17:26:26 by krasimir]krasimir2004-08-081-8/+8
| | | | xmlize sgml docbooks
* [project @ 2004-01-06 10:45:22 by simonmar]simonmar2004-01-061-2/+2
| | | | Replace -ddump-all and -ddump-most with -v5 and -v4 respectively.
* [project @ 2001-02-16 17:35:01 by simonmar]simonmar2001-02-161-479/+401
| | | | Today's doc hacking.
* [project @ 2001-02-15 17:33:53 by simonmar]simonmar2001-02-151-142/+0
| | | | | More documentation rewriting... I'm particularly proud of the "flag reference" section, please check it out.
* [project @ 2000-12-12 14:48:46 by simonmar]simonmar2000-12-121-11/+0
| | | | -noC has been removed
* [project @ 2000-09-29 15:27:37 by rrt]rrt2000-09-291-1/+1
| | | | Changed *do* to <Emphasis>do</Emphasis>
* [project @ 2000-09-14 13:46:39 by simonpj]simonpj2000-09-141-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | --------------------------------------- Simon's tuning changes: early Sept 2000 --------------------------------------- Library changes ~~~~~~~~~~~~~~~ * Eta expand PrelShow.showLitChar. It's impossible to compile this well, and it makes a big difference to some programs (e.g. gen_regexps) * Make PrelList.concat into a good producer (in the foldr/build sense) Flag changes ~~~~~~~~~~~~ * Add -ddump-hi-diffs to print out changes in interface files. Useful when watching what the compiler is doing * Add -funfolding-update-in-place to enable the experimental optimisation that makes the inliner a bit keener to inline if it's in the RHS of a thunk that might be updated in place. Sometimes this is a bad idea (one example is in spectral/sphere; see notes in nofib/Simon-nofib-notes) Tuning things ~~~~~~~~~~~~~ * Fix a bug in SetLevels.lvlMFE. (change ctxt_lvl to dest_level) I don't think this has any performance effect, but it saves making a redundant let-binding that is later eliminated. * Desugar.dsProgram and DsForeign Glom together all the bindings into a single Rec. Previously the bindings generated by 'foreign' declarations were not glommed together, but this led to an infelicity (i.e. poorer code than necessary) in the modules that actually declare Float and Double (explained a bit more in Desugar.dsProgram) * OccurAnal.shortMeOut and IdInfo.shortableIdInfo Don't do the occurrence analyser's shorting out stuff for things which have rules. Comments near IdInfo.shortableIdInfo. This is deeply boring, and mainly to do with making rules work well. Maybe rules should have phases attached too.... * CprAnalyse.addIdCprInfo Be a bit more willing to add CPR information to thunks; in particular, if the strictness analyser has just discovered that this is a strict let, then the let-to-case transform will happen, and CPR is fine. This made a big difference to PrelBase.modInt, which had something like modInt = \ x -> let r = ... -> I# v in ...body strict in r... r's RHS isn't a value yet; but modInt returns r in various branches, so if r doesn't have the CPR property then neither does modInt * MkId.mkDataConWrapId Arrange that vanilla constructors, like (:) and I#, get unfoldings that are just a simple variable $w:, $wI#. This ensures they'll be inlined even into rules etc, which makes matching a bit more reliable. The downside is that in situations like (map (:) xs), we'll end up with (map (\y ys. $w: y ys) xs. Which is tiresome but it doesn't happen much. * SaAbsInt.findStrictness Deal with the case where a thing with no arguments is bottom. This is Good. E.g. module M where { foo = error "help" } Suppose we have in another module case M.foo of ... Then we'd like to do the case-of-error transform, without inlining foo. Tidying up things ~~~~~~~~~~~~~~~~~ * Reorganised Simplify.completeBinding (again). * Removed the is_bot field in CoreUnfolding (is_cheap is true if is_bot is!) This is just a tidy up * HsDecls and others Remove the NewCon constructor from ConDecl. It just added code, and nothing else. And it led to a bug in MkIface, which though that a newtype decl was always changing! * IdInfo and many others Remove all vestiges of UpdateInfo (hasn't been used for years)
* [project @ 2000-09-08 12:33:22 by simonmar]simonmar2000-09-081-2/+2
| | | | <program> should be <command>
* [project @ 2000-09-06 13:11:59 by simonmar]simonmar2000-09-061-0/+32
| | | | | Document -unreg and unregisterised compilation. Untested since our DocBook installation is currently broken.
* [project @ 2000-08-31 09:53:08 by simonpj]simonpj2000-08-311-0/+16
| | | | Document -ddump-minimal-imports
* [project @ 2000-05-25 12:41:14 by simonpj]simonpj2000-05-251-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ~~~~~~~~~~~~ Apr/May 2000 ~~~~~~~~~~~~ This is a pretty big commit! It adds stuff I've been working on over the last month or so. DO NOT MERGE IT WITH 4.07! Interface file formats have changed a little; you'll need to make clean before remaking. Simon PJ Recompilation checking ~~~~~~~~~~~~~~~~~~~~~~ Substantial improvement in recompilation checking. The version management is now entirely internal to GHC. ghc-iface.lprl is dead! The trick is to generate the new interface file in two steps: - first convert Types etc to HsTypes etc, and thereby build a new ParsedIface - then compare against the parsed (but not renamed) version of the old interface file Doing this meant adding code to convert *to* HsSyn things, and to compare HsSyn things for equality. That is the main tedious bit. Another improvement is that we now track version info for fixities and rules, which was missing before. Interface file reading ~~~~~~~~~~~~~~~~~~~~~~ Make interface files reading more robust. * If the old interface file is unreadable, don't fail. [bug fix] * If the old interface file mentions interfaces that are unreadable, don't fail. [bug fix] * When we can't find the interface file, print the directories we are looking in. [feature] Type signatures ~~~~~~~~~~~~~~~ * New flag -ddump-types to print type signatures Type pruning ~~~~~~~~~~~~ When importing data T = T1 A | T2 B | T3 C it seems excessive to import the types A, B, C as well, unless the constructors T1, T2 etc are used. A,B,C might be more types, and importing them may mean reading more interfaces, and so on. So the idea is that the renamer will just import the decl data T unless one of the constructors is used. This turns out to be quite easy to implement. The downside is that we must make sure the constructors are always available if they are really needed, so I regard this as an experimental feature. Elimininate ThinAir names ~~~~~~~~~~~~~~~~~~~~~~~~~ Eliminate ThinAir.lhs and all its works. It was always a hack, and now the desugarer carries around an environment I think we can nuke ThinAir altogether. As part of this, I had to move all the Prelude RdrName defns from PrelInfo to PrelMods --- so I renamed PrelMods as PrelNames. I also had to move the builtinRules so that they are injected by the renamer (rather than appearing out of the blue in SimplCore). This is if anything simpler. Miscellaneous ~~~~~~~~~~~~~ * Tidy up the data types involved in Rules * Eliminate RnEnv.better_provenance; use Name.hasBetterProv instead * Add Unique.hasKey :: Uniquable a => a -> Unique -> Bool It's useful in a lot of places * Fix a bug in interface file parsing for __U[!]
* [project @ 2000-04-27 13:14:44 by rrt]rrt2000-04-271-1/+1
| | | | Goodness only knows what an "oarser" is. Or rather, was.
* [project @ 2000-04-18 11:01:24 by simonmar]simonmar2000-04-181-0/+7
| | | | | Add declarations so that emacs PSGML mode can find the DOCTYPE declaration properly.
* [project @ 2000-01-24 16:47:24 by rrt]rrt2000-01-241-10/+10
| | | | | Changed double quotes to &ldquo; and &rdquo;. Improvements to Windows installation instructions.
* [project @ 2000-01-10 14:52:21 by rrt]rrt2000-01-101-57/+54
| | | | Retagged <Literal>s into <Filename>, <Option>, <Command>, &c.
* [project @ 2000-01-05 11:14:06 by rrt]rrt2000-01-051-0/+676
VSGML files changed back to plain SGML during change from LinuxDoc to DocBook.