12 years agoMake building binary dists work with cabalised libraries
Ian Lynagh [Sat, 10 Mar 2007 01:25:58 +0000 (01:25 +0000)] 
Make building binary dists work with cabalised libraries

12 years agoBuild the libraries with cabal
Ian Lynagh [Thu, 8 Mar 2007 16:32:47 +0000 (16:32 +0000)] 
Build the libraries with cabal

12 years agofix adjustor generation on ia64 (test case ffi009) [Sun, 1 Apr 2007 16:31:32 +0000 (16:31 +0000)] 
fix adjustor generation on ia64 (test case ffi009)

Some fixes to adjustor functions.  The 8-byte address returned by the
allocator is adjusted to be aligned to 16-byte boundaries.  Fixed a typo
in inserting an immediate address into an instruction.

This fixes the calls to 5-argument and 6-argument functions in ffi009.
Some functions still break.  I suspect it's related to passing arguments on
the stack.

12 years agosave two more FP registers on ia64 [Tue, 27 Mar 2007 04:18:11 +0000 (04:18 +0000)] 
save two more FP registers on ia64

Save/restore two more registers in StgCRun().  The extra
registers are used by ffi009.hs, when compiling with gcc 4.1.2.

12 years agoadd a safety net to avoid generating bogus code
Simon Marlow [Wed, 4 Apr 2007 15:50:01 +0000 (15:50 +0000)] 
add a safety net to avoid generating bogus code

12 years agoadd comments about ticky RTS ways
Simon Marlow [Wed, 4 Apr 2007 14:10:13 +0000 (14:10 +0000)] 
add comments about ticky RTS ways

12 years agoslight doc wibble for the -r flag
Simon Marlow [Wed, 4 Apr 2007 14:08:05 +0000 (14:08 +0000)] 
slight doc wibble for the -r flag

12 years agoMERGE: Fix bug exposed by conc052.
Simon Marlow [Wed, 4 Apr 2007 10:30:27 +0000 (10:30 +0000)] 
MERGE: Fix bug exposed by conc052.
A thread that was blocked on a blackhole but can now be woken up could
possibly be treated as unreachable by the GC, and sent the
NonTermination exception.

This can give rise to spurious <<loop>>s in concurrent programs, so
it's a good one to fix.

12 years agoHANDLE --> (void *), we can't rely on having included windows.h here
Simon Marlow [Wed, 4 Apr 2007 08:40:18 +0000 (08:40 +0000)] 
HANDLE --> (void *), we can't rely on having included windows.h here
HANDLE is defined to be (void *) anyway, so this shouldn't hurt

12 years agoFix C/Haskell type mismatches
Ian Lynagh [Wed, 4 Apr 2007 00:34:25 +0000 (00:34 +0000)] 
Fix C/Haskell type mismatches

12 years agoFix typo
Ian Lynagh [Wed, 4 Apr 2007 00:03:47 +0000 (00:03 +0000)] 
Fix typo

12 years agoFix C/Haskell type mismatches
Ian Lynagh [Tue, 3 Apr 2007 19:53:24 +0000 (19:53 +0000)] 
Fix C/Haskell type mismatches

12 years agoMake type-tidying work for coercion variables [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!

12 years agoMake error message output order consistent
Ian Lynagh [Sun, 1 Apr 2007 18:57:41 +0000 (18:57 +0000)] 
Make error message output order consistent

12 years agoFix darcs-all to be usable with shells other than bash
Alec Berryman [Tue, 6 Mar 2007 17:30:11 +0000 (17:30 +0000)] 
Fix darcs-all to be usable with shells other than bash

12 years agoFixed desugaring of parallel array comprehensions
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 **

12 years agoThe ru_local field of a CoreRule is False for implicit Ids [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.

12 years agoMatch the type of an Id during rule matching [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

12 years agoAdd filepath library
Ian Lynagh [Wed, 28 Mar 2007 23:51:54 +0000 (23:51 +0000)] 
Add filepath library

12 years agoFix the type of wgencat
Ian Lynagh [Thu, 29 Mar 2007 16:42:38 +0000 (16:42 +0000)] 
Fix the type of wgencat

12 years agoDocument that ghci now adds () to the start of the type defaulting list
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

12 years agoRefactoring in HscMain.lhs
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.

12 years agoTypo in comment.
Lemmih [Wed, 28 Mar 2007 22:01:09 +0000 (22:01 +0000)] 
Typo in comment.

12 years agoremove old library doc link (#1098), and point to HackageDB
Simon Marlow [Wed, 28 Mar 2007 10:29:38 +0000 (10:29 +0000)] 
remove old library doc link (#1098), and point to HackageDB

12 years agoMake GHC main program depend on the libHSghc_dyn when GhcBuildDylibs==YES [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.


12 years agoUse a sensible set of compiler options for building dynamic libraries on Mac OS X [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).


12 years agomake GHCi use base:Prelude, not just Prelude
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.

12 years agomore improvements for #1119
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

12 years agopartial fix for #1119
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

    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.

12 years agoremove docs for unimplemented options
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.

12 years agoAdd comments about the -include-prelude flag for ghc -M [Tue, 27 Mar 2007 11:36:12 +0000 (11:36 +0000)] 
Add comments about the -include-prelude flag for ghc -M

12 years agoRemove dead code from rnExpr (Var v); seems to be a leftover from some breakpoint... [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

12 years agomove "boot :: all" after the include of to fix #1095
Simon Marlow [Mon, 26 Mar 2007 15:59:49 +0000 (15:59 +0000)] 
move "boot :: all" after the include of to fix #1095

12 years agoadd missing progress message
Simon Marlow [Mon, 26 Mar 2007 15:52:33 +0000 (15:52 +0000)] 
add missing progress message

12 years agoEmit a decent error message when there is a decl-splice inside a decl-bracket [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.

12 years agoWibble fixing overlapped pattern [Fri, 23 Mar 2007 11:18:50 +0000 (11:18 +0000)] 
Wibble fixing overlapped pattern

12 years agoTidy up refactoring only [Fri, 23 Mar 2007 11:18:21 +0000 (11:18 +0000)] 
Tidy up refactoring only

12 years agoDocumentation for --install-signal-handlers=<yes|no>
Ian Lynagh [Thu, 22 Mar 2007 18:46:07 +0000 (18:46 +0000)] 
Documentation for --install-signal-handlers=<yes|no>

12 years agoAdd an --install-signal-handlers=<yes|no> RTS flag; fixes trac #804
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

12 years agoMake a Functor (IOEnv m) instance so it satisfies the new Quasi requirements
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

12 years agoWarning police: Removed catch-all case which was overlapped [Thu, 22 Mar 2007 16:10:40 +0000 (16:10 +0000)] 
Warning police: Removed catch-all case which was overlapped

12 years agoAdd -ddump-mod-cycles to -M behaviour [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.

12 years agoImprove documentation of instances [Thu, 22 Mar 2007 11:07:18 +0000 (11:07 +0000)] 
Improve documentation of instances

12 years agoFix checkHiBootIface for instances declared in hs-boot files [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

12 years agomangler and runtime updates for gcc 4 on ia64 [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
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.

12 years agoia64 tailcall fix [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.

12 years agoRemove bogus export from TcSplice.lhs-boot [Wed, 21 Mar 2007 11:20:57 +0000 (11:20 +0000)] 
Remove bogus export from TcSplice.lhs-boot

12 years agoWibble to GHCi part of TcRnDriver [Wed, 21 Mar 2007 11:16:39 +0000 (11:16 +0000)] 
Wibble to GHCi part of TcRnDriver

12 years agoYet another wibble to checkHiBootIface; it's trickier than it looks! [Wed, 21 Mar 2007 09:37:33 +0000 (09:37 +0000)] 
Yet another wibble to checkHiBootIface; it's trickier than it looks!

12 years agoImprove pretty-printing for IfaceConDecl [Wed, 21 Mar 2007 09:36:11 +0000 (09:36 +0000)] 
Improve pretty-printing for IfaceConDecl

12 years agoRemove redundant exports from a hs-boot file [Wed, 21 Mar 2007 09:35:25 +0000 (09:35 +0000)] 
Remove redundant exports from a hs-boot file

12 years agoFurther wibbles to checkBootIface (fixed HEAD build) [Tue, 20 Mar 2007 15:41:26 +0000 (15:41 +0000)] 
Further wibbles to checkBootIface (fixed HEAD build)

12 years agoUse explict layout (fixes breakage when compiling TcSimplify) [Mon, 19 Mar 2007 15:19:26 +0000 (15:19 +0000)] 
Use explict layout (fixes breakage when compiling TcSimplify)

12 years agoFix typo "lazy y x" -> "lazy y"
Ian Lynagh [Sat, 17 Mar 2007 00:40:03 +0000 (00:40 +0000)] 
Fix typo "lazy y x" -> "lazy y"

12 years agoDesugar applications of 'seq' specially; fix Trac #1031 [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.

12 years agoImprove error messages for 'deriving' clauses [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.

12 years agoRefactor TcRnDriver, and check exports on hi-boot files [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.

12 years agoComment out debug traces [Fri, 16 Mar 2007 13:38:22 +0000 (13:38 +0000)] 
Comment out debug traces

12 years agoUse update-alternatives for handling generic tool names [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

   * 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.

12 years agoMake the type-defaulting in GHCi use () as the first default type [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.

12 years agoAdded support for parallel builds [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.

12 years agoWibble to type-error-message improvement [Wed, 14 Mar 2007 16:48:50 +0000 (16:48 +0000)] 
Wibble to type-error-message improvement

12 years agoImprove error messages slightly, saying "" instead of "a b c" [Wed, 14 Mar 2007 16:29:06 +0000 (16:29 +0000)] 
Improve error messages slightly, saying "" instead of "a b c"

12 years agoTweak hasktags to cope with abc::def correctly
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

12 years agoUnbreak Haddock markup [Wed, 14 Mar 2007 15:15:17 +0000 (15:15 +0000)] 
Unbreak Haddock markup

12 years agoWarning police: Avoid name shadowing [Wed, 14 Mar 2007 14:04:34 +0000 (14:04 +0000)] 
Warning police: Avoid name shadowing

12 years agoHandle primitive types and pseudo ops when generating LaTeX [Wed, 14 Mar 2007 13:43:28 +0000 (13:43 +0000)] 
Handle primitive types and pseudo ops when generating LaTeX

12 years agoWarning police: Replace patter matching failures by something more informative [Wed, 14 Mar 2007 13:40:44 +0000 (13:40 +0000)] 
Warning police: Replace patter matching failures by something more informative

12 years agoAdded LaTeX commands for primitive types and pseudo ops [Wed, 14 Mar 2007 13:27:03 +0000 (13:27 +0000)] 
Added LaTeX commands for primitive types and pseudo ops

12 years agoFixed LaTeX markup [Wed, 14 Mar 2007 13:25:21 +0000 (13:25 +0000)] 
Fixed LaTeX markup

12 years agoWarning police: Don't rely on defaulting [Wed, 14 Mar 2007 12:36:08 +0000 (12:36 +0000)] 
Warning police: Don't rely on defaulting

12 years agoWarning police: Removed "Defined but not used" warnings [Wed, 14 Mar 2007 12:30:21 +0000 (12:30 +0000)] 
Warning police: Removed "Defined but not used" warnings

12 years agoWarning police: Added type signatures [Wed, 14 Mar 2007 12:23:16 +0000 (12:23 +0000)] 
Warning police: Added type signatures

12 years agoUse -Wall for compilation of genprimopcode [Wed, 14 Mar 2007 12:22:33 +0000 (12:22 +0000)] 
Use -Wall for compilation of genprimopcode

12 years agoImprove typechecker error messages; see Trac #1221 [Wed, 14 Mar 2007 12:14:10 +0000 (12:14 +0000)] 
Improve typechecker error messages; see Trac #1221

12 years agoFix the way configure sets the ghc_ge_* variables
Ian Lynagh [Tue, 13 Mar 2007 22:05:45 +0000 (22:05 +0000)] 
Fix the way configure sets the ghc_ge_* variables

12 years agocache the values of ghc_ge_XXX at configure-time
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.

12 years agoUpdate the wired-in name for Data.String.IsString
Brian Alliet [Wed, 14 Mar 2007 05:28:07 +0000 (05:28 +0000)] 
Update the wired-in name for Data.String.IsString

12 years agoAdd helpful cross-references [Tue, 13 Mar 2007 16:22:54 +0000 (16:22 +0000)] 
Add helpful cross-references

12 years agofix #1200: don't evaluate the result of main
Simon Marlow [Tue, 13 Mar 2007 14:46:14 +0000 (14:46 +0000)] 
fix #1200: don't evaluate the result of main

12 years agoFix a bug in the liveness analysis
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

12 years agoBe a bit more verbose about what's happening when recursively making in subdirs
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

12 years agoHave configure take arguments telling it where gmp is; fixes trac #957
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

12 years agoAvoid duplication in the binary-dist rules for docs
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

12 years agoRemove duplication in binary dist rules
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

12 years agoMake constructor names in info tables position independent [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.)

12 years agowhen invoking gcc, instead of the -B<dir> flag, use GCC_EXEC_PREFIX
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.

12 years agosmall cleanups
Simon Marlow [Thu, 8 Mar 2007 13:45:43 +0000 (13:45 +0000)] 
small cleanups

12 years agorefactor: use do-notation rather than `thenBc`-style
Simon Marlow [Thu, 8 Mar 2007 11:06:19 +0000 (11:06 +0000)] 
refactor: use do-notation rather than `thenBc`-style

12 years agoadd missing %ENTRY_CODE()
Simon Marlow [Thu, 8 Mar 2007 10:19:21 +0000 (10:19 +0000)] 
add missing %ENTRY_CODE()
fixes unreg way in HEAD

12 years agoadd noDuplicatezh_fast to symbol table
Simon Marlow [Thu, 8 Mar 2007 09:57:17 +0000 (09:57 +0000)] 
add noDuplicatezh_fast to symbol table

12 years agoadd declaration for noDuplicatezh_fast
Simon Marlow [Wed, 7 Mar 2007 08:56:48 +0000 (08:56 +0000)] 
add declaration for noDuplicatezh_fast

12 years agoRemove outdated libraries/doc/libraries.xml and libraries/doc/libtable.xml
Ian Lynagh [Tue, 6 Mar 2007 15:26:54 +0000 (15:26 +0000)] 
Remove outdated libraries/doc/libraries.xml and libraries/doc/libtable.xml

12 years agoadd noDuplicate#
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).

12 years agoTHREADED_RTS: use cas() when claiming thunks
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).

12 years agoworkerTaskStop(): set task->cap = NULL
Simon Marlow [Tue, 6 Mar 2007 14:04:53 +0000 (14:04 +0000)] 
workerTaskStop(): set task->cap = NULL
avoids an assertion failure in newBoundTask()

12 years agodisable -Wbad-function-cast; it's hard/impossible to work around
Simon Marlow [Tue, 6 Mar 2007 13:55:43 +0000 (13:55 +0000)] 
disable -Wbad-function-cast; it's hard/impossible to work around

12 years agoremove vestiges of CCallable/CReturnable
Simon Marlow [Tue, 6 Mar 2007 12:35:33 +0000 (12:35 +0000)] 
remove vestiges of CCallable/CReturnable

12 years agoRemove references to the in-tree building guide from teh old commentary
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

12 years agoRemove old references to the in-tree building guide
Ian Lynagh [Tue, 6 Mar 2007 14:43:41 +0000 (14:43 +0000)] 
Remove old references to the in-tree building guide