- 15 Oct, 2004 1 commit
-
-
simonmar authored
Declare rtsSupportsBoundThreads() here. This change should have gone through with the threaded RTS I/O changes yesterday.
-
- 14 Oct, 2004 1 commit
-
-
simonmar authored
Threaded RTS improvements: - Unix only: implement waitRead#, waitWrite# and delay# in Haskell, by having a single Haskell thread (the IO manager) performing a blocking select() operation. Threads communicate with the IO manager via channels. This is faster than doing the select() in the RTS, because we only restart the select() when a new request arrives, rather than each time around the scheduler. On Windows we just make blocking IO calls, we don't have a fancy IO manager (yet). - Simplify the scheduler for the threaded RTS, now that we don't have to wait for IO in the scheduler loop. - Remove detectBlackHoles(), which isn't used now (not sure how long this has been unused for... perhaps it was needed back when main threads used to be GC roots, so we had to check for blackholes manually rather than relying on the GC.) Signals aren't quite right in the threaded RTS. In fact, they're slightly worse than before, because the thread receiving signals might be blocked in a C call - previously there always be another thread stuck in awaitEvent() that would notice the signal, but that's not true now. I can't see an easy fix yet.
-
- 13 Oct, 2004 1 commit
-
-
simonmar authored
Undo part of previous commit, a little testing code sneaked in and broke all the GHCi tests.
-
- 12 Oct, 2004 1 commit
-
-
sof authored
Had enough of 'make boot' completely rebuilding gmp/ each time around.
-
- 11 Oct, 2004 8 commits
-
-
simonpj authored
--------------------------------- Add lists to valid derivable methods --------------------------------- (It'd be nice to merge this into the stable branch. It is an increase in functionality, but it's quite separate from everything else.) Lists are useful in derivable type classes. E.g. methods like class Shrinkable a where op :: a -> [a] This commit adds them, to join functions and tuples.
-
simonpj authored
Remove dead code tcSplitMethodTy
-
simonpj authored
--------------------------------- Fix bug in derivable type classes --------------------------------- MERGE TO STABLE (if poss) The test for not-supported method types for derivable type classes was broken. This fixes it.
-
simonmar authored
Fixes to readline detection and use. VS: ----------------------------------------------------------------------
-
simonmar authored
Detect whether $(GHC) supports the readline package.
-
simonpj authored
Improve error message
-
simonpj authored
Fix typo; fixes simpl007
-
simonmar authored
genericRaise() hack needed on FreeBSD too.
-
- 09 Oct, 2004 1 commit
-
-
panne authored
Fixed some links
-
- 08 Oct, 2004 10 commits
-
-
panne authored
Fixed typo
-
simonmar authored
Comments only
-
simonpj authored
------------------------------------------------------ Fix an interaction between zonking of Insts and GADTs ------------------------------------------------------ Insts float outwards, perhaps out of the scope of a type-refining GADT case. So we have to make sure they are fully zonked wrt the type refinement. tcSimplifyCheck does this, but there were two omissions a) the tcInstStupidTheta in TcPat.tcConPat didn't get zonked b) a Dict and Lit Inst contained an Id that wasn't zonked, to save work To fix (b), Insts have a little less cached info; the Name is held instead of the Id, so that the Id doesn't need to be zonked. One test in typecheck/should_compile/tc182
-
simonmar authored
FreeBSD needs -optl-pthread for the threaded way
-
simonpj authored
HsNoBang should simply be omitted; fixes a TH_spliceDecl2 test
-
simonpj authored
Fix missing case for algTyConRhs; fixes test ghci011
-
simonpj authored
Complain about GADTs if not -fglasgow-exts
-
ross authored
Make the sed command turning '#define PACKAGE_FOO "blah"' into '/* #undef PACKAGE_FOO */' more portable, though a tad less precise. The use of \| deep inside the pattern is a GNU extension (from sed 2.05).
-
dons authored
For platforms with no PIC method defined, use LabelAccessStyle of AccessDirectly, in howToAccessLabel. This seems to keep the ncg working on OpenBSD. Is this the correct default, Wolfgang?
-
dons authored
Add missing final #else case for howToAccessLabel.
-
- 07 Oct, 2004 4 commits
-
-
simonpj authored
Wibbles to hi-boot files and newtypes
-
wolfgang authored
Position Independent Code and Dynamic Linking Support, Part 1 This commit allows generation of position independent code (PIC) that fully supports dynamic linking on Mac OS X and PowerPC Linux. Other platforms are not yet supported, and there is no support for actually linking or using dynamic libraries - so if you use the -fPIC or -dynamic code generation flags, you have to type your (platform-specific) linker command lines yourself. nativeGen/PositionIndependentCode.hs: New file. Look here for some more comments on how this works. cmm/CLabel.hs: Add support for DynamicLinkerLabels and PIC base labels - for use inside the NCG. needsCDecl: Case alternative labels now need C decls, see the codeGen/CgInfoTbls.hs below for details cmm/Cmm.hs: Add CmmPicBaseReg (used in NCG), and CmmLabelDiffOff (used in NCG and for offsets in info tables) cmm/CmmParse.y: support offsets in info tables cmm/PprC.hs: support CmmLabelDiffOff Case alternative labels now need C decls (see the codeGen/CgInfoTbls.hs for details), so we need to pprDataExterns for info tables. cmm/PprCmm.hs: support CmmLabelDiffOff codeGen/CgInfoTbls.hs: no longer store absolute addresses in info tables, instead, we store offsets. Also, for vectored return points, emit the alternatives _after_ the vector table. This is to work around a limitation in Apple's as, which refuses to handle label differences where one label is at the end of a section. Emitting alternatives after vector info tables makes sure this never happens in GHC generated code. Case alternatives now require prototypes in hc code, though (see changes in PprC.hs, CLabel.hs). main/CmdLineOpts.lhs: Add a new option, -fPIC. main/DriverFlags.hs: Pass the correct options for PIC to gcc, depending on the platform. Only for powerpc for now. nativeGen/AsmCodeGen.hs: Many changes... Mac OS X-specific management of import stubs is no longer, it's now part of a general mechanism to handle such things for all platforms that need it (Darwin [both ppc and x86], Linux on ppc, and some platforms we don't support). Move cmmToCmm into its own monad which can accumulate a list of imported symbols. Make it call cmmMakeDynamicReference at the right places. nativeGen/MachCodeGen.hs: nativeGen/MachInstrs.hs: nativeGen/MachRegs.lhs: nativeGen/PprMach.hs: nativeGen/RegAllocInfo.hs: Too many changes to enumerate here, PowerPC specific. nativeGen/NCGMonad.hs: NatM still tracks imported symbols, as more labels can be created during code generation (float literals, jump tables; on some platforms all data access has to go through the dynamic linking mechanism). driver/mangler/ghc-asm.lprl: Mangle absolute addresses in info tables to offsets. Correctly pass through GCC-generated PIC for Mac OS X and powerpc linux. includes/Cmm.h: includes/InfoTables.h: includes/Storage.h: includes/mkDerivedConstants.c: rts/GC.c: rts/GCCompact.c: rts/HeapStackCheck.cmm: rts/Printer.c: rts/RetainerProfile.c: rts/Sanity.c: Adapt to the fact that info tables now contain offsets. rts/Linker.c: Mac-specific: change machoInitSymbolsWithoutUnderscore to support PIC.
-
mthomas authored
Check for shell scripts first - they don't exist on my Windows nightly build.
-
dons authored
Need suffix.mk, otherwise .hc bootstrapping dies in ghc/compiler, with "No rule to make target Foo.o" error.
-
- 06 Oct, 2004 2 commits
- 05 Oct, 2004 2 commits
- 04 Oct, 2004 7 commits
-
-
simonpj authored
------------------------------------ Part-fix an awkward interaction between case-of-case and GADTs ------------------------------------ Consider data T a where MkT :: a -> b -> T a f = /\a. \(w::a). case (case ...) of MkT a' b (p::a') (q::b) -> [p,w] The danger is that we'll make a join point j a' p = [p,w] and that's ill-typed, because (p::a') but (w::a). Solution so far: don't abstract over a', because the type refinement maps [a' -> a] . Ultimately that won't work when real refinement goes on. Then we must abstract over any refined free variables. Hmm. Maybe we could just abstract over *all* free variables, thereby lambda-lifting the join point? We should try this.
-
simonpj authored
Sort decls in cycle for error message
-
simonpj authored
Better reporting of duplicate top-level defns
-
simonpj authored
Make combineSrcSpans commutative
-
simonpj authored
Improve error locations for binding conflicts
-
dons authored
Warning police. Move prototype of genericRaise into RtsExternal.h, so the libraries can see it.
-
wolfgang authored
Mac OS X: Make the Linker deal properly with object files that lack a symbol table or a dynamic symbol table. Objects that don't import any symbols don't get a dynamic symbol table, which caused GHCi to crash. MERGE TO STABLE
-
- 03 Oct, 2004 2 commits