1. 15 Oct, 2004 1 commit
  2. 14 Oct, 2004 1 commit
    • simonmar's avatar
      [project @ 2004-10-14 14:58:37 by simonmar] · bb01a96b
      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.
  3. 13 Oct, 2004 1 commit
  4. 12 Oct, 2004 1 commit
  5. 11 Oct, 2004 8 commits
  6. 09 Oct, 2004 1 commit
  7. 08 Oct, 2004 10 commits
  8. 07 Oct, 2004 4 commits
    • simonpj's avatar
      [project @ 2004-10-07 16:08:36 by simonpj] · e794c5cc
      simonpj authored
      Wibbles to hi-boot files and newtypes
    • wolfgang's avatar
      [project @ 2004-10-07 15:54:03 by wolfgang] · b4d045ae
      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.
      New file. Look here for some more comments on how this works.
      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
      Add CmmPicBaseReg (used in NCG),
      and CmmLabelDiffOff (used in NCG and for offsets in info tables)
      support offsets in info tables
      support CmmLabelDiffOff
      Case alternative labels now need C decls (see the codeGen/CgInfoTbls.hs for details), so we need to pprDataExterns for info tables.
      support CmmLabelDiffOff
      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).
      Add a new option, -fPIC.
      Pass the correct options for PIC to gcc, depending on the platform. Only for powerpc for now.
      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.
      Too many changes to enumerate here, PowerPC specific.
      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).
      Mangle absolute addresses in info tables to offsets.
      Correctly pass through GCC-generated PIC for Mac OS X and powerpc linux.
      Adapt to the fact that info tables now contain offsets.
      Mac-specific: change machoInitSymbolsWithoutUnderscore to support PIC.
    • mthomas's avatar
      [project @ 2004-10-07 06:38:20 by mthomas] · a558bffd
      mthomas authored
      Check for shell scripts first - they don't exist on my Windows nightly build.
    • dons's avatar
      [project @ 2004-10-07 03:19:51 by dons] · 82a610f1
      dons authored
      Need suffix.mk, otherwise .hc bootstrapping dies in ghc/compiler, with
      "No rule to make target Foo.o" error.
  9. 06 Oct, 2004 2 commits
  10. 05 Oct, 2004 2 commits
  11. 04 Oct, 2004 7 commits
    • simonpj's avatar
      [project @ 2004-10-04 15:51:00 by simonpj] · f469905a
      simonpj authored
      	Part-fix an awkward interaction
      	between case-of-case and GADTs
      	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's avatar
      [project @ 2004-10-04 09:35:08 by simonpj] · 3b7d2756
      simonpj authored
      Sort decls in cycle for error message
    • simonpj's avatar
      [project @ 2004-10-04 09:28:00 by simonpj] · ae0b2a9e
      simonpj authored
      Better reporting of duplicate top-level defns
    • simonpj's avatar
      [project @ 2004-10-04 09:27:32 by simonpj] · 864388a3
      simonpj authored
      Make combineSrcSpans commutative
    • simonpj's avatar
      [project @ 2004-10-04 09:11:09 by simonpj] · a022fe50
      simonpj authored
      Improve error locations for binding conflicts
    • dons's avatar
      [project @ 2004-10-04 05:54:04 by dons] · 870b2298
      dons authored
      Warning police. Move prototype of genericRaise into RtsExternal.h, so
      the libraries can see it.
    • wolfgang's avatar
      [project @ 2004-10-04 03:37:22 by wolfgang] · 004ecb39
      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.
  12. 03 Oct, 2004 2 commits