summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Give an error message for INLINE/SPECIALISE for missing default methodwip/T5084Max Bolingbroke2011-04-031-9/+27
| | | | | | | | | | | | | | Basically, if the user has written: class Foo a where bar :: a -> a {-# INLINE bar #-} Then we should error out because there is no default method corresponding to the `bar' INLINE pragma. This patch achieves this by splitting the signatures for a class declaration apart into two sets: one that applies to the defaults (INLINE, SPECIALISE), and one which defines the class itself (fixity, type signatures). The two sets are then renamed in different contexts.
* Merge branch 'master' of ssh://darcs.haskell.org/srv/darcs/ghcMax Bolingbroke2011-04-033-13/+16
|\
| * Fix parsing constructors containing dots; fixes trac #4891Ian Lynagh2011-04-031-3/+10
| |
| * Merge branch 'master' of http://darcs.haskell.org/ghcIan Lynagh2011-04-031-1/+4
| |\
| * | Update boot scripts for gitIan Lynagh2011-04-032-10/+6
| | |
* | | Use tcRnImports rather than rnImports with GHCi "import" statement: fixes #4832Max Bolingbroke2011-04-032-7/+7
| |/ |/| | | | | | | | | | | | | | | | | The bug here was that just using rnImports does not ensure that any dependent orphan modules are loaded, so instances declared by such modules will not be usable from the GHCi command line after an "import". This did not affect the :m syntax because it takes a different code path and uses getModuleExports directly, which contains its own calls to the orphan-module loading stuff.
* | Merge branch 'master' of ssh://darcs.haskell.org/srv/darcs/ghcMax Bolingbroke2011-04-031-22/+5
|\ \ | |/
| * Update README to talk about git rather than darcsIan Lynagh2011-04-021-22/+5
| |
* | Prefer builtin commands to macros in GHCi command resolution (#3858)Max Bolingbroke2011-04-021-1/+4
|/ | | | | | | | | | | | | | | | | Current precedence rules in GHCi are that: * User macros are *always* preferred in command resolution * User macros that are defined earlier are preferred to those that are defined earlier on * Builtin commands have lowest precedence However this caused user confusion because e.g. defining a macro beginning with "i" would override the standard :info command whenever the user typed the abbreviated command :i. The new precedence rules are based on the view that things defined earlier are always preferred to things defined later. The builtin commands are logically defined earliest of all (when GHCi starts) so they always take precedence.
* Merge branch 'master' of http://darcs.haskell.org/ghcIan Lynagh2011-04-026-4/+36
|\
| * Mark scripts executable (boot, and the ones the build system chmods)Max Bolingbroke2011-04-024-0/+0
| |
| * Ignore more generated filesMax Bolingbroke2011-04-021-0/+20
| |
| * Pop OS X stack padding even if the foreign call is stdcall (#5052)Max Bolingbroke2011-04-021-4/+16
| | | | | | | | | | | | | | | | | | | | | | The problem was that the codegen for foreign calls makes sure the stack is 16-byte aligned on OS X by pushing some padding. In the case where the foreign call is cdecl, that padding gets popped after the call, but if the convention is stdcall then it doesn't generate any popping code at all. However, this is incorrect because the stdcall only promises to pop the arguments, not the padding. The fix is to generate code to pop the padding (if any) on OS X.
* | Follow changes in CabalIan Lynagh2011-04-021-0/+2
|/
* Merge branch 'master' of http://darcs.haskell.org/ghcIan Lynagh2011-04-011-0/+8
|\
| * add "./sync-all fetch" and "./sync-all new"Simon Marlow2011-04-011-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ./sync-all fetch Fetches remote changes from the "origin" for each sub-repo. Useful before "./sync-all new". (Runs 'git fetch origin' on all sub-repos.) ./sync-all new Lists the new patches relative to "origin" for each sub-repo. You probably want to './sync-all fetch' first. (Runs 'git log origin..' on all sub-repos)
* | Merge branch 'ticket-5028'Ian Lynagh2011-04-011-3/+2
|\ \ | |/ |/|
| * Really zap case-binder occurrence info: solves #5028Ian Lynagh2011-04-011-3/+2
| | | | | | | | | | | | Converted from a darcs patch from Max Bolingbroke: Fri Apr 1 11:39:49 BST 2011 Max Bolingbroke <batterseapower@hotmail.com> * Really zap case-binder occurrence info: solves #5028
* | add a "set-origin" commandSimon Marlow2011-04-011-0/+4
| | | | | | | | | | | | | | | | | | Use it like this ./sync-all -r http://darcs.haskell.org/ghc-git set-origin to set the origin branches of all sub-repos to point to the appropriate repo within the http://darcs.haskell.org/ghc-git tree.
* | fix 'sync-all pull'Simon Marlow2011-04-011-6/+22
| |
* | Fix bindisttest in gitIan Lynagh2011-04-011-1/+4
| |
* | Update meta-repo stuffIan Lynagh2011-03-314-42/+43
|/
* Introducing a datatype for WorkLists that properly prioritizes equalities.ghc-darcs-git-switchoverdimitris@microsoft.com2011-03-313-80/+137
| | | | | | | | | We were not prioritizing the interaction of equalities in the worklist, because pre-canonicalization solved the constraints one by one, in their arrival order. This patch fixes this, so it's a generally useful improvement, mainly for efficiency. It makes #4981 go away, although it's not a definite answer to the cause of the problem. See discussion on Trac.
* Fix Trac #5048: location on AbsBindssimonpj@microsoft.com2011-03-312-17/+17
| | | | | This patch just puts a better SrcSpan on the AbsBinds produced by the type checker
* Comments and variable naming onlysimonpj@microsoft.com2011-03-311-3/+5
|
* Re-enable assertion now the new type checker is insimonpj@microsoft.com2011-03-311-2/+2
| | | | (See Trac #3011.)
* Add a new static flag -fno-opt-coercionsimonpj@microsoft.com2011-03-314-3/+17
| | | | This just disables the coercion optimiser, mainly for measurements in the paper
* New statistics flags -ddump-core-statssimonpj@microsoft.com2011-03-316-1/+112
| | | | | This dumps a (one-line) listing of the size of the Core program, just after tidying
* Windows build fix: ignore pthread.h if it exists (#4989)Simon Marlow2011-03-301-1/+1
|
* Add a debug check for a non-empty FPU stack on x86 (see #4914)Simon Marlow2011-03-303-0/+22
|
* implement double-to-float narrowing in the x86 NCG (#4441)Simon Marlow2011-03-303-7/+20
|
* scheduleThreadOn: use TSO_LOCKED even on the non-threaded RTSSimon Marlow2011-03-301-1/+1
|
* add atexit (#4456)Simon Marlow2011-03-291-0/+1
|
* Turn -vfia-C into a no-opIan Lynagh2011-03-291-16/+8
|
* Remove -fvia-C references from the users guideIan Lynagh2011-03-295-40/+7
|
* Add a tool for checking for problems in the built-in uniquesIan Lynagh2011-03-292-0/+131
|
* Renumber TH uniquesIan Lynagh2011-03-292-145/+145
| | | | | | This fixes a couple of duplicates that had crept in, and also renumbers everything so that they are monotonically increasing through the file.
* Whitespace onlyIan Lynagh2011-03-281-17/+17
|
* fix typo (#5056)Simon Marlow2011-03-291-1/+1
|
* Add a script for library mergingIan Lynagh2011-03-271-0/+34
|
* bindist comparison tool: Some logic improvements, and testsuite supportIan Lynagh2011-03-273-62/+59
|
* Fix the build on Windows (disable hsc2hs --cross-safe)Ian Lynagh2011-03-261-0/+5
| | | | | | The .hsc files aren't currently safe for cross-compilation on Windows: libraries\haskeline\.\System\Console\Haskeline\Backend\Win32.hsc:160 directive "let" is not safe for cross-compilation
* Bindist comparison tool: Recognise OS X .dylib files tooIan Lynagh2011-03-251-3/+3
|
* Fix #4914 (I hope)Simon Marlow2011-03-251-0/+1
| | | | | | | | | | | | | | | | | | | | | | | Here's a bit of erroneous code: 00000c5c <s1ad_info>: c5c: 8b 45 08 mov 0x8(%ebp),%eax c5f: d9 46 03 flds 0x3(%esi) c62: dd d9 fstp %st(1) c64: d9 55 08 fsts 0x8(%ebp) c67: 89 c6 mov %eax,%esi c69: c7 45 00 24 0c 00 00 movl $0xc24,0x0(%ebp) c70: f7 c6 03 00 00 00 test $0x3,%esi c76: 75 ac jne c24 <s1ac_info> So we should be doing some ffrees before the jne. The code that inserts the ffrees wasn't expecting to do it for a conditional jump, because they are usually local, but we have a late optimisation that shortcuts jumps-to-jumps, and that can result in a non-local conditional jump. This at least fixes an instance of the bug that I was able to reproduce, let's hope there aren't any more.
* Ignore comments when inlining.Edward Z. Yang2011-03-251-0/+1
|
* Fix typo in documentation (Trac #5035)simonpj@microsoft.com2011-03-251-1/+1
|
* Split out "Raw Cmm" dump to its own flag -ddump-raw-cmmEdward Z. Yang2011-03-222-1/+3
| | | | | | | | | | | | | | Previously, -ddump-cmmz was used to dump out the "Raw Cmm" right before it gets passed to the backends, as well as all of the intermediate phases in the new code generator. Unfortunately, there are a lot of intermediate phases, which means -ddump-cmmz takes a very long time with -fnew-codegen for large programs, even if you're only interested in the final result. Here we split up -ddump-cmmz into -ddump-cmmz (now exclusively for the new code generator) and -ddump-raw-cmm (for both code generation paths.) The old flag was not documented in the manual, so hopefully not too many people will be surprised by this change.
* RednCounts can contain CAFs, so support them in cvtToClosureLbl.Edward Z. Yang2011-03-221-0/+1
|
* Immediately tag initialization code to prevent untagged spills.Edward Z. Yang2011-03-233-6/+14
| | | | | | | | | | | | | | | | | | | | When allocating new objects on the heap, we previously returned a CmmExpr containing the heap pointer as well as the tag expression, which would be added to the code graph upon first usage. Unfortunately, this meant that untagged heap pointers living in registers might be spilled to the stack, where they interacted poorly with garbage collection (we saw this bug specifically with the compacting garbage collector.) This fix immediately tags the register containing the heap pointer, so that unless we have extremely unfriendly spill code, the new pointer will never be spilled to the stack untagged. An alternate solution might have been to modify allocDynClosure to tag the pointer upon the initial register allocation, but not all invocations of allocDynClosure tag the resulting pointer, and threading the consequent CgIdInfo for the cases that did would have been annoying.
* Fix Trac #5028: zap occ info when doing the binder swapsimonpj@microsoft.com2011-03-211-5/+20
| | | | | | This fixes the Lint error, but still risks leaving stupid let { x=y } bindings in the code. But no time to fix that today. (Leave the ticket open for that reason.)