- 07 Apr, 2005 2 commits
-
-
wolfgang authored
Mac OS X: Work around a subtle bug/strangeness/"feature" in Apple's toolchain that affects machoInitSymbolsWithoutUnderscore(). (The symbolsWithoutUnderscore symbol must be .globl, otherwise incorrect code will be generated to refer to it) This has already been MERGED TO STABLE as part of the previous commit.
-
wolfgang authored
Set the keepCAFs flag (required for GHCi with dynamic libraries) from an __attribute__((constructor)) function linked to stage 2 ghc if GhcBuildDylibs is set in mk/build.mk. The previous hack (setting it from addDLL) didn't work, because a few CAFs from libHSbase_dyn were evaluated before the Linker was first invoked by GHCi. MERGE TO STABLE
-
- 06 Apr, 2005 7 commits
-
-
simonmar authored
way fix
-
simonmar authored
Revamp the Task API: now we use the same implementation for threaded and SMP. We also keep per-task timing stats in the threaded RTS now, which makes the output of +RTS -sstderr more useful.
-
simonmar authored
complain if $(way) is not a member of $(WAYS). This will help stop me shooting myself in the foot by building things for nonexistent ways.
-
simonmar authored
fix build on non-x86_64
-
simonmar authored
x86_64: support for the basic relocation records. Unfortunately this isn't enough, we need to create a PLT for far jumps too.
-
simonmar authored
Update building-guide link
-
sof authored
RTS_MINGW_ONLY_SYMBOLS: added _imp___osver global (needed by HsBase.h:__hscore_get_osver())
-
- 05 Apr, 2005 19 commits
-
-
simonmar authored
wibble
-
simonmar authored
unreg wibble
-
simonmar authored
wibble to fix the unreg way
-
simonmar authored
x86_64: fix brainos in implementation of fl. pt. negation
-
simonmar authored
Instead of gathering a set of 'candidates' in the occurrence analyser, use the isLocalId predicate to identify things for which occurrence information is required. By defn isLocalId is true of Ids (whether top level or not) defined in this module, and that is exactly what we want. The 'candidates set' predated the LocalId invariant, I think.
-
simonmar authored
Implement the out-of-line floating-point MachOps
-
simonmar authored
blackhole updates
-
simonmar authored
wibble
-
simonmar authored
Catch up with InfoTable changes
-
simonmar authored
Some multi-processor hackery, including - Don't hang blocked threads off BLACKHOLEs any more, instead keep them all on a separate queue which is checked periodically for threads to wake up. This is good because (a) we don't have to worry about locking the closure in SMP mode when we want to block on it, and (b) it means the standard update code doesn't need to wake up any threads or check for a BLACKHOLE_BQ, simplifying the update code. The downside is that if there are lots of threads blocked on BLACKHOLEs, we might have to do a lot of repeated list traversal. We don't expect this to be common, though. conc023 goes slower with this change, but we expect most programs to benefit from the shorter update code. - Fixing up the Capability code to handle multiple capabilities (SMP mode), and related changes to get the SMP mode at least building.
-
simonmar authored
x86_64: generate 32-bit relative offset plus 32-bit padding instead of a 64-bit relative offset. This is probably not the best place to do it, but it'll do for now. Also reinstate some changes that accidentally got spammed yesterday.
-
simonmar authored
GHC package: set $(GhcLibHcOpts) to empty; we want $(GhcStage2HcOpts) to take precedence here.
-
simonmar authored
Main x86_64 hacking: we have a problem on this arch where binutils can't generate 64-bit relative relocations (R_X86_64_PC64), which many of our info-table fields are. So far we've been hacking around it by putting everything in the text section, but I've decided to adopt another approach: we'll use explicit 32-bit offset fields on this platform instead. This is safe in the default "small" memory model where all symbols are guaranteed to be in the lower 2Gb of the address space. NCG changes coming; mangler changes are probably required too.
-
simonmar authored
print format type fixup
-
simonmar authored
printf format type fixup
-
simonmar authored
type fixups
-
simonmar authored
type fixup
-
krasimir authored
In many places there was a common pattern when (verbose >= n) $ putMsg "..." It is now replaced with debutTraceMsg dflags n "..." In few places hPutStrLn stderr or putStrLn was used instead of putMsg in the above pattern. They are replaced too. Now putMsg is used only in places where the verbosity flag was not checked.
-
simonpj authored
Final wibbles, I hope
-
- 04 Apr, 2005 12 commits
-
-
simonpj authored
One more stage2 wibble
-
simonpj authored
More stage2 wibbles
-
simonpj authored
More wibbles to HsSyn changes
-
simonmar authored
Use the imul instruction natively, rather than the braindead wrapper around it. The register allocator has been able to handle the fixed register usage of imul for a while now. Also, the wrapper was broken on x86_64.
-
simonmar authored
wibble
-
simonpj authored
Further HsSyn wibbles
-
simonpj authored
Wibbles arising from HsSyn changes
-
simonmar authored
Big cleanup of the scheduler. The main idea here was to extract as much stuff as possible from the scheduler loop into seprate functions, so as to better expose the control structure of the scheduler. Now, the scheduler loop is down to some 300+ lines; there's some more code that could be extracted, but I think it looks pretty good now. This work is partly due to an initial cleanup by the GRAN/PAR folks, heavily re-worked by me.
-
simonpj authored
Update hs-boot file
-
simonpj authored
Wibble: invert sense of test
-
simonpj authored
Documentation for rebindable syntax
-
simonpj authored
This commit combines three overlapping things: 1. Make rebindable syntax work for do-notation. The idea here is that, in particular, (>>=) can have a type that has class constraints on its argument types, e.g. (>>=) :: (Foo m, Baz a) => m a -> (a -> m b) -> m b The consequence is that a BindStmt and ExprStmt must have individual evidence attached -- previously it was one batch of evidence for the entire Do Sadly, we can't do this for MDo, because we use bind at a polymorphic type (to tie the knot), so we still use one blob of evidence (now in the HsStmtContext) for MDo. For arrow syntax, the evidence is in the HsCmd. For list comprehensions, it's all built-in anyway. So the evidence on a BindStmt is only used for ordinary do-notation. 2. Tidy up HsSyn. In particular: - Eliminate a few "Out" forms, which we can manage without (e.g. - It ought to be the case that the type checker only decorates the syntax tree, but doesn't change one construct into another. That wasn't true for NPat, LitPat, NPlusKPat, so I've fixed that. - Eliminate ResultStmts from Stmt. They always had to be the last Stmt, which led to awkward pattern matching in some places; and the benefits didn't seem to outweigh the costs. Now each construct that uses [Stmt] has a result expression too (e.g. GRHS). 3. Make 'deriving( Ix )' generate a binding for unsafeIndex, rather than for index. This is loads more efficient. (This item only affects TcGenDeriv, but some of point (2) also affects TcGenDeriv, so it has to be in one commit.)
-