Ian Lynagh [Mon, 2 Jul 2007 10:26:51 +0000 (10:26 +0000)]
Print the right usage message
The logic for printing the ghc and ghci usage messages was inverted.
However, the ghci case will never actually happen with the current code,
as we print a usage message when cli_mode == ShowUsage and choose the
ghci usage message if cli_mode == DoInteractive. This should be fixed
as part of a larger options handling overhaul.
Ian Lynagh [Mon, 2 Jul 2007 10:26:29 +0000 (10:26 +0000)]
-fasm doesn't really take an argument
Simon Marlow [Thu, 21 Jun 2007 11:30:23 +0000 (11:30 +0000)]
clean installPackage too
Simon Marlow [Mon, 2 Jul 2007 09:22:57 +0000 (09:22 +0000)]
FIX #1471: print strings using Haskell quoting syntax
Ian Lynagh [Sat, 30 Jun 2007 14:15:18 +0000 (14:15 +0000)]
Need to build filepath before directory
Ian Lynagh [Sat, 30 Jun 2007 13:39:44 +0000 (13:39 +0000)]
Tidy up -keep* flags
simonpj@microsoft.com [Fri, 29 Jun 2007 21:57:17 +0000 (21:57 +0000)]
Improve loop-breaker scoring in OccAnal (idea from Roman)
See Note [Closure conversion] in OccurAnal for details of this
patch (which merely involves *deleting* a test!). The test case
was produced by Roman, and shows up when doing closure conversion
and vectorisation for data parallelism. But perhaps other times too.
simonpj@microsoft.com [Fri, 29 Jun 2007 21:53:34 +0000 (21:53 +0000)]
Many comments about oclose, plus a fix for Trac #1456
There was a rather subtle bug in the way 'oclose' works when
generalising top-level function definitions. See
Note [Important subtlety in oclose]
in FunDeps for an explanatoin.
I also tidied up duplication in comments while I was here.
simonpj@microsoft.com [Fri, 29 Jun 2007 20:32:19 +0000 (20:32 +0000)]
Improve error message (Trac #1446)
andy@galois.com [Fri, 29 Jun 2007 18:53:07 +0000 (18:53 +0000)]
Fixing hpc tools for 6.2 and 6.4
simonpj@microsoft.com [Fri, 29 Jun 2007 16:13:37 +0000 (16:13 +0000)]
Refine printing of names in unification mis-match
simonpj@microsoft.com [Fri, 29 Jun 2007 11:48:33 +0000 (11:48 +0000)]
Improve name-printing on unification mis-matches, when types share a common occurrence name
This improvement arose from a suggestion in Trac #1465
simonpj@microsoft.com [Thu, 28 Jun 2007 08:29:49 +0000 (08:29 +0000)]
Add flags for record extensions; still not working properly though
Simon Marlow [Fri, 29 Jun 2007 11:02:40 +0000 (11:02 +0000)]
FIX BUILD: we need --exclude-module Trace.* too
Simon Marlow [Fri, 29 Jun 2007 09:07:05 +0000 (09:07 +0000)]
unbreak "recompile utils with stage 1"
Manuel M T Chakravarty [Fri, 29 Jun 2007 06:36:56 +0000 (06:36 +0000)]
Checking that type indexes contain no synonym family applications
Manuel M T Chakravarty [Fri, 29 Jun 2007 04:59:31 +0000 (04:59 +0000)]
RHS of a type instance must be a tau type
Manuel M T Chakravarty [Fri, 29 Jun 2007 04:20:07 +0000 (04:20 +0000)]
Overlap check for type families
- If two "type instance"s overlap, they right-hand sides must be syntactically
equal under the overlap substitution. (Ie, we admit limited overlap, but
require the system to still be confluent.)
Tim Chevalier [Fri, 29 Jun 2007 01:48:31 +0000 (01:48 +0000)]
Further compileToCore improvements
Per suggestions from Simon M:
* Changed GHC.checkModule so that it doesn't call depanal.
* Changed GHC.checkModule to optionally return Core bindings
as a component of the CheckedModule that it returns (and
resulting changes to HscMain.hscFileCheck).
* As a result, simplified GHC.compileToCore and changed it
to load the given file so that the caller doesn't have to.
Michael D. Adams [Fri, 8 Jun 2007 09:11:57 +0000 (09:11 +0000)]
Fixed a documentation error
Simon Marlow [Thu, 28 Jun 2007 10:45:16 +0000 (10:45 +0000)]
disable .type directives on Windows; they confuse mingw's assembler
Clemens Fruhwirth [Wed, 27 Jun 2007 16:51:50 +0000 (16:51 +0000)]
Set .type @object for all global symbols in NCG
When linking against a dynamic library, the linker will emit a warning
if no type information is present within the library. We generate the
most trivial type for all externally visible labels, namely @object.
Clemens Fruhwirth [Tue, 19 Jun 2007 14:29:31 +0000 (14:29 +0000)]
Also make proper references when not using fPIC but linking against dynamic libs
Clemens Fruhwirth [Wed, 27 Jun 2007 16:06:40 +0000 (16:06 +0000)]
Generate RelocatableReadOnlyData as .data
The GNU linker expects read-only sections to be relocation
free. Presumably because the dynamic linker maps all read-only
sections as read-only mmaps and hence can't do relocations.
If we want text-relocation-free shared libraries we have to put all
relocations into writable sections, hence .data. See
http://www.mail-archive.com/cvs-all@haskell.org/msg15119.html
Clemens Fruhwirth [Wed, 27 Jun 2007 09:08:19 +0000 (09:08 +0000)]
Generalize linkDynLib for ELF platforms
To create a dynamic shared object (DSO) on ELF platforms, we invoke
"gcc -shared". This in turn invokes ld. We supply -Bsymbolic to the
linker, as "ld -Bsymbolic -shared -o <lib> <objs>" resolves all
references from <objs> to <objs> at library creation time.
See http://hackage.haskell.org/trac/ghc/wiki/Commentary/PositionIndependentCode
Clemens Fruhwirth [Wed, 27 Jun 2007 09:01:00 +0000 (09:01 +0000)]
Renames functions and constructors to fit their new ability for dynamic linking
function: staticLink -> linkBinary (will link non static binaries too)
function: doMkDLL -> linkDynLib (as we can link on ELF too where DLL is an inappropriate term)
constructor: MkDLL -> LinkDynLib
Clemens Fruhwirth [Tue, 26 Jun 2007 13:46:36 +0000 (13:46 +0000)]
PprMach.hs more accurate hack for x86-64, CmmLabelOff is not a relative reference.
CmmLabelDiffOff are generated in .text and if printed as .quad, causes
the assembler to emit a PC64 relocation. binutils prior to 2.17 don't
understand PC64 relocation properly.
pprDataItem is also used for printing SRT description tables. They are
part of the .data section and there no PC relative relocations are
emited. Hence, if we print a .long here, we get a absolute 32-bit
relocation. 32-bit relocations are problematic in dynamic libraries,
because dynamic library load addresses are loaded beyond the 32 bit
boundary, causing the dynamic linker to warn at dynamic linking
(loading the executable) that there are overflows in the
relocation. The executable still seems to work because of the small
memory model, but this is obviously wrong. Hence, remove CmmLabelOff
from the classification, causing these references to be printed as
.quad, causing correct 64-bit relocation as in the rest of the .data
section.
So, this hack now prints PC32 relocations in .text (mostly in the info
tables), and absolute 64-bit relocations in .data.
simonmar@microsoft.com [Thu, 28 Jun 2007 08:11:05 +0000 (08:11 +0000)]
Fix typechecking bug with implicit parameters (Trac #1445)
tcSplitFunTy_maybe wasn't dealing with types like
(?x::Bool) => Int
Here, tcSplitFunTy_maybe should fail (as it would if there
was a for-all), because the type is a quantified type.
See Trac #1445, and test tc230.
simonmar@microsoft.com [Thu, 28 Jun 2007 08:02:03 +0000 (08:02 +0000)]
White space only
simonpj@microsoft.com [Thu, 28 Jun 2007 07:36:41 +0000 (07:36 +0000)]
Improve error message when there is instance overlap
Tim Chevalier [Wed, 27 Jun 2007 22:48:09 +0000 (22:48 +0000)]
Modify compileToCore to take just a filename
Modified compileToCore to take just a session and a
filename, rather than a module name as well, since the module
name can be computed from the filename.
andy@galois.com [Wed, 27 Jun 2007 18:15:13 +0000 (18:15 +0000)]
making hpc live
Simon Marlow [Wed, 27 Jun 2007 09:36:46 +0000 (09:36 +0000)]
+RTS -xbXXXXX sets the "heap base" to 0xXXXXXX
When debugging the GC and storage manager we often want repeated runs
of the program to allocate memory at the same addresses, so that we
can set watch points. Unfortunately the OS doesn't always give us
memory at predictable addresses. This flag gives the OS a hint as to
where we would like our memory allocated. Previously I did this by
changing the HEAP_BASE setting in MBlock.h and recompiling, this patch
just adds a flag so I don't have to recompile.
Simon Marlow [Wed, 27 Jun 2007 09:29:41 +0000 (09:29 +0000)]
+RTS -V0 disables the interval timer completely (for repeatable debugging)
simonmar@microsoft.com [Wed, 27 Jun 2007 10:16:04 +0000 (10:16 +0000)]
FIX BUILD (on Windows): follow changes to make threaded RTS compile with -fasm
Manuel M T Chakravarty [Wed, 27 Jun 2007 09:42:00 +0000 (09:42 +0000)]
Fix names of coercions in newtype instances
- Thanks to Roman for spotting the problem.
andy@galois.com [Wed, 27 Jun 2007 06:36:31 +0000 (06:36 +0000)]
Cleaning up Hpc.c; adding support for reflection into Hpc.
andy@galois.com [Wed, 27 Jun 2007 06:07:21 +0000 (06:07 +0000)]
Fixing Makefile hpc to use compat
andy@galois.com [Wed, 27 Jun 2007 06:04:30 +0000 (06:04 +0000)]
Adding Tix to compat library, so that hpc in utils can use it
andy@galois.com [Wed, 27 Jun 2007 05:48:46 +0000 (05:48 +0000)]
fixing creation of directory for html output; fixing html markup for 0% bars.
andy@galois.com [Wed, 27 Jun 2007 05:38:08 +0000 (05:38 +0000)]
Fixing -fhpc flag to allow -fno-hpc
Manuel M T Chakravarty [Wed, 27 Jun 2007 05:48:34 +0000 (05:48 +0000)]
Fixed deriving of associated data types
- We forgot to pull the data declarations nested in class instances out of
the instances when collecting all the predicates that we need derive.
Thanks to Roman for spotting this.
Simon Marlow [Tue, 26 Jun 2007 21:11:53 +0000 (21:11 +0000)]
add missing case for compiling 64-bit operations on x86
Simon Marlow [Tue, 26 Jun 2007 21:10:58 +0000 (21:10 +0000)]
Make the threaded RTS compilable using -fasm
We needed to turn some inline C functions and C macros into either
real C functions or C-- macros.
Simon Marlow [Tue, 26 Jun 2007 10:30:55 +0000 (10:30 +0000)]
x86_64: fix a few bugs in the >8 floating point args case
Simon Marlow [Sat, 23 Jun 2007 20:00:06 +0000 (20:00 +0000)]
make inplace scripts less sensitive to /bin/sh quoting by avoiding \
andy@galois.com [Tue, 26 Jun 2007 07:22:19 +0000 (07:22 +0000)]
excluding Trace.Hpc.* when using the compat library
andy@galois.com [Tue, 26 Jun 2007 05:34:29 +0000 (05:34 +0000)]
Making -fhpc work with a stage1 build, via the compat 'package'.
andy@galois.com [Tue, 26 Jun 2007 05:11:36 +0000 (05:11 +0000)]
Adding hpc lib as part of the compat 'package'
andy@galois.com [Tue, 26 Jun 2007 04:19:58 +0000 (04:19 +0000)]
Cleanup Hpc sub-system, remove hpc-tracer implementation.
Tim Chevalier [Mon, 25 Jun 2007 22:06:08 +0000 (22:06 +0000)]
Add a compileToCore function to the GHC API
Added a compileToCore function to the GHC API that takes a
session, module, and filename, and returns a list of Core
bindings if successful. This is just a first try and could
probably be improved (for example, there's probably a way to
get the filename from the module so that it doesn't have to
be passed in, I just don't see it offhand.)
Ian Lynagh [Mon, 25 Jun 2007 17:49:52 +0000 (17:49 +0000)]
Define SUBDIRS in Makefile (needed for clean; fixes trac #1440)
Ian Lynagh [Mon, 25 Jun 2007 17:40:11 +0000 (17:40 +0000)]
Tweak the configuration and installation slightly
Make it so that the documentation ends up where Cabal expects it to be
on Windows (prep-bin-dist-mingw used to move it).
Simon Marlow [Mon, 25 Jun 2007 15:14:55 +0000 (15:14 +0000)]
withExtendedLinkerState: don't revert the whole state
Fixes test failures print017 and print024
simonpj@microsoft.com [Mon, 25 Jun 2007 15:28:58 +0000 (15:28 +0000)]
Print infix type constructors in an infix way
Fixes Trac #1425. The printer for types doesn't know about fixities.
(It could be educated to know, but it doesn't at the moment.) So it
treats all infix tycons as of precedence less than application and function
arrrow.
I took a slight shortcut and reused function-arrow prededence, so I think
you may get
T -> T :% T
meaning
T -> (T :% T)
If that becomes a problem we can fix it.
simonpj@microsoft.com [Mon, 25 Jun 2007 15:26:16 +0000 (15:26 +0000)]
Clamp -O flag to beween 0 and 2
Fixes Trac #1272
andy@galois.com [Mon, 25 Jun 2007 07:09:43 +0000 (07:09 +0000)]
Adding hpc tools, as a single program.
Ian Lynagh [Sat, 23 Jun 2007 22:44:40 +0000 (22:44 +0000)]
Update version numbering policy in the users guide
Ian Lynagh [Sat, 23 Jun 2007 19:06:53 +0000 (19:06 +0000)]
Fix an error message
`y' in the error message
`x' is not a (visible) method of class `y'
had gone missing.
andy@galois.com [Fri, 22 Jun 2007 22:52:26 +0000 (22:52 +0000)]
turning off -fhpc in stage1 built ghc
andy@galois.com [Fri, 22 Jun 2007 22:42:26 +0000 (22:42 +0000)]
removing -fhpc-tracer from ghc, is subsumed by the GHC debugger
andy@galois.com [Fri, 22 Jun 2007 22:40:38 +0000 (22:40 +0000)]
Stage2 now used the package hpc to get the hpc datastructures
Stage1 no longer supports hpc (-fhpc is ignored)
Ian Lynagh [Fri, 22 Jun 2007 22:21:33 +0000 (22:21 +0000)]
Fix typo in Makefile
andy@galois.com [Fri, 22 Jun 2007 17:18:51 +0000 (17:18 +0000)]
Adding hpc package to ghc core libraries
Ian Lynagh [Fri, 22 Jun 2007 16:09:51 +0000 (16:09 +0000)]
Change how the libraries Makefile adds --configure-option= flags; fixes #1431
We now assume that each configure option is quoted with '', and thus
replace " '" with " --configure-option='".
Simon Marlow [Fri, 22 Jun 2007 13:12:11 +0000 (13:12 +0000)]
update with new libraries
Simon Marlow [Thu, 21 Jun 2007 14:45:19 +0000 (14:45 +0000)]
FIX BUILD on Windows: horrible hack to work around make(?) bug
Simon Marlow [Fri, 22 Jun 2007 11:16:34 +0000 (11:16 +0000)]
FIX BUILD (on Windows): Cabal must invoke compiler/stage1/ghc-inplace
not compiler/ghc-inplace, which is a symlink.
Simon Marlow [Fri, 22 Jun 2007 07:56:02 +0000 (07:56 +0000)]
remove unnecessary cruft
Simon Marlow [Fri, 22 Jun 2007 07:54:44 +0000 (07:54 +0000)]
FIX BUILD: all builds need --template, not just Windows
Simon Marlow [Fri, 22 Jun 2007 07:54:17 +0000 (07:54 +0000)]
ignore all but the last --template option
simonpj@microsoft.com [Thu, 21 Jun 2007 17:01:31 +0000 (17:01 +0000)]
Unbreak the stage-2 compiler (record-type changes)
simonpj@microsoft.com [Thu, 21 Jun 2007 16:21:52 +0000 (16:21 +0000)]
-fglasgow-exts implies -X=GADTs
simonpj@microsoft.com [Thu, 21 Jun 2007 14:37:21 +0000 (14:37 +0000)]
FIX read040: patterns with type sig on LHS of do-binding
f () = do { x :: Bool <- return True; ... }
For some reason the production for 'pat' required 'infixexp' on the
LHS of a do-notation binding. This patch makes it an 'exp', which
thereby allows an expression with a type sig.
Happily, there are no new shift-reduce errors, so I don't think this
will break anything else.
simonpj@microsoft.com [Thu, 21 Jun 2007 14:11:44 +0000 (14:11 +0000)]
Another wibble to the head-exploded error message (suggested by David Roundy)
simonpj@microsoft.com [Thu, 21 Jun 2007 14:11:14 +0000 (14:11 +0000)]
Use the correct flag for controlling scoped type variables in an instance decl
simonpj@microsoft.com [Thu, 21 Jun 2007 13:16:50 +0000 (13:16 +0000)]
Improve 'my head exploded' error message
simonpj@microsoft.com [Thu, 21 Jun 2007 13:16:25 +0000 (13:16 +0000)]
FIX BUILD: add missing prime!
Simon Marlow [Thu, 21 Jun 2007 14:45:19 +0000 (14:45 +0000)]
FIX BUILD on Windows: horrible hack to work around make(?) bug
Simon Marlow [Thu, 21 Jun 2007 14:06:53 +0000 (14:06 +0000)]
yet more fixes: Cygwin broke this time
Lemmih [Thu, 21 Jun 2007 13:28:25 +0000 (13:28 +0000)]
fix bugs with hsc2hs-inplace
Lemmih [Thu, 21 Jun 2007 13:07:27 +0000 (13:07 +0000)]
mk/build.mk is optional
Lemmih [Thu, 21 Jun 2007 13:06:57 +0000 (13:06 +0000)]
further fixes to the inplace scripts
Simon Marlow [Thu, 21 Jun 2007 12:14:26 +0000 (12:14 +0000)]
use a binary for hsc2hs-inplace too
Simon Marlow [Thu, 21 Jun 2007 11:41:47 +0000 (11:41 +0000)]
Fix problems with new inplace stuff on Cygwin
Simon Marlow [Thu, 21 Jun 2007 09:51:54 +0000 (09:51 +0000)]
FIX BUILD: can't build the makefiles during make boot
Simon Marlow [Wed, 20 Jun 2007 13:28:09 +0000 (13:28 +0000)]
clean up lib/{GNUmakefile,Makefile.local}
Simon Marlow [Wed, 20 Jun 2007 13:20:01 +0000 (13:20 +0000)]
default_target should be "all", not "build"
Simon Marlow [Wed, 20 Jun 2007 13:19:49 +0000 (13:19 +0000)]
add comment
Simon Marlow [Wed, 20 Jun 2007 12:22:24 +0000 (12:22 +0000)]
Fix a problem with package.mk being included too early
Simon Marlow [Wed, 20 Jun 2007 12:20:09 +0000 (12:20 +0000)]
Use setup makefile + make by default to build libraries
The advantages of this are
(a) it's a step closer to getting -j working again (make -j works in
an individual library, but not in libraries/ yet).
(b) it's easier to hack on libraries: make dist/build/Foo.o
(c) it's a step closer to getting HC bootstrapping again
The build system creates <lib>/GNUmakefile as part of 'make boot'.
This was chosen so as not to interfere with existing Makefiles, but
it's a bit of a hack. (previously I used CabalMakefile, but that
means adding -f CabalMakefile each time you run make, and that's a
pain).
Simon Marlow [Thu, 21 Jun 2007 10:13:24 +0000 (10:13 +0000)]
Use a real binary instead of scripts for ghc-inplace
Fixes various problems with getting the scripts right on Windows.
Binaries are universally executable by /bin/sh, cmd.exe and rawSystem,
so this allows us to remove some platform-specific hacks.
Lemmih [Thu, 21 Jun 2007 09:15:52 +0000 (09:15 +0000)]
Add several new record features
1. Record disambiguation (-fdisambiguate-record-fields)
In record construction and pattern matching (although not
in record updates) it is clear which field name is intended
even if there are several in scope. This extension uses
the constructor to disambiguate. Thus
C { x=3 }
uses the 'x' field from constructor C (assuming there is one)
even if there are many x's in scope.
2. Record punning (-frecord-puns)
In a record construction or pattern match or update you can
omit the "=" part, thus
C { x, y }
This is just syntactic sugar for
C { x=x, y=y }
3. Dot-dot notation for records (-frecord-dot-dot)
In record construction or pattern match (but not update)
you can use ".." to mean "all the remaining fields". So
C { x=v, .. }
means to fill in the remaining fields to give
C { x=v, y=y }
(assuming C has fields x and y). This might reasonably
considered very dodgy stuff. For pattern-matching it brings
into scope a bunch of things that are not explictly mentioned;
and in record construction it just picks whatver 'y' is in
scope for the 'y' field. Still, Lennart Augustsson really
wants it, and it's a feature that is extremely easy to explain.
Implementation
~~~~~~~~~~~~~~
I thought of using the "parent" field in the GlobalRdrEnv, but
that's really used for import/export and just isn't right for this.
For example, for import/export a field is a subordinate of the *type
constructor* whereas here we need to know what fields belong to a
particular *data* constructor.
The main thing is that we need to map a data constructor to its
fields, and we need to do so in the renamer. For imported modules
it's easy: just look in the imported TypeEnv. For the module being
compiled, we make a new field tcg_field_env in the TcGblEnv.
The important functions are
RnEnv.lookupRecordBndr
RnEnv.lookupConstructorFields
There is still a significant infelicity in the way the renamer
works on patterns, which I'll tackle next.
I also did quite a bit of refactoring in the representation of
record fields (mainly in HsPat).***END OF DESCRIPTION***
Place the long patch description above the ***END OF DESCRIPTION*** marker.
The first line of this file will be the patch name.
This patch contains the following changes:
M ./compiler/deSugar/Check.lhs -3 +5
M ./compiler/deSugar/Coverage.lhs -6 +7
M ./compiler/deSugar/DsExpr.lhs -6 +13
M ./compiler/deSugar/DsMeta.hs -8 +8
M ./compiler/deSugar/DsUtils.lhs -1 +1
M ./compiler/deSugar/MatchCon.lhs -2 +2
M ./compiler/hsSyn/Convert.lhs -3 +3
M ./compiler/hsSyn/HsDecls.lhs -9 +25
M ./compiler/hsSyn/HsExpr.lhs -13 +3
M ./compiler/hsSyn/HsPat.lhs -25 +63
M ./compiler/hsSyn/HsUtils.lhs -3 +3
M ./compiler/main/DynFlags.hs +6
M ./compiler/parser/Parser.y.pp -13 +17
M ./compiler/parser/RdrHsSyn.lhs -16 +18
M ./compiler/rename/RnBinds.lhs -2 +2
M ./compiler/rename/RnEnv.lhs -22 +82
M ./compiler/rename/RnExpr.lhs -34 +12
M ./compiler/rename/RnHsSyn.lhs -3 +2
M ./compiler/rename/RnSource.lhs -50 +78
M ./compiler/rename/RnTypes.lhs -50 +84
M ./compiler/typecheck/TcExpr.lhs -18 +18
M ./compiler/typecheck/TcHsSyn.lhs -20 +21
M ./compiler/typecheck/TcPat.lhs -8 +6
M ./compiler/typecheck/TcRnMonad.lhs -6 +15
M ./compiler/typecheck/TcRnTypes.lhs -2 +11
M ./compiler/typecheck/TcTyClsDecls.lhs -3 +4
M ./docs/users_guide/flags.xml +7
M ./docs/users_guide/glasgow_exts.xml +42
Lemmih [Mon, 18 Jun 2007 12:46:05 +0000 (12:46 +0000)]
Remove the unused HsExpr constructor DictPat
Lemmih [Thu, 7 Jun 2007 21:38:37 +0000 (21:38 +0000)]
Fix a bug in MatchCon, and clarify what dataConInstOrigArgTys does
There was an outright bug in MatchCon.matchOneCon, in the construction
of arg_tys. Easily fixed. It never showed up becuase the arg_tys are
only used in WildPats, and they in turn seldom have their types looked
(except by hsPatType). So I can't make a test case for htis.
While I was investigating, I added a bit of clarifation and
invariant-checking to dataConInstOrigArgTys and dataConInstArgTys
Lemmih [Thu, 7 Jun 2007 21:35:23 +0000 (21:35 +0000)]
Do not perform a worker/wrapper split for a NOINLINE function
This came up in an email exchange with Duncan Coutts in May 2007.
If a function is marked NOINLINE there is really no point in
doing a worker/wrapper split, because the wrapper will never
be inlined.
Lemmih [Thu, 7 Jun 2007 18:55:34 +0000 (18:55 +0000)]
Fix Trac #1402: typo in specialiser
This patch fixes a plain bug in the specialiser (rhs_bndrs instead
of rhs_ids) which made GHC crash in obscure cases.
It exposed a case in which we might not do all possible specialisation;
see Note [Specialisation shape]. It's not an important case, but I've
added a warning in DEBUG mode.
Trac #1402. Test is spec003.hs
simonpj@microsoft.com [Thu, 21 Jun 2007 07:24:56 +0000 (07:24 +0000)]
Wibble: make -fno-implicit-prelude work
Ian Lynagh [Thu, 21 Jun 2007 00:31:03 +0000 (00:31 +0000)]
Remove an incorrect claim that [t| ... |] isn't implemented yet
Ian Lynagh [Wed, 20 Jun 2007 23:59:09 +0000 (23:59 +0000)]
Make building haddock docs opt-in rather than opt-out