This project is mirrored from https://gitlab.haskell.org/ghc/ghc.git.
Pull mirroring failed .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer.
Last successful update .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer.
Last successful update .
- 02 Nov, 1999 1 commit
-
-
simonmar authored
This commit adds in the current state of our SMP support. Notably, this allows the new way 's' to be built, providing support for running multiple Haskell threads simultaneously on top of any pthreads implementation, the idea being to take advantage of commodity SMP boxes. Don't expect to get much of a speedup yet; due to the excessive locking required to synchronise access to mutable heap objects, you'll see a slowdown in most cases, even on a UP machine. The best I've seen is a 1.6-1.7 speedup on an example that did no locking (two optimised nfibs in parallel). - new RTS -N flag specifies how many pthreads to start. - new driver -smp flag, tells the driver to use way 's'. - new compiler -fsmp option (not for user comsumption) tells the compiler not to generate direct jumps to thunk entry code. - largely rewritten scheduler - _ccall_GC is now done by handing back a "token" to the RTS before executing the ccall; it should now be possible to execute blocking ccalls in the current thread while allowing the RTS to continue running Haskell threads as normal. - you can only call thread-safe C libraries from a way 's' build, of course. Pthread support is still incomplete, and weird things (including deadlocks) are likely to happen.
-
- 01 Nov, 1999 1 commit
-
-
sewardj authored
Increase NUM_TEXT to 100000 so okeefe_neural will parse.
-
- 27 Oct, 1999 2 commits
- 26 Oct, 1999 1 commit
-
-
sewardj authored
Add foreign import/export implementations for x86 stdcall convention. Make parser notice calling conventions on f-i and f-x declarations, check they are supported on the platform Hugs is compiled on. Pass them all the way through the code generator to the interpreter. Allow f-i/f-x decls to omit the calling convention, in which case ccall is used. Remove calling convention from all such decls in the Prelude so it will work on any platform.
-
- 20 Oct, 1999 2 commits
-
-
simonmar authored
Micro-optimisation: don't need to test for an empty queue in a BLACKHOLE_BQ, now that we're distinguishing BLACKHOLE and BLACKHOLE_BQ. Shortens the update code by a couple of instructions.
-
andy authored
Adding final diffs between Hugs98 (Jan99) and Hugs98 (Sep99) manually to STG Hugs.
-
- 19 Oct, 1999 1 commit
-
-
sewardj authored
Change CFunDescriptor to match new foreign import implementation.
-
- 15 Oct, 1999 1 commit
-
-
sewardj authored
Added basic support for foreign export dynamic. Many aspects of it are still broken: * Only supports x86-linux. * The range of allowable types is small: Char Int Float Double Addr and Word. * Adjustor thunks are never freed. * Returning Doubles or Floats doesn't work at all. I expect to fix some of these shortly. foreign import also needs redoing, so it can accept any number of arguments of any type. Also: * Fixed setRtsFlags in Evaluator.c to make it endian-independent. * Fixed raisePrim in Evaluator.c so things like division by zero, array index errors, etc, throw an exception instead of terminating StgHugs. raisePrim is renamed makeErrorCall.
-
- 14 Oct, 1999 1 commit
-
-
simonmar authored
oops: unbreak non-ticky compiles
-
- 13 Oct, 1999 1 commit
-
-
simonmar authored
Crude allocation-counting extension to ticky-ticky profiling. Allocations are counted against the closest lexically enclosing function closure, so you need to map the output back to the STG code.
-
- 15 Sep, 1999 1 commit
-
-
simonmar authored
Heap Profiling -------------- This commit adds simple hp2ps-style heap profiling. Just the '-h' option is supported so far. Heap profiles will show the top two cost centres on each cost centre stack. Time/Alloc profiles have been extended to aggregate the costs on a per-cost-centre basis and show the table of highest consuming cost centres before the full table of cost centre stacks. Profiles work best if '-caf-all' is used, especially when using one of the '-auto' flags.
-
- 14 Sep, 1999 1 commit
-
-
simonmar authored
A couple of fixes and cleanups to ticky-ticky profiling: - remove UPD_EXISTING (doesn't make sense) - add UPD_CON_IN_PLACE, now that we have in-place updates - clean up the output a little.
-
- 25 Aug, 1999 2 commits
-
-
simonmar authored
Support for thread{WaitRead,WaitWrite,Delay}. These should behave identically to the 3.02 implementations. We now have the virtual timer on during all program runs, which ticks at 50Hz by default. This is used to implement threadDelay, so you won't get any better granularity than the tick frequency unfortunately. It remains to be seen whether using the virtual timer will have a measurable impact on performance for non-threadDelaying programs. All operations in the I/O subsystem should now be non-blocking with respect to other running Haskell threads. It remains to be seen whether this will have a measurable performance impact on non-concurrent programs (probably not).
-
simonmar authored
Eq and Ord instances for ThreadId.
-
- 24 Aug, 1999 2 commits
- 03 Aug, 1999 1 commit
-
-
simonmar authored
minor cleanup: use INFO_PTR_TO_STRUCT in get_itbl() and hence pull it out of the #ifdef TABLES_NEXT_TO_CODE.
-
- 29 Jul, 1999 1 commit
-
-
simonmar authored
Shift operations where the shift count is greater than the width of the type being shifted are now defined as returning zero (or -1 in the case of a negative integer being shifted right with iShiftRA).
-
- 16 Jul, 1999 1 commit
-
-
panne authored
More 64bit fun: Fixed an ill-placed #ifdef and added a cast to a numeric literal (for explanation see yesterday's fix).
-
- 15 Jul, 1999 1 commit
-
-
panne authored
We have to be very careful with numeric literals in the C part, in this case 0xff (of type int = 4 bytes on Alpha) was shifted left 56 times => always zero :-{ Using an L or UL suffix is not always practical, because the needed size depends on conditional typedefs somewhere else. Solution: Cast! :-P ghc/includes contains some more suspicious literals, but I did not have a look at them yet.
-
- 14 Jul, 1999 1 commit
-
-
simonmar authored
add NonTermination_closure.
-
- 06 Jul, 1999 4 commits
-
-
sewardj authored
Make vectored returns to Hugs work, and make IS_CODE_PTR etc work for dynamically loaded objects.
-
sewardj authored
Header file for an alternative bignum implementation, which is in interpreter/sainteger.c. Currently used by STGHugs. Temporary -- until we resolve GMP licensing issues.
-
sof authored
Redo previous commit to cut down on the use of COMPILING_RTS where possible - SchedAPI.h is now an RTS internal header file which RtsAPI.h no longer includes.
-
sof authored
Don't include RtsAPI.h when compiling RTS.
-
- 05 Jul, 1999 1 commit
-
-
sof authored
Stg.h contains all the defs and protos that are visible when compiling .hc code (==> .hs code). Augment this set with the externally visible RTS API.
-
- 03 Jul, 1999 1 commit
-
-
sof authored
New RTS entry point, shutdownHaskellAndExit(), which does what the name implies - used when you want to exit from within Haskell code (e.g., System.exitWith.)
-
- 25 Jun, 1999 3 commits
-
-
panne authored
Make -optc-DDEBUG work again
-
simonmar authored
Comment about TABLES_NEXT_TO_CODE.
-
simonmar authored
New define: TABLES_NEXT_TO_CODE says whether info tables are assumed to reside just before the code for a function. We used to use USE_MINIINTERPRETER for this function, but it makes sense in certain cases to separate the use of tail-calls from tables-next-to-code. StgMacros: add a couple of missing macros to support update in place.
-
- 24 Jun, 1999 1 commit
-
-
simonmar authored
Reinstate per-function entry counts in ticky-ticky profiles.
-
- 03 Jun, 1999 1 commit
-
-
sof authored
suppress needless warning
-
- 21 May, 1999 1 commit
-
-
sof authored
Made rts_evalIO() stricter, i.e., rts_evalIO( action ); will now essentially cause `action' to be applied to the following (imaginary) defn of `evalIO': evalIO :: IO a -> IO a evalIO action = action >>= \ x -> x `seq` return x instead of just evalIO :: IO a -> IO a evalIO action = action >>= \ x -> return x The old, lazier behaviour is now available via rts_evalLazyIO().
-
- 13 May, 1999 1 commit
-
-
simonm authored
Support for "unregisterised" builds. An unregisterised build doesn't use the assembly mangler, doesn't do tail jumping (uses the mini-interpreter), and doesn't use global register variables. Plenty of cleanups and bugfixes in the process. Add way 'u' to GhcLibWays to get unregisterised libs & RTS. [ note: not *quite* working fully yet... there's still a bug or two lurking ]
-
- 11 May, 1999 2 commits
-
-
keithw authored
(this is number 9 of 9 commits to be applied together) Usage verification changes / ticky-ticky changes: We want to verify that SingleEntry thunks are indeed entered at most once. In order to do this, -ticky / -DTICKY_TICKY turns on eager blackholing. We blackhole with new blackholes: SE_BLACKHOLE and SE_CAF_BLACKHOLE. We will enter one of these if we attempt to enter a SingleEntry thunk twice. Note that CAFs are dealt with in by codeGen, and ordinary thunks by the RTS. We also want to see how many times we enter each Updatable thunk. To this end, we have modified -ticky. When -ticky is on, we update with a permanent indirection, and arrange that when we enter a permanent indirection we count the entry and then convert the indirection to a normal indirection. This gives us a means of counting the number of thunks entered again after the first entry. Obviously this screws up profiling, and so you can't build a ticky and profiling compiler any more. Also a few other changes that didn't make it into the previous 8 commits, but form a part of this set.
-
keithw authored
(this is number 8 of 9 commits to be applied together) The CPP flag LAZY_BLACKHOLING has been moved up from options.h into Stg.h, so GHC can see it as well as the interpreter, and EAGER_BLACKHOLING has been added. The default is still LAZY_BLACKHOLING && !EAGER_BLACKHOLING.
-
- 10 May, 1999 3 commits