Ben.Lippmeier@anu.edu.au [Fri, 24 Aug 2007 15:21:42 +0000 (15:21 +0000)]
Add a count of how many spill/reloads/reg-reg-moves remain to dump-asm-stats
Ian Lynagh [Tue, 28 Aug 2007 12:49:18 +0000 (12:49 +0000)]
Use INSTALL_HEADERS in includes/ rather than abusing INSTALL_DATAS
Ian Lynagh [Tue, 28 Aug 2007 12:47:59 +0000 (12:47 +0000)]
Make some header-installing machinery, and use it to install gmp.h
Ian Lynagh [Tue, 28 Aug 2007 12:32:18 +0000 (12:32 +0000)]
Tidy up the gmp/ Makefile a bit
Pepe Iborra [Mon, 27 Aug 2007 18:09:49 +0000 (18:09 +0000)]
:stepover ---> :steplocal, :stepmodule
:stepover is declared a failed experiment.
:steplocal steps only on ticks contained in the current
top level declaration.
:stepmodule steps only on ticks contained on the current
module.
The current top level declaration and module are with
respect to the breakpoint we are stopped on.
The main reason for the failure of :stepover
(apart from lacking a lexical call stack of course)
is that it fails to detect when the expression being
evaluated is "complete", i.e. there are no ticks left in it.
My assumption of the rightmost tick as the "last one",
signaling that the expression is completely evaluated,
is not true at all under laziness.
This assumption was key in the implementation of :stepover.
Pepe Iborra [Mon, 27 Aug 2007 17:23:15 +0000 (17:23 +0000)]
Use a version of obtainTerm that takes a max depth bound
when printing the contents of binding at a breakpoint
Pepe Iborra [Mon, 27 Aug 2007 11:44:37 +0000 (11:44 +0000)]
Be more careful when calculating the enclosing top level declaration of a srcspan
Pepe Iborra [Sun, 26 Aug 2007 21:33:57 +0000 (21:33 +0000)]
Style: remove trailing spaces
Pepe Iborra [Sun, 26 Aug 2007 21:33:39 +0000 (21:33 +0000)]
Print contents of bindings when stopping at a breakpoint
Pepe Iborra [Fri, 24 Aug 2007 13:40:22 +0000 (13:40 +0000)]
A partial attempt to improve :stepover
With this patch, :stepover can effectively appear to step over recursive calls and
calls to locally bound functions (in a where clause).
However, when we run out of ticks in the current expression,
the illusion vanishes and laziness brings us to the body of the last function
we "stepped over".
This is not desired at all, it is potentially very confusing.
As a countermeasure, when this happens :stepover emits a warning
"Warning: no more breakpoints in this function body, switching to :step"
Pepe Iborra [Wed, 22 Aug 2007 08:42:54 +0000 (08:42 +0000)]
Better document :stepover and its limitations
:stepover only works lexically locally, in the context of the
current expression. I have tried to make this point clear
in the users guide with an example.
Simon Marlow [Tue, 28 Aug 2007 09:15:50 +0000 (09:15 +0000)]
FIX #1533: foreign exporing the same identifier multiple times gave a link error
We were generating a new top-level binding derived from the name of
the existing top-level name, and making the name external. Multiple
instances therefore clashed. The fix is to make each name unique, by
appending an actual Unique to the derived name.
Simon Marlow [Sun, 26 Aug 2007 15:19:03 +0000 (15:19 +0000)]
convert to use System.FilePath
Simon Marlow [Sun, 26 Aug 2007 07:33:22 +0000 (07:33 +0000)]
Refactoring only: remove [Id] field from ForeignStubs
We used to pass the list of top-level foreign exported bindings to the
code generator so that it could create StablePtrs for them in the
stginit code. Now we don't use stginit unless profiling, and the
StablePtrs are generated by C functions marked with
attribute((constructor)). This patch removes various bits associated
with the old way of doing things, which were previously left in place
in case we wanted to switch back, I presume. Also I refactored
dsForeigns to clean it up a bit.
Manuel M T Chakravarty [Tue, 28 Aug 2007 06:18:51 +0000 (06:18 +0000)]
Type checking for type synonym families
This patch introduces type checking for type families of which associated
type synonyms are a special case. E.g.
type family Sum n m
type instance Sum Zero n = n
type instance Sum (Succ n) m = Succ (Sum n m)
where
data Zero -- empty type
data Succ n -- empty type
In addition we support equational constraints of the form:
ty1 ~ ty2
(where ty1 and ty2 are arbitrary tau types) in any context where
type class constraints are already allowed, e.g.
data Equals a b where
Equals :: a ~ b => Equals a b
The above two syntactical extensions are disabled by default. Enable
with the -XTypeFamilies flag.
For further documentation about the patch, see:
* the master plan
http://hackage.haskell.org/trac/ghc/wiki/TypeFunctions
* the user-level documentation
http://haskell.org/haskellwiki/GHC/Indexed_types
The patch is mostly backwards compatible, except for:
* Some error messages have been changed slightly.
* Type checking of GADTs now requires a bit more type declarations:
not only should the type of a GADT case scrutinee be given, but also
that of any identifiers used in the branches and the return type.
Please report any unexpected behavior and incomprehensible error message
for existing code.
Contributors (code and/or ideas):
Tom Schrijvers
Manuel Chakravarty
Simon Peyton-Jones
Martin Sulzmann
with special thanks to Roman Leshchinskiy
Ian Lynagh [Sun, 26 Aug 2007 14:45:40 +0000 (14:45 +0000)]
Fix retainer profiling
Ian Lynagh [Sun, 26 Aug 2007 13:38:30 +0000 (13:38 +0000)]
On Windows, stage1 also deps on stamp.inplace-gcc-lib
sven.panne@aedion.de [Sun, 26 Aug 2007 09:30:26 +0000 (09:30 +0000)]
Synched GHC's .spec file with recent changes
Fixed hsc2hs handling and added hpc binary. Explicitly generate Cabal docs.
Note that the Haddock documentation is currently not in the right place,
this needs more investigation, but at least we can build a valid RPM now.
Ian Lynagh [Sun, 26 Aug 2007 00:12:32 +0000 (00:12 +0000)]
Check that exported modules were actually imported; fixes #1384
sven.panne@aedion.de [Sat, 25 Aug 2007 19:32:16 +0000 (19:32 +0000)]
Be more flexible when trying to make scripts executable
Ian Lynagh [Sat, 25 Aug 2007 17:55:02 +0000 (17:55 +0000)]
Don't put push-all and darcs-all in source dists
We don't have the _darcs directories, so they won't work.
Ian Lynagh [Sat, 25 Aug 2007 17:12:31 +0000 (17:12 +0000)]
Add a missing "entryCode"
This was causing us to try to jump to the address of an infotable when
unregisterised, leading to a segfault.
Ian Lynagh [Sat, 25 Aug 2007 13:08:10 +0000 (13:08 +0000)]
Fix the IF_DEBUG(interpreter in StgCRun.c
Ian Lynagh [Sat, 25 Aug 2007 01:57:54 +0000 (01:57 +0000)]
Add "Support SMP" and "RTS ways" to the compiler --info output
sven.panne@aedion.de [Sat, 25 Aug 2007 13:30:52 +0000 (13:30 +0000)]
Overhaul boot script
* Call autoreconf only if necessary, avoiding a strict tool dependency.
* Be a good *nix citizen and don't clutter the output when everything is fine.
* Make a few more scripts executable.
sven.panne@aedion.de [Sat, 25 Aug 2007 12:11:50 +0000 (12:11 +0000)]
Added a few missing files to a source distribution
sven.panne@aedion.de [Sat, 25 Aug 2007 11:55:19 +0000 (11:55 +0000)]
Fixed test for pwd executable
Added a missing "test" and replaced the "-e" option of the shell-builtin
"test" with "-f". The former is not portable, see autoconf documentation.
Ian Lynagh [Fri, 24 Aug 2007 22:23:17 +0000 (22:23 +0000)]
Jump through some hoops to make the Windows SEH exception stuff happy
Ian Lynagh [Fri, 24 Aug 2007 19:56:09 +0000 (19:56 +0000)]
Check haddocking works when validating
Ian Lynagh [Fri, 24 Aug 2007 21:30:24 +0000 (21:30 +0000)]
Add "have interpreter" to the compiler --info output
Ian Lynagh [Fri, 24 Aug 2007 13:27:02 +0000 (13:27 +0000)]
In ghc-inplace, flush stdout after giving debugging output
Ian Lynagh [Fri, 10 Aug 2007 14:16:14 +0000 (14:16 +0000)]
Follow Array changes (adding numElements field)
Clemens Fruhwirth [Fri, 24 Aug 2007 18:13:25 +0000 (18:13 +0000)]
Cabal upstream API change -- installPackage to use installDirTemplates
Ben.Lippmeier@anu.edu.au [Fri, 24 Aug 2007 14:31:32 +0000 (14:31 +0000)]
Erase unneeded spill/reloads after register allocation
Ben.Lippmeier@anu.edu.au [Fri, 24 Aug 2007 10:13:05 +0000 (10:13 +0000)]
Be more paranoid about not creating space leaks in coloring allocator
Ben.Lippmeier@anu.edu.au [Fri, 24 Aug 2007 09:57:34 +0000 (09:57 +0000)]
Show spill/reload pseudo instrs in regalloc stage dump
Simon Marlow [Fri, 24 Aug 2007 14:33:30 +0000 (14:33 +0000)]
windres also needs the PATH workaround, because it runs gcc
Simon Marlow [Fri, 24 Aug 2007 13:19:25 +0000 (13:19 +0000)]
freeProfiling1() needs to be after endProfiling()
Fixes another crash with biographical profiling.
Simon Marlow [Fri, 24 Aug 2007 13:12:45 +0000 (13:12 +0000)]
fix getting the exit code
Simon Marlow [Fri, 24 Aug 2007 10:18:03 +0000 (10:18 +0000)]
FIX #1519, crash in biographical profiling
In eval_thunk_selector(), when filling the slop for a closure we've
just updated, we were using the wrong info table. This bug appears to
have been in 6.6, too.
Simon Marlow [Fri, 24 Aug 2007 09:55:32 +0000 (09:55 +0000)]
fix +RTS -V0 when not using -threaded
Simon Marlow [Fri, 24 Aug 2007 09:54:40 +0000 (09:54 +0000)]
Fix info table for stg_ap_1_upd, it stated 1 non-ptr, should be zero
Fixes a crash I encountered with profiling and -debug
Simon Marlow [Fri, 24 Aug 2007 08:24:06 +0000 (08:24 +0000)]
clean doc-index-*.html (for older versions of Haddock)
Simon Marlow [Fri, 24 Aug 2007 08:23:53 +0000 (08:23 +0000)]
add pwd to SUBDIRS, so it gets cleaned
Simon Marlow [Fri, 24 Aug 2007 08:08:47 +0000 (08:08 +0000)]
include bindisttest in source distributions (fixes srcdist)
Ben.Lippmeier@anu.edu.au [Thu, 23 Aug 2007 16:57:44 +0000 (16:57 +0000)]
Add spill/reload pseudo instrs to MachInstrs
Spiller can now insert spill/reload instrs without having to
worry about the current stack delta. Generation of actual machine
instructions for spills/reloads is deferred until after register
allocation proper.
simonpj@microsoft.com [Fri, 24 Aug 2007 09:07:26 +0000 (09:07 +0000)]
Improve docs for mdo
simonpj@microsoft.com [Fri, 24 Aug 2007 09:07:16 +0000 (09:07 +0000)]
Correct link
Michael D. Adams [Mon, 6 Aug 2007 05:06:55 +0000 (05:06 +0000)]
Fix typo in comment
Michael D. Adams [Mon, 6 Aug 2007 05:00:19 +0000 (05:00 +0000)]
Added a case for non-zero arity INFO_TABLE_FUN to the Cmm parser.
This is needed in order to write Main_main from pure Cmm.
Michael D. Adams [Mon, 6 Aug 2007 04:50:11 +0000 (04:50 +0000)]
Change to the Cmm syntax. Put gc_block before update_frame.
This order matches the symantic order better since
the GC check is done before the update frame is pushed.
Michael D. Adams [Mon, 6 Aug 2007 04:48:11 +0000 (04:48 +0000)]
Fix the calling convention order in the CPS
It now matches the order used by the existing codeGen.
Ben.Lippmeier@anu.edu.au [Thu, 23 Aug 2007 13:34:07 +0000 (13:34 +0000)]
Regalloc stage dump in right order
Ben.Lippmeier@anu.edu.au [Thu, 23 Aug 2007 13:26:14 +0000 (13:26 +0000)]
Eliminate more dead reg->reg moves in linear allocator
Ben.Lippmeier@anu.edu.au [Thu, 23 Aug 2007 12:10:09 +0000 (12:10 +0000)]
Handle DOA vregs when building spill stats
Ben.Lippmeier@anu.edu.au [Thu, 23 Aug 2007 09:48:19 +0000 (09:48 +0000)]
Use UniqSet instead of Data.Set
Ben.Lippmeier@anu.edu.au [Wed, 22 Aug 2007 17:11:28 +0000 (17:11 +0000)]
comment wibble
Ben.Lippmeier@anu.edu.au [Wed, 22 Aug 2007 17:04:12 +0000 (17:04 +0000)]
Refactor cmmNativeGen so dumps can be emitted inline with NCG stages
simonpj@microsoft.com [Thu, 23 Aug 2007 15:20:27 +0000 (15:20 +0000)]
Improve handling of inline pragmas, esp where type applications are involved
See the definition of splitInlineCont for what this is about.
Cures Trac #1627.
Test is simpl017
simonpj@microsoft.com [Wed, 22 Aug 2007 15:41:46 +0000 (15:41 +0000)]
Add comments about ModGuts instance envts (and re-order fields)
Ian Lynagh [Thu, 23 Aug 2007 02:19:40 +0000 (02:19 +0000)]
When installing, get libgmp.a from the right place
Ian Lynagh [Thu, 23 Aug 2007 02:19:14 +0000 (02:19 +0000)]
Put a space between gcc and its arguments when calling windres
Ian Lynagh [Thu, 23 Aug 2007 02:18:50 +0000 (02:18 +0000)]
windres is in bin/, not the top-level directory
Ian Lynagh [Thu, 23 Aug 2007 02:18:23 +0000 (02:18 +0000)]
In bindisttest, don't try to configure/install the bindist on Windows
Simon Marlow [Thu, 23 Aug 2007 11:28:14 +0000 (11:28 +0000)]
FIX #1626: needed to export hs_hpc_rootModule
Roman Leshchinskiy [Thu, 23 Aug 2007 03:20:48 +0000 (03:20 +0000)]
Generate dictPRepr
Roman Leshchinskiy [Thu, 23 Aug 2007 02:36:58 +0000 (02:36 +0000)]
Add generation of PR dictionaries
Roman Leshchinskiy [Thu, 23 Aug 2007 01:53:51 +0000 (01:53 +0000)]
Initialise PR dictionaries in vectorisation monad
Roman Leshchinskiy [Thu, 23 Aug 2007 01:45:26 +0000 (01:45 +0000)]
Add PR dictionaries to vectorisation monad
Roman Leshchinskiy [Thu, 23 Aug 2007 01:41:31 +0000 (01:41 +0000)]
Embed doesn't store a PA dictionary any more
Roman Leshchinskiy [Thu, 23 Aug 2007 01:34:58 +0000 (01:34 +0000)]
Read the package state after pulling in all built-ins during vectorisation
Roman Leshchinskiy [Thu, 23 Aug 2007 01:30:21 +0000 (01:30 +0000)]
Move all vectorisation built-ins to VectBuiltIn
Roman Leshchinskiy [Thu, 23 Aug 2007 00:24:06 +0000 (00:24 +0000)]
Move vectorisation built-ins to a separate module
Roman Leshchinskiy [Wed, 22 Aug 2007 16:09:53 +0000 (16:09 +0000)]
PR is an explicit record, not a class
Roman Leshchinskiy [Wed, 22 Aug 2007 06:58:50 +0000 (06:58 +0000)]
Add vectorisation-related built-in
Roman Leshchinskiy [Wed, 22 Aug 2007 06:18:25 +0000 (06:18 +0000)]
Generate conversion from PRepr to original type
Roman Leshchinskiy [Wed, 22 Aug 2007 05:41:31 +0000 (05:41 +0000)]
Refactoring
Roman Leshchinskiy [Wed, 22 Aug 2007 05:09:27 +0000 (05:09 +0000)]
Generate conversion to PRepr during vectorisation
Roman Leshchinskiy [Wed, 22 Aug 2007 04:46:34 +0000 (04:46 +0000)]
Use NDP's own (:*:) and (:+:)
Roman Leshchinskiy [Wed, 22 Aug 2007 03:44:11 +0000 (03:44 +0000)]
Utility functions for vectorisation
Roman Leshchinskiy [Wed, 22 Aug 2007 02:49:23 +0000 (02:49 +0000)]
More refactoring
Roman Leshchinskiy [Wed, 22 Aug 2007 02:32:30 +0000 (02:32 +0000)]
Refactoring
Roman Leshchinskiy [Wed, 22 Aug 2007 02:11:33 +0000 (02:11 +0000)]
Add built-ins to vectorisation monad
Roman Leshchinskiy [Wed, 22 Aug 2007 02:08:14 +0000 (02:08 +0000)]
Refactoring
Roman Leshchinskiy [Wed, 22 Aug 2007 01:59:30 +0000 (01:59 +0000)]
Vectorise nullary constructors correctly
Roman Leshchinskiy [Wed, 22 Aug 2007 01:29:07 +0000 (01:29 +0000)]
Rename vectorisation-related stuff
Roman Leshchinskiy [Wed, 22 Aug 2007 01:22:36 +0000 (01:22 +0000)]
Generate PRepr instances during vectorisation
Roman Leshchinskiy [Tue, 21 Aug 2007 07:17:09 +0000 (07:17 +0000)]
Use functions from BuildTyCl for vectorisation
Roman Leshchinskiy [Tue, 21 Aug 2007 04:00:34 +0000 (04:00 +0000)]
Add a couple of built-ins to the vectorisation monad
Roman Leshchinskiy [Tue, 21 Aug 2007 02:45:29 +0000 (02:45 +0000)]
Get the PA dictionary for closures from the right module
Roman Leshchinskiy [Tue, 21 Aug 2007 02:44:46 +0000 (02:44 +0000)]
Remove packPA and combinePA from vectorisation built-ins for now
Roman Leshchinskiy [Tue, 21 Aug 2007 02:26:45 +0000 (02:26 +0000)]
Add NDP-related PrelNames
simonpj@microsoft.com [Wed, 22 Aug 2007 23:03:24 +0000 (23:03 +0000)]
Print infix function definitions correctly in HsSyn
simonpj@microsoft.com [Wed, 22 Aug 2007 23:02:55 +0000 (23:02 +0000)]
Trim imports
Ian Lynagh [Wed, 22 Aug 2007 20:20:40 +0000 (20:20 +0000)]
Add a bindisttest directory
After
make binary-dist stage=2
you can run make in bindisttest/ to test it
Ian Lynagh [Wed, 22 Aug 2007 20:10:49 +0000 (20:10 +0000)]
Include package.mk in target.mk, in the bindists's mk/
Michael D. Adams [Wed, 22 Aug 2007 18:36:32 +0000 (18:36 +0000)]
Build fix: modBreaks -> modBreaks_decls modbreaks
Ian Lynagh [Wed, 22 Aug 2007 14:34:22 +0000 (14:34 +0000)]
Use unsafeDupableInterleaveIO in UniqSupply
We'll need to change this if we ever use threads in GHC, but for now it
drops mkSplitUniqSupply from 35% time down below 0.1% when compiling
J.hs from #1136.
Esa Ilari Vuokko [Tue, 21 Aug 2007 21:04:59 +0000 (21:04 +0000)]
Link ghc-pkg and hpc with containers if building ghc 6.7 or newer
Ian Lynagh [Mon, 20 Aug 2007 10:30:58 +0000 (10:30 +0000)]
makeRelativeRefTo checks tablesNextToCode, so we don't have to before using it