ghc-hetmet.git
17 years agobreakpointCond
Lemmih [Tue, 2 May 2006 17:43:40 +0000 (17:43 +0000)]
breakpointCond

17 years agoPreserve type variable names during type inference
simonpj@microsoft.com [Fri, 5 May 2006 15:37:53 +0000 (15:37 +0000)]
Preserve type variable names during type inference

During unification we attempt to preserve the print-names of type variables,
so that type error messages tend to mention type variables using the
programmer's vocabulary.

This had bit-rotted a bit when I added impredicative polymorphism; especially
when unBoxing a boxy type variable we should not gratuitously lose its name.

17 years agoTrim imports
simonpj@microsoft.com [Fri, 5 May 2006 15:05:06 +0000 (15:05 +0000)]
Trim imports

17 years agofixup for new source tree layout
Simon Marlow [Fri, 5 May 2006 11:41:00 +0000 (11:41 +0000)]
fixup for new source tree layout

17 years agoFPTOOLS_TOP-->GHC_TOP, and remove some references to "fptools"
Simon Marlow [Fri, 5 May 2006 11:05:20 +0000 (11:05 +0000)]
FPTOOLS_TOP-->GHC_TOP, and remove some references to "fptools"

17 years ago$(FPTOOLS_TOP) is now known as $(GHC_TOP)
Simon Marlow [Fri, 5 May 2006 11:01:27 +0000 (11:01 +0000)]
$(FPTOOLS_TOP) is now known as $(GHC_TOP)
I kept $(FPTOOLS_TOP) as an alias for $(GHC_TOP) while we switch

17 years agoupdate the build system documentation
Simon Marlow [Fri, 5 May 2006 10:58:43 +0000 (10:58 +0000)]
update the build system documentation

17 years agoupdate for new source tree layout
Simon Marlow [Fri, 5 May 2006 10:29:03 +0000 (10:29 +0000)]
update for new source tree layout

17 years agopartial update for new source tree layout
Simon Marlow [Fri, 5 May 2006 03:02:18 +0000 (03:02 +0000)]
partial update for new source tree layout

17 years agoupdate for new source tree layout (untested)
Simon Marlow [Fri, 5 May 2006 08:15:49 +0000 (08:15 +0000)]
update for new source tree layout (untested)

17 years agoPrint a more helpful error for find_thing
simonpj@microsoft.com [Thu, 4 May 2006 15:33:37 +0000 (15:33 +0000)]
Print a more helpful error for find_thing

17 years agoFix a bug in rule matching
simonpj@microsoft.com [Thu, 4 May 2006 11:24:30 +0000 (11:24 +0000)]
Fix a bug in rule matching

The rule matcher uses a "rough-match" pre-filter, which was being too
aggressive.  The case looked like this:

rule: f True
expr: case e of x { True -> f x }

Jues because x doesn't immediately look like True, we shouldn't say
"can't match", but that is exactly what ruleCantMatch was doing.

17 years agoFix constructor-specialisation bug
simonpj@microsoft.com [Thu, 4 May 2006 11:21:31 +0000 (11:21 +0000)]
Fix constructor-specialisation bug

The constructor-specialisation optimisation was not dealing with the case
of
(letrec ... in f) a1 a2

We need to apply constructor specialisation in the letrec; previously
we were leaving it untouched on the grounds that the function part of
an application is almost always a variable.

But in fact, float-in immediately precedes SpecConstr, so we can get
these odd-looking applications.

17 years agoFix precedence for records in derived Read
simonpj@microsoft.com [Thu, 4 May 2006 11:18:04 +0000 (11:18 +0000)]
Fix precedence for records in derived Read

The derived instance for Read of records wasn't quite right.
Consider
data T = T1 T | T2 { x::Int }

The string "T1 T2 { x=2 }" should parse correctly as
T1 (T2 {x=2})
because of Haskell's odd precedence rules (record construction binds
even more tightly than application), but the derived Read didn't take
account of that.

drvrun020 is the regression test

17 years agoMake rules available in RHS
simonpj@microsoft.com [Thu, 4 May 2006 11:15:00 +0000 (11:15 +0000)]
Make rules available in RHS

After some earlier re-factoring, the code that was carefully trying
to make RULES available in a function's own RHS was plain wrong.

This commit fixes it.  Some programs should go faster!

17 years agoPretty printing instance for Unfolding
simonpj@microsoft.com [Thu, 4 May 2006 11:14:29 +0000 (11:14 +0000)]
Pretty printing instance for Unfolding

17 years agosmall clarification
Simon Marlow [Thu, 4 May 2006 10:34:14 +0000 (10:34 +0000)]
small clarification

17 years agosmall fix to booting instructions from #762
Simon Marlow [Thu, 4 May 2006 08:31:04 +0000 (08:31 +0000)]
small fix to booting instructions from #762

17 years ago$(ProjectNameShort) => ghc
Simon Marlow [Wed, 3 May 2006 10:24:19 +0000 (10:24 +0000)]
$(ProjectNameShort) => ghc

17 years agoonly pass -fno-unit-at-a-time to gcc if it is supported
Simon Marlow [Wed, 3 May 2006 09:36:14 +0000 (09:36 +0000)]
only pass -fno-unit-at-a-time to gcc if it is supported

17 years agoArrange that -fth is no longer implied by -fglasgow-exts
simonpj@microsoft.com [Wed, 26 Apr 2006 18:21:14 +0000 (18:21 +0000)]
Arrange that -fth is no longer implied by -fglasgow-exts

Messages involving Template Haskell are deeply puzzling
if you don't know about TH, so it seems better to make
-fth an explicit flag.  It is no longer switched on
by -fglasgow-exts.

17 years agoremove code not required in the new source tree layout
Simon Marlow [Tue, 2 May 2006 11:42:35 +0000 (11:42 +0000)]
remove code not required in the new source tree layout

17 years agomove "compat" earlier in the build for .hc bootstrapping
Simon Marlow [Tue, 2 May 2006 11:20:01 +0000 (11:20 +0000)]
move "compat" earlier in the build for .hc bootstrapping

17 years agofix ctime_r problem on Solaris (I hope)
Simon Marlow [Tue, 2 May 2006 11:12:31 +0000 (11:12 +0000)]
fix ctime_r problem on Solaris (I hope)

17 years agofix whitespace problem that shows up on Solaris (x86)
Simon Marlow [Tue, 2 May 2006 11:00:01 +0000 (11:00 +0000)]
fix whitespace problem that shows up on Solaris (x86)

17 years agolibraries/time is boring
Simon Marlow [Tue, 2 May 2006 10:55:24 +0000 (10:55 +0000)]
libraries/time is boring

17 years agoadd time package to libraries Makefile
Ashley Yakeley [Mon, 1 May 2006 09:22:41 +0000 (09:22 +0000)]
add time package to libraries Makefile

17 years agoadd time package to default-packages
Ashley Yakeley [Wed, 26 Apr 2006 07:04:45 +0000 (07:04 +0000)]
add time package to default-packages

17 years agoFix stage2 segfault on openbsd.
dons@cse.unsw.edu.au [Fri, 28 Apr 2006 07:48:11 +0000 (07:48 +0000)]
Fix stage2 segfault on openbsd.

Somewhere along the 6.5 branch, gcc started compiling the rts such that
it triggers the stack smash handler, causing stage2 to by kill'd
immediately. This turns off the stack protector, which will do for now.

17 years agofix quoting around ${FPTOOLS_TOP_ABS} (fixes #749)
Simon Marlow [Fri, 28 Apr 2006 08:52:52 +0000 (08:52 +0000)]
fix quoting around ${FPTOOLS_TOP_ABS} (fixes #749)

17 years agoFix bug shown in the mod77 test.
Lemmih [Thu, 27 Apr 2006 11:33:13 +0000 (11:33 +0000)]
Fix bug shown in the mod77 test.

17 years agoDon't init root pointers if they aren't gonna be used.
Lemmih [Wed, 26 Apr 2006 11:11:43 +0000 (11:11 +0000)]
Don't init root pointers if they aren't gonna be used.

17 years agoFix recompilation checking.
Simon Marlow [Tue, 25 Apr 2006 14:09:32 +0000 (14:09 +0000)]
Fix recompilation checking.
One-shot compilation was throwing away the old iface read by
checkOldIface, with the result that version numbers were never being
incremented.  Fixes the recomp001 test too.

17 years agoSolaris needs -lrt for the threaded RTS
Simon Marlow [Tue, 25 Apr 2006 08:28:23 +0000 (08:28 +0000)]
Solaris needs -lrt for the threaded RTS

17 years agofix problem with binary-dist docs
Simon Marlow [Mon, 24 Apr 2006 09:01:59 +0000 (09:01 +0000)]
fix problem with binary-dist docs

18 years agoEnable breakpoint support.
Lemmih [Fri, 21 Apr 2006 11:31:12 +0000 (11:31 +0000)]
Enable breakpoint support.

18 years agoFixing some lexer errors with extcore
Josef Svenningsson [Thu, 20 Apr 2006 22:26:25 +0000 (22:26 +0000)]
Fixing some lexer errors with extcore

18 years agoExtcore can now handle data types without constructors
Josef Svenningsson [Thu, 20 Apr 2006 21:36:22 +0000 (21:36 +0000)]
Extcore can now handle data types without constructors

18 years agoComments only
Josef Svenningsson [Thu, 20 Apr 2006 21:35:55 +0000 (21:35 +0000)]
Comments only

18 years agoResurrect ProjectName
sven.panne@aedion.de [Fri, 21 Apr 2006 08:51:25 +0000 (08:51 +0000)]
Resurrect ProjectName

18 years agoRemove the section on platform support, link to the wiki page
Simon Marlow [Thu, 20 Apr 2006 12:55:55 +0000 (12:55 +0000)]
Remove the section on platform support, link to the wiki page
The section in the building guide was becoming out of date, a wiki
page is much more likely to be kept fresh.

18 years agoFix workaround for a GHC 6.4 bug
rl@cse.unsw.edu.au [Thu, 20 Apr 2006 04:42:23 +0000 (04:42 +0000)]
Fix workaround for a GHC 6.4 bug

18 years agohslibs is dead, Jim...
sven.panne@aedion.de [Wed, 19 Apr 2006 14:46:09 +0000 (14:46 +0000)]
hslibs is dead, Jim...

18 years agoSynched .spec file with reality
sven.panne@aedion.de [Wed, 19 Apr 2006 14:31:38 +0000 (14:31 +0000)]
Synched .spec file with reality

18 years agoAdd .spec file to source distribution
sven.panne@aedion.de [Wed, 19 Apr 2006 10:37:25 +0000 (10:37 +0000)]
Add .spec file to source distribution

18 years agoremove paragraph about mutable objects that doesn't apply now
Simon Marlow [Wed, 19 Apr 2006 08:20:38 +0000 (08:20 +0000)]
remove paragraph about mutable objects that doesn't apply now

18 years agoHsBool should be HsInt, not StgBool
Simon Marlow [Tue, 18 Apr 2006 14:42:14 +0000 (14:42 +0000)]
HsBool should be HsInt, not StgBool
StgBool is mapped to C's int type.  GHC doesn't currently know the
size of a C int on the target arch, it's easier to use StgInt instead.
I guess nobody ever uses Bool arguments to foreign imports/exports.

18 years agohandle Bool arg to foreign import "wrapper"
Simon Marlow [Tue, 18 Apr 2006 14:39:36 +0000 (14:39 +0000)]
handle Bool arg to foreign import "wrapper"
Fixes #746

18 years agoupdate commentry for foreign import "wrapper" handling
Simon Marlow [Tue, 18 Apr 2006 14:37:14 +0000 (14:37 +0000)]
update commentry for foreign import "wrapper" handling

18 years agoremove vestiges of ByteArray and MutableByteArray, which are no more
Simon Marlow [Tue, 18 Apr 2006 14:36:41 +0000 (14:36 +0000)]
remove vestiges of ByteArray and MutableByteArray, which are no more

18 years agoComment only
simonpj@microsoft.com [Tue, 18 Apr 2006 12:56:24 +0000 (12:56 +0000)]
Comment only

18 years agoFix rank-validity testing
simonpj@microsoft.com [Tue, 18 Apr 2006 12:53:50 +0000 (12:53 +0000)]
Fix rank-validity testing

GHC does not now do "hoisting" as it used to.  Instead, it allows
foralls to the right of fuction arrows, as well as to the left.

But the type-validity tester hadn't caught up.  This commit fixes
it. The test is tc203.

Incidentally, GHC still doesn't let you write
forall a. Eq a => forall b. b -> b
because we get a zillion reduce/reduce errors if we allow that.  I'm
sure it's fixable.  But meanwhile you have to use an auxiliary type
synonym, which is a bit stupid.

18 years agoMake the initial rdr and type scope available in the ghc-api.
Lemmih [Tue, 18 Apr 2006 02:36:06 +0000 (02:36 +0000)]
Make the initial rdr and type scope available in the ghc-api.

18 years agoFix minor bug in Linker.withExtendedLinkEnv
Lemmih [Tue, 18 Apr 2006 02:35:18 +0000 (02:35 +0000)]
Fix minor bug in Linker.withExtendedLinkEnv

18 years agoExport 'insertSymbol' and 'insertStableSymbol'.
Lemmih [Tue, 18 Apr 2006 02:18:06 +0000 (02:18 +0000)]
Export 'insertSymbol' and 'insertStableSymbol'.

'insertStableSymbol' is used for exporting closures that are affected by the GC.

18 years agoAllow $x, as well as $(x), at top level in TH
simonpj@microsoft.com [Fri, 14 Apr 2006 12:19:07 +0000 (12:19 +0000)]
Allow $x, as well as $(x), at top level in TH

Bulat pointed out that in Template Haskell
   $x
is allowed instead of
   $(x)
in expressions, but not at the top level of modules.

This commit fixes the omission.  Now you can say

f x = x
  $h
data T = T

and the $h will run Template Haskell just as you'd expect.

18 years agoFix TH erorr recovery (test is TH_recover)
simonpj@microsoft.com [Fri, 14 Apr 2006 12:04:11 +0000 (12:04 +0000)]
Fix TH erorr recovery (test is TH_recover)

18 years agoComments only
simonpj@microsoft.com [Fri, 14 Apr 2006 12:03:59 +0000 (12:03 +0000)]
Comments only

18 years agoRecover gracefully from a Template Haskell programmers error
simonpj@microsoft.com [Fri, 14 Apr 2006 11:58:31 +0000 (11:58 +0000)]
Recover gracefully from a Template Haskell programmers error

If a TH programmer uses a type constructor as a data constructor,
GHC simply crashed.  This commit makes it report the error in a
graceful way.

18 years agoDocument newtype-unwrapping for IO in FFI
simonpj@microsoft.com [Fri, 14 Apr 2006 10:52:12 +0000 (10:52 +0000)]
Document newtype-unwrapping for IO in FFI

18 years agoCosmetics in SpecConstr
simonpj@microsoft.com [Wed, 12 Apr 2006 15:27:21 +0000 (15:27 +0000)]
Cosmetics in SpecConstr

SpecConstr currently uses substExpr for tiresome reasons to do with
GADTs.  Unfortunately the substExpr generates some WARNINGS (when DEBUG)
is on, because we aren't adding all the in-scope Ids to the in-scope
set of the substitution.

When we move to FC these substExprs will go away, so I'm not going to
worry about this now.

18 years agoImprove pruning of case alternatives to account for GADTs
simonpj@microsoft.com [Wed, 12 Apr 2006 15:23:27 +0000 (15:23 +0000)]
Improve pruning of case alternatives to account for GADTs

Consider

  data T a where
    T1 :: T Int
    T2 :: T Bool
    T3 :: T Char

  f :: T Bool -> Int
  f x = case x of
  DEFAULT -> ...
  T2 -> 3

Here the DEFAULT case covers multiple constructors (T1,T3), but none
of them can match a scrutinee of type (T Bool).  So we can prune away
the default case altogether.

In implementing this, I re-factored this bit of the simplifier, elminiating
prepareAlts from SimplUtils, and putting all the work into simplAlts in
Simplify

The proximate cause was a program written by Manuel using PArrays

18 years agoFix a bug in optimising division to shift right
Simon Marlow [Wed, 12 Apr 2006 14:42:47 +0000 (14:42 +0000)]
Fix a bug in optimising division to shift right
Division by an integral log2 can't be directly optimised to a shift
right, because shift right behaves like a division that rounds to
negative infinity, whereas we want one that rounds to zero.  Fix this
by adding (divisor-1) to the dividend when it is negative before
shifting.  We do this without jumps, generating very slightly worse
code than gcc, which uses conditional moves on CPUs that support it.

18 years agoOmit lndir on Windows, as it used to be
simonpj@microsoft.com [Tue, 11 Apr 2006 13:53:34 +0000 (13:53 +0000)]
Omit lndir on Windows, as it used to be

18 years agoremove a trace
Simon Marlow [Tue, 11 Apr 2006 13:15:31 +0000 (13:15 +0000)]
remove a trace

18 years agoAllow IO to be wrapped in a newtype in foreign import/export
simonpj@microsoft.com [Tue, 11 Apr 2006 12:04:41 +0000 (12:04 +0000)]
Allow IO to be wrapped in a newtype in foreign import/export

Up to now, the silent unwrapping of newtypes in foreign import/export
has been limited to data values.  But it's useful for the IO monad
itself:

newtype MyIO a = MIO (IO a)

foreign import foo :: Int -> MyIO Int

This patch allows the IO monad to be
wrapped too. This applies to foreign import "dynamic" and "wrapper",
thus
   foreign import "wrapper" foo :: MyIO () -> HisIO (FunPtr (MyIO ()))

Warning: I did on the plane, and I'm no longer sure if its 100%
complete, so needs more testing.  In particular the wrapper/dynamic bit.

18 years agoImprove newtype deriving
simonpj@microsoft.com [Sun, 2 Apr 2006 21:59:11 +0000 (21:59 +0000)]
Improve newtype deriving

Ross Paterson pointed out a useful generalisation of GHC's
newtype-deriving mechanism.  This implements it.  The idea
is to allow
newtype Wrap m a = Wrap (m a) deriving (Monad, Eq)
where the representation type doesn't start with a type
constructor.

Actually GHC already *did* implement this, but the eta-ok
check in TcDeriv missed a case, so there was a lurking bug.

This patches fixes the documentation too.  drvrun019 tests.

18 years agoadd take to the list of functions deforestable
Simon Marlow [Tue, 11 Apr 2006 09:01:31 +0000 (09:01 +0000)]
add take to the list of functions deforestable

18 years agoavoid versionitis in Numeric.showHex (should fix tcrun007)
Simon Marlow [Tue, 11 Apr 2006 08:50:09 +0000 (08:50 +0000)]
avoid versionitis in Numeric.showHex (should fix tcrun007)

18 years agoadd a note about full-laziness
Simon Marlow [Mon, 10 Apr 2006 09:38:24 +0000 (09:38 +0000)]
add a note about full-laziness

18 years agorobustify the test for the top of the tree a little
Simon Marlow [Mon, 10 Apr 2006 08:22:24 +0000 (08:22 +0000)]
robustify the test for the top of the tree a little

18 years agoMake darcs-all work without a ghc toplevel directory
Josef Svenningsson [Fri, 7 Apr 2006 16:17:38 +0000 (16:17 +0000)]
Make darcs-all work without a ghc toplevel directory

18 years agoFix typo in darcsall warning
Josef Svenningsson [Fri, 7 Apr 2006 16:13:35 +0000 (16:13 +0000)]
Fix typo in darcsall warning

18 years agofix source dists
Simon Marlow [Fri, 7 Apr 2006 15:00:45 +0000 (15:00 +0000)]
fix source dists

18 years agoadd a README for binary dists
Simon Marlow [Fri, 7 Apr 2006 14:38:32 +0000 (14:38 +0000)]
add a README for binary dists

18 years agofix binary dists
Simon Marlow [Fri, 7 Apr 2006 14:38:22 +0000 (14:38 +0000)]
fix binary dists

18 years agoremove the last bits of the ghc/ subdir
Simon Marlow [Fri, 7 Apr 2006 08:52:19 +0000 (08:52 +0000)]
remove the last bits of the ghc/ subdir

18 years agoFix a bug related to threads blocked on blackholes 04_07_06 07_04_06
Simon Marlow [Fri, 7 Apr 2006 10:18:39 +0000 (10:18 +0000)]
Fix a bug related to threads blocked on blackholes
We weren't making them live early enough, with the result that
finalizable objects referred to only by a thread blocked on a black
hole could be finalized too early (see conc057 test).

18 years agoReorganisation of the source tree
Simon Marlow [Fri, 7 Apr 2006 02:05:11 +0000 (02:05 +0000)]
Reorganisation of the source tree
Most of the other users of the fptools build system have migrated to
Cabal, and with the move to darcs we can now flatten the source tree
without losing history, so here goes.

The main change is that the ghc/ subdir is gone, and most of what it
contained is now at the top level.  The build system now makes no
pretense at being multi-project, it is just the GHC build system.

No doubt this will break many things, and there will be a period of
instability while we fix the dependencies.  A straightforward build
should work, but I haven't yet fixed binary/source distributions.
Changes to the Building Guide will follow, too.

18 years agoremove empty dir
Simon Marlow [Sat, 21 Jan 2006 18:38:28 +0000 (18:38 +0000)]
remove empty dir

18 years agorempve some unused files
Simon Marlow [Sat, 21 Jan 2006 18:37:51 +0000 (18:37 +0000)]
rempve some unused files

18 years agoAdd stage2/ghci to ghc-api's import list.
Lemmih [Thu, 6 Apr 2006 20:27:34 +0000 (20:27 +0000)]
Add stage2/ghci to ghc-api's import list.

18 years agoDon't build GHC with breakpoint support by default.
Lemmih [Thu, 6 Apr 2006 18:27:24 +0000 (18:27 +0000)]
Don't build GHC with breakpoint support by default.

18 years agoGHC.Base.breakpoint isn't vaporware anymore.
Lemmih [Thu, 6 Apr 2006 17:57:53 +0000 (17:57 +0000)]
GHC.Base.breakpoint isn't vaporware anymore.

-fignore-breakpoints can be used to ignore breakpoints.

18 years agoAdd SA_RESTART flag to the timer signal handler.
Simon Marlow [Thu, 6 Apr 2006 14:48:36 +0000 (14:48 +0000)]
Add SA_RESTART flag to the timer signal handler.
This seems to be necessary to prevent readline being confused by our
SIGALRM handler.

18 years agoBetter messages from HscTypes.showModMsg.
Lemmih [Thu, 6 Apr 2006 11:22:20 +0000 (11:22 +0000)]
Better messages from HscTypes.showModMsg.

18 years agoTurn the "too many hs_exit()s" fatal error into a warning
Simon Marlow [Wed, 5 Apr 2006 14:53:16 +0000 (14:53 +0000)]
Turn the "too many hs_exit()s" fatal error into a warning

18 years agoadd freeStorage() prototype
Simon Marlow [Wed, 5 Apr 2006 14:51:26 +0000 (14:51 +0000)]
add freeStorage() prototype

18 years agoadd support for x86_64; foreign import is now supported in GHCi on x86_64
Simon Marlow [Wed, 5 Apr 2006 13:33:44 +0000 (13:33 +0000)]
add support for x86_64; foreign import is now supported in GHCi on x86_64

18 years agoCorrect spelling mistake: GhcState1HcOpts -> GhcStage1HcOpts
Duncan Coutts [Thu, 30 Mar 2006 21:23:21 +0000 (21:23 +0000)]
Correct spelling mistake: GhcState1HcOpts -> GhcStage1HcOpts

18 years agooops, undo accidental patch
Simon Marlow [Thu, 30 Mar 2006 13:44:51 +0000 (13:44 +0000)]
oops, undo accidental patch

18 years agofix profiling on Win32
Simon Marlow [Thu, 30 Mar 2006 13:41:58 +0000 (13:41 +0000)]
fix profiling on Win32
The recent patch to free memory in hs_exit() on Win32 unfortunately broke
profiling, because it freed the memory slightly too early.

18 years agofix for GHC >= 6.5 again
Simon Marlow [Wed, 29 Mar 2006 12:02:39 +0000 (12:02 +0000)]
fix for GHC >= 6.5 again

18 years agoin stage1, we should get isPrint and isUpper from Compat.Unicode, not Data.Char
Simon Marlow [Wed, 29 Mar 2006 11:59:13 +0000 (11:59 +0000)]
in stage1, we should get isPrint and isUpper from Compat.Unicode, not Data.Char

18 years agoDarwin/x86: correct stack alignment in ByteCodeFFI
wolfgang.thaller@gmx.net [Wed, 29 Mar 2006 03:53:16 +0000 (03:53 +0000)]
Darwin/x86: correct stack alignment in ByteCodeFFI

18 years agoDeal with non-executable memory on Darwin (only an issue on Darwin/x86 so far)
wolfgang.thaller@gmx.net [Thu, 23 Mar 2006 06:17:45 +0000 (06:17 +0000)]
Deal with non-executable memory on Darwin (only an issue on Darwin/x86 so far)

18 years agoadd forkOnzh_fast symbol
Simon Marlow [Tue, 28 Mar 2006 09:39:23 +0000 (09:39 +0000)]
add forkOnzh_fast symbol

18 years agoAdd a new primitive forkOn#, for forking a thread on a specific Capability
Simon Marlow [Mon, 27 Mar 2006 12:41:51 +0000 (12:41 +0000)]
Add a new primitive forkOn#, for forking a thread on a specific Capability

This gives some control over affinity, while we figure out the best
way to automatically schedule threads to make best use of the
available parallelism.

In addition to the primitive, there is also:

  GHC.Conc.forkOnIO :: Int -> IO () -> IO ThreadId

where 'forkOnIO i m' creates a thread on Capability (i `rem` N), where
N is the number of available Capabilities set by +RTS -N.

Threads forked by forkOnIO do not automatically migrate when there are
free Capabilities, like normal threads do.  Still, if you're using
forkOnIO exclusively, it's a good idea to do +RTS -qm to disable work
pushing anyway (work pushing takes too much time when the run queues
are large, this is something we need to fix).

18 years agoeliminate a warning
Simon Marlow [Mon, 27 Mar 2006 12:23:23 +0000 (12:23 +0000)]
eliminate a warning

18 years agoelimiante a couple of warnings
Simon Marlow [Mon, 27 Mar 2006 11:24:48 +0000 (11:24 +0000)]
elimiante a couple of warnings