Commits

Show all
Author Commit Message Labels Comments Date
Richard Eisenberg
Added check to find inaccessible equations in family instance groups. This check uses the isDominatedBy function in types/FamInstEnv, which is currently incomplete. Thus, it is possible some inaccessible equations will not be marked as such. However, all equations marked as inaccessible are, so good code can never produce an error. It's worth noting that bad code that does not produce an error is silly, but does not compromise the type system.
Branches
overlapping-tyfams
Richard Eisenberg
Allowed instance groups to match applications even coinciding. See Note [Confluence checking within groups] in types/FamInstEnv.lhs for the gory details. Also did some refactoring, including eliminating the FamIncoherence tracking outside of FamInstEnv. It's much better now.
Branches
overlapping-tyfams
Richard Eisenberg
Fixed bugs in overlapping type families caught by regression testing.
Branches
overlapping-tyfams
Richard Eisenberg
Added overlapping type family instances. The primary change is in compiler/types/FamInstEnv.hs, where the new lookup algorithm is written. See comments in that file for the full details. The biggest change that could affect other people is that, now, the top-level family instance declaration leads to a FamInstGroup, not just a FamInst. A FamInstGroup, in turn, holds an ordered list of FamInsts. This change required a ripple of changes th…
Branches
overlapping-tyfams
Richard Eisenberg
Removed warnings from dead code
Branches
overlapping-tyfams
Richard Eisenberg
Made a type instance group compile into a list of FamInsts. Cleaned up some source location tracking.
Branches
overlapping-tyfams
Richard Eisenberg
Added parsing rules for type instance groups.
Branches
overlapping-tyfams
Richard Eisenberg
Bug fix: check don't derive default family instances for both type and data families when a local instance exists
Branches
overlapping-tyfams
Richard Eisenberg
Merge branch 'master' into overlapping-tyfams
Branches
overlapping-tyfams
simonmar
Fix build failure on OS X (#7119) When refactoring this recently I accidentally put the dead-strip-preventer symbol (only used on OS X) in the wrong section.
simonmar
Remove uses of fixC from the codeGen, and make the FCode monad strict
simonmar
Only run the second round of control-flow optimisations when -O is on
simonmar
a couple of small optimisations
Erik de Castro Lopo
Add cast to placate gcc 4.6 on linux-powerpc (#7113).
Ian Lynagh
Merge branch 'master' of darcs.haskell.org:/srv/darcs//ghc
Ian Lynagh
Set the value of Unregisterised in the bindist configure.ac Now that it's included in settings, the bindist configure script needs to know it.
Gabor Pali
Add missing flag for respecting EXTRA_LIBDIR
Richard Eisenberg
Note to self about modifying typechecking algorithm later
Branches
overlapping-tyfams
Richard Eisenberg
Updates to Haddock to deal with changes in Hs syntax tree
Branches
overlapping-tyfams
simonmar
fix warning
simonmar
Fix a bug in the handling of recent_activity The problem occurred when the idle GC was turned off with +RTS -I0. Then the scheduler would go into the state ACTIVITY_DONE_GC directly without doing a GC, and a subsequent GC would put it back to ACTIVITY_YES but without turning the timer back on. Instead if the GC finds the state is ACTIVITY_DONE_GC it should leave it there.
simonmar
maybeInvertComparison: remove floating-point comparisons See comments.
simonmar
entryHeapCheck: fix calls to stg_gc_fun and stg_gc_enter_1 We weren't passing the arguments correctly to the GC functions, which usually happened to work because the arguments were in the right registers already. After this fix the profiling tests go through with the new code generator.
simonmar
Small optimisation When calling newCAF, refer to the closure using its LocalReg rather than R1. Using R1 here was preventing the register allocator from coalescing the assignment x=R1 at the beginning of the function.
simonmar
fix a warning
simonmar
Eliminate "r = r" in mkAssign
simonmar
Node calling convs should use R1 even if it isn't a register
simonmar
Add missing cases in hand-coded instance Eq GlobalReg aargh.
simonmar
fix maybeSaveCostCentre: cases were reversed
simonmar
Fix update frames for profiling
  1. Prev
  2. Next