- 22 Aug, 2008 1 commit
-
-
daniel@phasevelocity.org authored
-
- 07 Sep, 2008 1 commit
-
-
chak@cse.unsw.edu.au. authored
- This adds the new equational solver based on the notion of normalised equalities. - The new algorithm is conceptually much simpler and will eventually enable us to implement a fully integrated solver that solves equality and dictionary constraints together. - More details are at <http://hackage.haskell.org/trac/ghc/wiki/TypeFunctionsSolving> - The code is there, but it is not being used yet.
-
- 06 Sep, 2008 8 commits
-
-
Ian Lynagh authored
"LATEX_DOCS = YES" enables them
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
It used to point to a file on haskell.org, which didn't necessarily describe the right version of core.
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
-
- 05 Sep, 2008 13 commits
-
-
Ian Lynagh authored
Now that we build haddock in the GHC build, we don't need to look for it on the path.
-
Ian Lynagh authored
-
simonpj@microsoft.com authored
This patch deals with a rather complicated situation involving overlapping instances. It's all explained in the commments Note [Subtle interaction of recursion and overlap] The absence of this case make DoCon and regex-base fail with an error about overlapping instances. Now they work properly again.
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
Several things * Only gather call details for local things, not imported ones * When making auxiliary dictionary bindings in specDefn, remember to give them an unfolding. Otherwise we don't gather call details for functions applied to them.
-
simonpj@microsoft.com authored
When binding x = e, we now attach an unfolding to 'x' even if it won't be used because SimplGently is on. Reason: the specialiser runs right after SimplGently, and it (now) only gathers call information for calls whose dictionary arguments are "interesting" -- i.e. have an unfolding of some kind.
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
-
Ian Lynagh authored
-
Ian Lynagh authored
Mainly this means adding a binding for all the exports, e.g. as well as gtAddr# :: Addr# -> Addr# -> Bool we also generate gtAddr# = let x = x in x
-
- 04 Sep, 2008 5 commits
-
-
Ian Lynagh authored
This means S_ISSOCK gets defined on Linux
-
Ian Lynagh authored
-
Ross Paterson authored
An incorrect libraries/ prefix was being added.
-
dias@eecs.harvard.edu authored
The insertion code in UniqFM fails if a unique key produces a negative FastInt. I've added an assertion to check that each insertion uses a positive Unique. Where do the negative uniques come from? Both Simom M and I have run into this problem when computing hashes for data structures. In both cases, we have avoided the problem by ensuring that the hashes remain positive.
-
Ian Lynagh authored
-
- 03 Sep, 2008 4 commits
-
-
Ian Lynagh authored
-
Ian Lynagh authored
Required libraries now have 3 fields in the packages file, not 2
-
simonpj@microsoft.com authored
This patch makes an important change to the way that dictionary functions are handled. Before, they were unconditionally marked INLIINE, but all the code written by the user in the instance was inside that unconditionally-inlined function. Result: massive code bloat in programs that use complicated instances. This patch make instances behave rather as if all the methods were written in separate definitions. That dramatically reduces bloat. The new plan is described in TcInstDcls Note [How instance declarations are translated] Everything validates. The major code-bloat bug is squashed: in particular DoCon is fine now (Trac #2328) and I believe that #955 is also better. Nofib results: Binary sizes -1 s.d. +2.5% +1 s.d. +3.1% Average +2.8% Allocations -1 s.d. -6.4% +1 s.d. +2.5% Average -2.0% Note that 2% improvement. Some programs improve by 20% (rewrite)! Two get slightly worse: pic (2.1%), and gameteb (3.2%), but all others improve or stay the same. I am not absolutely 100% certain that all the corners are correct; for example, when default methods are marked INLINE, are they inlined? But overall it's better. It's nice that the patch also removes a lot of code. I deleted some out of date comments, but there's something like 100 fewer lines of code in the new version! (In the line counts below, there are a lot of new comments.)
-
simonpj@microsoft.com authored
This patch significantly improves the way in which recursive groups are specialised. This turns out ot be very important when specilising the bindings that (now) emerge from instance declarations. Consider let rec { f x = ...g x'... ; g y = ...f y'.... } in f 'a' Here we specialise 'f' at Char; but that is very likely to lead to a specialisation of 'g' at Char. We must do the latter, else the whole point of specialisation is lost. This was not happening before. The whole thing is desribed in Note [Specialising a recursive group] Simon
-
- 02 Sep, 2008 2 commits
-
-
simonpj@microsoft.com authored
-
Simon Marlow authored
-
- 01 Sep, 2008 1 commit
-
-
Simon Marlow authored
When linking in --make we check the modification time of the executable against the modification time of the object files, and only re-link if any object file is newer. However, we should also check the modification times of packages, since the recompilation checker also tracks dependencies in packages. In a GHC build this means that if you recompile stage2 and don't manage to change any fingerpints, we won't recompile Main but we'll still re-link it.
-
- 31 Aug, 2008 1 commit
-
-
Ian Lynagh authored
-
- 30 Aug, 2008 3 commits
-
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
-
- 31 Aug, 2008 1 commit
-
-
Ian Lynagh authored
-