simonpj@microsoft.com [Mon, 2 Apr 2007 07:38:35 +0000 (07:38 +0000)]
Make type-tidying work for coercion variables
When tidying a TyVar binder, we must tidy its kind if it's a coercion
variable! I had forgotten to do this, which is a serious bug. As a
result some more complicated programs were getting a Lint error when
reading in interface files. Score one for Core Lint!
Ian Lynagh [Sun, 1 Apr 2007 18:57:41 +0000 (18:57 +0000)]
Make error message output order consistent
Alec Berryman [Tue, 6 Mar 2007 17:30:11 +0000 (17:30 +0000)]
Fix darcs-all to be usable with shells other than bash
Manuel M T Chakravarty [Mon, 2 Apr 2007 08:24:24 +0000 (08:24 +0000)]
Fixed desugaring of parallel array comprehensions
** MERGE into 6.6.1 **
simonpj@microsoft.com [Fri, 30 Mar 2007 14:43:44 +0000 (14:43 +0000)]
The ru_local field of a CoreRule is False for implicit Ids
MERGE to 6.6.1
For class-ops, record selectors, data constructors, we want the ru_local
field of the Rule to be False. We do not attach the rule to the binding
for the Id, because there simply isn't a binding until the code gen stage.
(NB: the ru_local field is different to the orphan-hood of the rule.)
This fixes a bug that meant that RULES on class ops were never exported.
simonpj@microsoft.com [Fri, 30 Mar 2007 14:00:33 +0000 (14:00 +0000)]
Match the type of an Id during rule matching
Please MERGE to 6.6.1
Consider this RULE
forall (c::Char->Int) (x::Char).
f (c x) = "RULE FIRED"
Well, this should only match on arguments of the specified type
But we simply weren't checking this condition before. Now we are.
Test is simplrun008
Ian Lynagh [Wed, 28 Mar 2007 23:51:54 +0000 (23:51 +0000)]
Add filepath library
Ian Lynagh [Thu, 29 Mar 2007 16:42:38 +0000 (16:42 +0000)]
Fix the type of wgencat
Ian Lynagh [Thu, 29 Mar 2007 14:16:31 +0000 (14:16 +0000)]
Document that ghci now adds () to the start of the type defaulting list
Lemmih [Wed, 28 Mar 2007 22:47:42 +0000 (22:47 +0000)]
Refactoring in HscMain.lhs
I realized that compiling many files is just like compiling a single file
several times. This does sound a bit stupid and I wonder why I didn't
catch it before.
Lemmih [Wed, 28 Mar 2007 22:01:09 +0000 (22:01 +0000)]
Typo in comment.
Simon Marlow [Wed, 28 Mar 2007 10:29:38 +0000 (10:29 +0000)]
remove old library doc link (#1098), and point to HackageDB
wolfgang.thaller@gmx.net [Tue, 27 Mar 2007 21:01:22 +0000 (21:01 +0000)]
Make GHC main program depend on the libHSghc_dyn when GhcBuildDylibs==YES
When building a dynamic GHC, we obviously want to build the dynamic library
libHSghc_dyn.[so|dylib] before building the compiler executable.
MERGE TO STABLE
wolfgang.thaller@gmx.net [Tue, 27 Mar 2007 20:17:00 +0000 (20:17 +0000)]
Use a sensible set of compiler options for building dynamic libraries on Mac OS X
The official options to use for building a dylib on Mac OS X are now
-undefined dynamic_lookup -single_module -Wl,-macosx_version_min -Wl,10.3
... which should work on all arches (10.3 or later).
MERGE TO STABLE
Simon Marlow [Tue, 27 Mar 2007 15:45:54 +0000 (15:45 +0000)]
make GHCi use base:Prelude, not just Prelude
The module that GHCi uses for its default scope should be exactly
base:Prelude, not whatever Prelude is found on the search path.
Simon Marlow [Tue, 27 Mar 2007 15:37:23 +0000 (15:37 +0000)]
more improvements for #1119
When GHCi compiles its code framgents for setting buffering, it wants
to refer to base:System.IO rather than whatever System.IO is on the
search path, unfortunately there's no way to do this in source code,
so to hack around it we set the search path to empty before compiling
these expressions (not forgetting to flush the finder cache
afterward).
Simon Marlow [Tue, 27 Mar 2007 15:22:15 +0000 (15:22 +0000)]
partial fix for #1119
Unless we're in one-shot mode, emit an error if we attempt to
demand-load interfaces for home modules. This can only happen in one
way (that I'm aware of): typing a qualified name at the GHCi prompt
that refers to a module that isn't loaded. Previously you got a
cryptic message about not finding an interface file, now you get:
Prelude> Foo.a
<interactive>:1:0:
attempting to use module `Foo' (Foo.hs) which is not loaded
Of course you can still refer to package modules like this without
loading them explicitly, only home modules are affected, and the
behaviour is exactly the same as if you try to ':browse Foo' and
Foo isn't loaded.
Simon Marlow [Mon, 26 Mar 2007 14:27:28 +0000 (14:27 +0000)]
remove docs for unimplemented options
-optdep--include-module and --optdep--exclude-directory were features
of the old mkdependHS script but weren't implemented when mkdependHS
was merged into GHC.
simonpj@microsoft.com [Tue, 27 Mar 2007 11:36:12 +0000 (11:36 +0000)]
Add comments about the -include-prelude flag for ghc -M
simonpj@microsoft.com [Fri, 23 Mar 2007 12:23:54 +0000 (12:23 +0000)]
Remove dead code from rnExpr (Var v); seems to be a leftover from some breakpoint stuff
Simon Marlow [Mon, 26 Mar 2007 15:59:49 +0000 (15:59 +0000)]
move "boot :: all" after the include of target.mk to fix #1095
Simon Marlow [Mon, 26 Mar 2007 15:52:33 +0000 (15:52 +0000)]
add missing progress message
simonpj@microsoft.com [Fri, 23 Mar 2007 11:19:12 +0000 (11:19 +0000)]
Emit a decent error message when there is a decl-splice inside a decl-bracket
This fixes Trac #1065. The fix is just to emit a decent error message
rather than crash. The situation is this:
f x = ... [d| $(..stuff..);
f x = v :: T |] ...
TH wants to rename and typecheck the bracket; but it can't run the
nested splice yet. That seems hard, because we know nothing about v, T,
which are, presumably bound by the splice.
The original TH paper says this isn't allowed, and now it's checked for
properly (in the parser, in fact) rather than causing a crash. In the
fullness of time we might want to do something more flexible, but not now.
simonpj@microsoft.com [Fri, 23 Mar 2007 11:18:50 +0000 (11:18 +0000)]
Wibble fixing overlapped pattern
simonpj@microsoft.com [Fri, 23 Mar 2007 11:18:21 +0000 (11:18 +0000)]
Tidy up refactoring only
Ian Lynagh [Thu, 22 Mar 2007 18:46:07 +0000 (18:46 +0000)]
Documentation for --install-signal-handlers=<yes|no>
Ian Lynagh [Thu, 22 Mar 2007 18:29:00 +0000 (18:29 +0000)]
Add an --install-signal-handlers=<yes|no> RTS flag; fixes trac #804
Ian Lynagh [Thu, 22 Mar 2007 17:01:14 +0000 (17:01 +0000)]
Make a Functor (IOEnv m) instance so it satisfies the new Quasi requirements
sven.panne@aedion.de [Thu, 22 Mar 2007 16:10:40 +0000 (16:10 +0000)]
Warning police: Removed catch-all case which was overlapped
simonpj@microsoft.com [Thu, 22 Mar 2007 12:28:59 +0000 (12:28 +0000)]
Add -ddump-mod-cycles to -M behaviour
This patch adds a flag -ddump-mod-cycles to the "ghc -M" dependency analyser.
The effect of
ghc -M -ddump-mod-cycles
is to dump a list of cycles foud in the module graph. The display is
trimmed so that only dependencies within the cycle are shown; and the
list of modules in a cycle is itself sorted into dependency order, so that
it is easy to track the chain of dependencies.
Open question: should the flag be "-ddump-mod-cycles" or "-optdep-dump-mod-cycles"? For this reason I have not yet added to the documentation.
simonpj@microsoft.com [Thu, 22 Mar 2007 11:07:18 +0000 (11:07 +0000)]
Improve documentation of instances
simonpj@microsoft.com [Wed, 21 Mar 2007 14:04:24 +0000 (14:04 +0000)]
Fix checkHiBootIface for instances declared in hs-boot files
Hs-boot files can contain instance declarations, but Duncan used this feature
for the first time today, and it didn't quite work. I'm not sure whether
it worked before; anyway it does now.
The point is that the hs-boot file advertises an instance for, say, Num Int,
with the arbitrary name $fx1. The main module declares Num Int, and gives
it the name, say, $f3. So we need to generate a declaration
$fx1 = $f3
to make it all line up. And (this is the bit that was wrong) we need
to make that new binding visible to imported unfoldings that mention
$fx1.
red5_2@hotmail.com [Sun, 18 Mar 2007 03:31:32 +0000 (03:31 +0000)]
mangler and runtime updates for gcc 4 on ia64
Gcc 4 is doing more clever optimizations than earlier gccs.
These changes let ghc compile and run on ia64 with gcc 4.0.3.
Register stack frames are enlarged so that all functions use the
same size stack frame.
The code to mangle tail calls has been cleaned up and made more
general.
Additional floating-point and special-purpose registers used by
GCC are saved upon entering the STG runtime.
More general handling of NOP instructions.
Handling of functions with multiple epilogues or no epilogue.
red5_2@hotmail.com [Sat, 17 Mar 2007 02:55:29 +0000 (02:55 +0000)]
ia64 tailcall fix
Tail-calls now branch to the end of the function after the call. This
stops gcc from trying to move instructions into the space immediately
after the call, which confuses the mangler.
simonpj@microsoft.com [Wed, 21 Mar 2007 11:20:57 +0000 (11:20 +0000)]
Remove bogus export from TcSplice.lhs-boot
simonpj@microsoft.com [Wed, 21 Mar 2007 11:16:39 +0000 (11:16 +0000)]
Wibble to GHCi part of TcRnDriver
simonpj@microsoft.com [Wed, 21 Mar 2007 09:37:33 +0000 (09:37 +0000)]
Yet another wibble to checkHiBootIface; it's trickier than it looks!
simonpj@microsoft.com [Wed, 21 Mar 2007 09:36:11 +0000 (09:36 +0000)]
Improve pretty-printing for IfaceConDecl
simonpj@microsoft.com [Wed, 21 Mar 2007 09:35:25 +0000 (09:35 +0000)]
Remove redundant exports from a hs-boot file
simonpj@microsoft.com [Tue, 20 Mar 2007 15:41:26 +0000 (15:41 +0000)]
Further wibbles to checkBootIface (fixed HEAD build)
simonpj@microsoft.com [Mon, 19 Mar 2007 15:19:26 +0000 (15:19 +0000)]
Use explict layout (fixes breakage when compiling TcSimplify)
Ian Lynagh [Sat, 17 Mar 2007 00:40:03 +0000 (00:40 +0000)]
Fix typo "lazy y x" -> "lazy y"
simonpj@microsoft.com [Fri, 16 Mar 2007 15:17:12 +0000 (15:17 +0000)]
Desugar applications of 'seq' specially; fix Trac #1031
Merge to 6.6 branch. Test case is dsrun014.
Note [Desugaring seq] cf Trac #1031
~~~~~~~~~~~~~~~~~~~~~
f x y = x `seq` (y `seq` (# x,y #))
The [CoreSyn let/app invariant] means that, other things being equal, because
the argument to the outer 'seq' has an unlifted type, we'll use call-by-value thus:
f x y = case (y `seq` (# x,y #)) of v -> x `seq` v
But that is bad for two reasons:
(a) we now evaluate y before x, and
(b) we can't bind v to an unboxed pair
Seq is very, very special! So we recognise it right here, and desugar to
case x of _ -> case y of _ -> (# x,y #)
The special case would be valid for all calls to 'seq', but it's only *necessary*
for ones whose second argument has an unlifted type. So we only catch the latter
case here, to avoid unnecessary tests.
simonpj@microsoft.com [Fri, 16 Mar 2007 14:28:24 +0000 (14:28 +0000)]
Improve error messages for 'deriving' clauses
This patch improves the misleading error message reported in Trac #1133.
Please merge the patch to the 6.6.1 branch.
simonpj@microsoft.com [Fri, 16 Mar 2007 13:38:50 +0000 (13:38 +0000)]
Refactor TcRnDriver, and check exports on hi-boot files
This patch refactors TcRnDriver to make the top-level structure
easier to understand.
The change was driven by Trac #924, and this patch fixes that bug.
When comparing a module against its hs-boot file, we must ensure that
the module exports everything that the hs-boot file exports.
simonpj@microsoft.com [Fri, 16 Mar 2007 13:38:22 +0000 (13:38 +0000)]
Comment out debug traces
sven.panne@aedion.de [Thu, 15 Mar 2007 15:28:23 +0000 (15:28 +0000)]
Use update-alternatives for handling generic tool names
ATTENTION: Packagers should read the following stuff carefully!
GHC, Hugs and nhc come with various tools like runhaskell or hsc2hs. On the
one hand this is quite handy, avoiding lots of tiny native packages, but OTOH
this leads to a few problems:
* The tools are not always identical in functionality.
* The tools fight for a global generic name like "/usr/bin/runhaskell".
These problems are not new and not unique to Haskell implementations, so for
*nix-based system there is a tool called update-alternatives which handles
those cases. The idea is as follows:
* Each program/man page/etc. installs itself with a very specific name
like /usr/bin/hsc2hs-ghc or /usr/share/man/man1/lua5.1.1.gz, so nothing
clashes.
* The (un-)installation scripts call update-alternatives to notify the
system about new alternatives for a generic tool/manpage/etc.
* Alternatives can be grouped together ("link groups"), so e.g. switching
from Sun's Java to Kaffe switches compiler, JRE, manpages etc. together.
Alas, this doesn't work well with the Haskell implementations yet,
because they come with different sets of tools (in addition to runFOO):
GHC: hsc2hs
Hugs: hsc2hs, cpphs
nhc: cpphs
Either these tools should be disentangled fromt the Haskell
implementations or all implementations should offer the same set.
Opinions and recommendations on this topic are highly welcome.
* This mechanism can be used to easily switch between several versions of
the same implementation, too, but we are not yet fully prepared for that.
As a first step, GHC now installs hsc2hs as 'hsc2hs-ghc' and does *not*
install runhaskell directly anymore, only runghc. hsc2hs and runhaskell are
created via update-alternatives now. What is currently missing is a mechanism
for platforms like Windows and probably Mac OS X.
simonpj@microsoft.com [Thu, 15 Mar 2007 14:28:12 +0000 (14:28 +0000)]
Make the type-defaulting in GHCi use () as the first default type
See Trac #1200
This is a somewhat experimental fix. I'm not sure we want it in 6.6.1
The idea is explained in Note [Default unitTy] in TcSimplify. In
interative mode (or with -fextended-default-rules) we add () as the
first type we try when defaulting. This has very little real impact,
except in the following case. Consider:
Text.Printf.printf "hello"
This has type (forall a. IO a); it prints "hello", and returns
'undefined'. We don't want the GHCi repl loop to try to print that
'undefined'. The neatest thing is to default the 'a' to (), rather
than to Integer (which is what would otherwise happen; and then GHCi
doesn't attempt to print the (). So in interactive mode, we add () to
the list of defaulting types.
sven.panne@aedion.de [Thu, 15 Mar 2007 12:24:57 +0000 (12:24 +0000)]
Added support for parallel builds
With this patch, one can define the degree of build parallelism via a 'jobs'
rpm variable. A comfortable way to use this is having a ~/.rpmmacros file with
a line like:
%jobs 2
Alternatively, one could use a '--define "jobs 2"' command line flag for
rpmbuild. On a Core 2 Duo using 2 jobs brings down the time for a full build
including extralibs from 36m to 27m. If 'jobs' is not defined, a normal
sequential build is done, following the usual conventions on e.g. openSUSE.
simonpj@microsoft.com [Wed, 14 Mar 2007 16:48:50 +0000 (16:48 +0000)]
Wibble to type-error-message improvement
simonpj@microsoft.com [Wed, 14 Mar 2007 16:29:06 +0000 (16:29 +0000)]
Improve error messages slightly, saying "a1...an" instead of "a b c"
Ian Lynagh [Wed, 14 Mar 2007 16:01:02 +0000 (16:01 +0000)]
Tweak hasktags to cope with abc::def correctly
Patch from Marc Weber in
http://www.haskell.org/pipermail/glasgow-haskell-users/2007-February/011998.html
sven.panne@aedion.de [Wed, 14 Mar 2007 15:15:17 +0000 (15:15 +0000)]
Unbreak Haddock markup
sven.panne@aedion.de [Wed, 14 Mar 2007 14:04:34 +0000 (14:04 +0000)]
Warning police: Avoid name shadowing
sven.panne@aedion.de [Wed, 14 Mar 2007 13:43:28 +0000 (13:43 +0000)]
Handle primitive types and pseudo ops when generating LaTeX
sven.panne@aedion.de [Wed, 14 Mar 2007 13:40:44 +0000 (13:40 +0000)]
Warning police: Replace patter matching failures by something more informative
sven.panne@aedion.de [Wed, 14 Mar 2007 13:27:03 +0000 (13:27 +0000)]
Added LaTeX commands for primitive types and pseudo ops
sven.panne@aedion.de [Wed, 14 Mar 2007 13:25:21 +0000 (13:25 +0000)]
Fixed LaTeX markup
sven.panne@aedion.de [Wed, 14 Mar 2007 12:36:08 +0000 (12:36 +0000)]
Warning police: Don't rely on defaulting
sven.panne@aedion.de [Wed, 14 Mar 2007 12:30:21 +0000 (12:30 +0000)]
Warning police: Removed "Defined but not used" warnings
sven.panne@aedion.de [Wed, 14 Mar 2007 12:23:16 +0000 (12:23 +0000)]
Warning police: Added type signatures
sven.panne@aedion.de [Wed, 14 Mar 2007 12:22:33 +0000 (12:22 +0000)]
Use -Wall for compilation of genprimopcode
simonpj@microsoft.com [Wed, 14 Mar 2007 12:14:10 +0000 (12:14 +0000)]
Improve typechecker error messages; see Trac #1221
Ian Lynagh [Tue, 13 Mar 2007 22:05:45 +0000 (22:05 +0000)]
Fix the way configure sets the ghc_ge_* variables
Simon Marlow [Tue, 13 Mar 2007 16:00:08 +0000 (16:00 +0000)]
cache the values of ghc_ge_XXX at configure-time
This avoids recomputing them via $(shell) each time make expands one
of these variables, which is very expensive (0.3s or so) on Windows.
Brian Alliet [Wed, 14 Mar 2007 05:28:07 +0000 (05:28 +0000)]
Update the wired-in name for Data.String.IsString
simonpj@microsoft.com [Tue, 13 Mar 2007 16:22:54 +0000 (16:22 +0000)]
Add helpful cross-references
Simon Marlow [Tue, 13 Mar 2007 14:46:14 +0000 (14:46 +0000)]
fix #1200: don't evaluate the result of main
Simon Marlow [Tue, 23 Jan 2007 10:40:25 +0000 (10:40 +0000)]
Fix a bug in the liveness analysis
We were being overly conservative, registers that were live only at a
branch target were not recorded as being dead in the branch-not-taken
code.
Ian Lynagh [Mon, 12 Mar 2007 10:50:53 +0000 (10:50 +0000)]
Be a bit more verbose about what's happening when recursively making in subdirs
Ian Lynagh [Sun, 11 Mar 2007 17:50:25 +0000 (17:50 +0000)]
Have configure take arguments telling it where gmp is; fixes trac #957
Ian Lynagh [Fri, 9 Mar 2007 17:48:25 +0000 (17:48 +0000)]
Avoid duplication in the binary-dist rules for docs
Rather than building complex sh stuff and echoing what we're doing
ourselves, use make rules to do the looping and let make print things
out.
Ian Lynagh [Fri, 9 Mar 2007 17:43:07 +0000 (17:43 +0000)]
Remove duplication in binary dist rules
Rather than building complex sh stuff and echoing what we're doing
ourselves, use make rules to do the looping and let make print things
out.
wolfgang.thaller@gmx.net [Thu, 8 Mar 2007 02:05:03 +0000 (02:05 +0000)]
Make constructor names in info tables position independent
Info tables, like everything else in the text section, MUST NOT contain
pointers. A pointer is, by definition, position dependent and is therefore
fundamentally incompatible with generating position independent code.
Therefore, we have to store an offset from the info label to the string
instead of the pointer, just as we already did for other things referred
to by the info table (SRTs, large bitmaps, etc.)
Simon Marlow [Thu, 8 Mar 2007 15:46:53 +0000 (15:46 +0000)]
when invoking gcc, instead of the -B<dir> flag, use GCC_EXEC_PREFIX
should hopefully fix/workaround #1110, but I haven't had a chance to
test it yet.
Simon Marlow [Thu, 8 Mar 2007 13:45:43 +0000 (13:45 +0000)]
small cleanups
Simon Marlow [Thu, 8 Mar 2007 11:06:19 +0000 (11:06 +0000)]
refactor: use do-notation rather than `thenBc`-style
Simon Marlow [Thu, 8 Mar 2007 10:19:21 +0000 (10:19 +0000)]
add missing %ENTRY_CODE()
fixes unreg way in HEAD
Simon Marlow [Thu, 8 Mar 2007 09:57:17 +0000 (09:57 +0000)]
add noDuplicatezh_fast to symbol table
Simon Marlow [Wed, 7 Mar 2007 08:56:48 +0000 (08:56 +0000)]
add declaration for noDuplicatezh_fast
Ian Lynagh [Tue, 6 Mar 2007 15:26:54 +0000 (15:26 +0000)]
Remove outdated libraries/doc/libraries.xml and libraries/doc/libtable.xml
Simon Marlow [Tue, 6 Mar 2007 14:31:12 +0000 (14:31 +0000)]
add noDuplicate#
This primop ensures that the current computation is not being
duplicated, by calling threadPaused(). The idea is to use it inside
unsafePerformIO/unsafeInterleaveIO (see #986).
Simon Marlow [Tue, 6 Mar 2007 14:27:32 +0000 (14:27 +0000)]
THREADED_RTS: use cas() when claiming thunks
I guess I forgot to do this the first time around; the upshot is that
there could be some uncaught duplication of work on a multiprocessor
(but unlikely).
Simon Marlow [Tue, 6 Mar 2007 14:04:53 +0000 (14:04 +0000)]
workerTaskStop(): set task->cap = NULL
avoids an assertion failure in newBoundTask()
Simon Marlow [Tue, 6 Mar 2007 13:55:43 +0000 (13:55 +0000)]
disable -Wbad-function-cast; it's hard/impossible to work around
Simon Marlow [Tue, 6 Mar 2007 12:35:33 +0000 (12:35 +0000)]
remove vestiges of CCallable/CReturnable
Ian Lynagh [Tue, 6 Mar 2007 14:47:24 +0000 (14:47 +0000)]
Remove references to the in-tree building guide from teh old commentary
Ian Lynagh [Tue, 6 Mar 2007 14:43:41 +0000 (14:43 +0000)]
Remove old references to the in-tree building guide
Simon Marlow [Tue, 6 Mar 2007 09:35:25 +0000 (09:35 +0000)]
fix the timer_create() test
simonpj@microsoft.com [Tue, 6 Mar 2007 06:56:41 +0000 (06:56 +0000)]
Simple fix for Trac #1199 (pls merge to branch)
Simon Marlow [Mon, 5 Mar 2007 14:45:50 +0000 (14:45 +0000)]
forkProcess: startTimer() in the child, because the timer will be reset
Simon Marlow [Mon, 5 Mar 2007 14:36:43 +0000 (14:36 +0000)]
better autoconfery for timer_create()
Ian Lynagh [Sat, 3 Mar 2007 14:53:15 +0000 (14:53 +0000)]
Use Data.String rather than GHC.Base for IsString/fromString
Simon Marlow [Fri, 2 Mar 2007 11:31:04 +0000 (11:31 +0000)]
Use timer_create() for the interval timer, if available
This lets the threaded RTS use SIGVTALRM rather than SIGALRM for its
interval timer signal, so the threaded and non-threaded RTS are
compatible. It unfortunately doesn't completely fix #850/#1156, for
that we really have to use a restartable sleep instead of usleep().
Also I cleaned up the timer API a little: instead of returning an
error value that ultimately gets ignored, we now report errors from
system calls and exit.
Simon Marlow [Thu, 1 Mar 2007 13:06:28 +0000 (13:06 +0000)]
further improvements to the x86/x86_64 NCG
Ian Lynagh [Thu, 1 Mar 2007 13:03:39 +0000 (13:03 +0000)]
Fix typo in primops docs
simonpj@microsoft.com [Thu, 1 Mar 2007 11:45:13 +0000 (11:45 +0000)]
Do not go into an infinite loop when pretty-printer finds a negative indent (Trac #1176)
Simon Marlow [Thu, 1 Mar 2007 11:26:25 +0000 (11:26 +0000)]
Use the most complex form of addressing modes on x86
We had a pattern that matched (base+(index<<N)), but not
(base+(index<<N)+M).
Simon Marlow [Thu, 1 Mar 2007 11:25:13 +0000 (11:25 +0000)]
is64BitInteger: truncate to 64 bits before testing
We weren't catching some literals that actually fit in 32 bits before,
because e.g. -1 was sometimes represented as 0xffffffffffffffff in CmmInt.
Simon Marlow [Thu, 1 Mar 2007 09:57:49 +0000 (09:57 +0000)]
Fix -keep-s-file with --make