1. 04 Oct, 2004 1 commit
  2. 19 Sep, 2004 1 commit
    • panne's avatar
      [project @ 2004-09-19 09:15:03 by panne] · f271c1f8
      panne authored
      Use some sed magic to avoid PACKAGE_FOO clashes introduced by the autoconf
      cleanup yesterday. Another option would have been using a plain "AC_INIT" in
      fptools/configure.ac (and probably the same for fptools/libraries/configure.ac),
      so only "leaf configure.ac"s have package info. Not quite sure what would be the
      nicest way to handle this yet...
      f271c1f8
  3. 09 Sep, 2004 1 commit
  4. 07 Sep, 2004 2 commits
  5. 06 Sep, 2004 2 commits
  6. 02 Sep, 2004 2 commits
  7. 22 Aug, 2004 1 commit
  8. 21 Aug, 2004 1 commit
    • panne's avatar
      [project @ 2004-08-21 12:47:17 by panne] · c320276c
      panne authored
      Moved createAdjustor and freeHaskellFunctionPtr to a header visible in
      *.hc code.  The whole header layout is a little bit baroque, IMHO...
      c320276c
  9. 16 Aug, 2004 2 commits
    • simonpj's avatar
      [project @ 2004-08-16 16:14:59 by simonpj] · 5938a5f3
      simonpj authored
      stg_interp_constr_entry and friends don't have info tables, so declare
      them using RTS_FUN() rather than RTS_ENTRY().
      5938a5f3
    • simonmar's avatar
      [project @ 2004-08-16 11:17:20 by simonmar] · d6174f50
      simonmar authored
      Add a config.h to ease the transition.  Now if you include config.h
      you get a warning instead of a failure:
      
      In file included from System/Posix/Internals.hs:24:
      /playpen/ghc/nightly/HEAD-cam-02-unx/i386-unknown-linux/ghc/includes/config.h:4: warning: #warning config.h is deprecated; please use ghcconfig.h instead
      d6174f50
  10. 13 Aug, 2004 4 commits
  11. 12 Apr, 2004 1 commit
    • panne's avatar
      [project @ 2004-04-12 16:26:40 by panne] · cc77a7ba
      panne authored
      Fixed a long-standing buglet in the signatures of hs_free_stable_ptr
      and hs_free_fun_ptr, both had a superfluous "*". Now everything
      conforms to the FFI addendum.
      cc77a7ba
  12. 23 Mar, 2004 1 commit
  13. 08 Mar, 2004 2 commits
  14. 01 Mar, 2004 1 commit
    • simonmar's avatar
      [project @ 2004-03-01 14:18:35 by simonmar] · a20ec0ce
      simonmar authored
      Threaded RTS improvements:
      
        - Make the main_threads list doubly linked.  Have threads
          remove themselves from this list when they complete, rather
          than searching for completed main threads each time around
          the scheduler loop.  This removes an O(n) loop from the
          scheduler, but adds some new constraints (basically completed
          threads must remain on the run queue until dealt with, including
          threads which have been killed by an async exception).
      
        - Add a pointer from the TSO to the StgMainThread struct, for
          main threads.  This avoids a number of places where we had
          to traverse the list of main threads to find the right one,
          including one place in the scheduler loop.  Adding a field to
          a TSO is cheap.
      
        - taskStart: we should be resetting the startingWorkerThread flag
          in here.  Not sure why we aren't; maybe this got lost at some point.
      
        - Use the BlockedOnCCall flags in the non-threaded RTS too.  Q: what
          should happen if a thread does a foreign call which re-enters the
          RTS, and then sends an async exception to the original thread?
          Answer: it should deadlock, which it does in the threaded RTS, and
          this commit makes it do so in the non-threaded RTS too (see
          testsuite/tests/concurrent/should_run/conc040.hs).
      a20ec0ce
  15. 15 Feb, 2004 1 commit
  16. 28 Dec, 2003 1 commit
  17. 10 Dec, 2003 1 commit
    • wolfgang's avatar
      [project @ 2003-12-10 11:35:24 by wolfgang] · 60ea58ab
      wolfgang authored
      PowerPC Linux support for registerised compilation and native code
      generation. (object splitting and GHCi are still unsupported).
      
      Code for other platforms is not affected, so MERGE TO STABLE.
      60ea58ab
  18. 26 Nov, 2003 1 commit
  19. 14 Nov, 2003 2 commits
  20. 12 Nov, 2003 1 commit
    • sof's avatar
      [project @ 2003-11-12 17:27:00 by sof] · a814590c
      sof authored
      Tidy up a couple of unportable coding issues:
      
      - conditionally use empty structs.
      - use GNU attributes only if supported.
      - 'long long' usage
      - use of 'inline' in declarations and definitions.
      
      Upshot of these changes is that MSVC is now capable of compiling
      the non-.hc portions of the RTS.
      a814590c
  21. 20 Oct, 2003 2 commits
    • panne's avatar
      [project @ 2003-10-20 18:50:45 by panne] · 1820f42c
      panne authored
      Fixed previous commit. Negation is the root of all evil... :-)
      1820f42c
    • sof's avatar
      [project @ 2003-10-20 17:15:27 by sof] · d0c6e4ec
      sof authored
      Console event handling support (i.e., Haskell-side support for SIGINT under win32).
      
      win32/ConsoleHandler.h implements the Signals.h API. No library support
      for installing user event handlers included in this commit.
      d0c6e4ec
  22. 12 Oct, 2003 1 commit
  23. 01 Oct, 2003 1 commit
    • wolfgang's avatar
      [project @ 2003-10-01 10:57:39 by wolfgang] · d3581a6a
      wolfgang authored
      New implementation & changed type signature of forkProcess
      
      forkProcess now has the following type:
      forkProcess :: IO () -> IO ProcessID
      
      forkProcessAll has been removed as it is unimplementable in the threaded RTS.
      
      forkProcess using the old type (IO (Maybe ProcessID)) was impossible to
      implement correctly in the non-threaded RTS and very hard to implement
      in the threaded RTS.
      The new type signature allows a clean and simple implementation.
      d3581a6a
  24. 24 Sep, 2003 1 commit
    • simonmar's avatar
      [project @ 2003-09-24 11:06:51 by simonmar] · 8f57c3c1
      simonmar authored
      Move forkOS_createThread into the RTS so its implementation can be
      dependent on RTS_SUPPORTS_THREADS, which means we can provide a stub
      implementation in the !RTS_SUPPORTS_THREADS case, and hence not depend
      on pthread_create, which requires -lpthread.  The upshot is that GHCi
      now works again when !RTS_SUPPORTS_THREADS.
      8f57c3c1
  25. 23 Sep, 2003 1 commit
    • simonmar's avatar
      [project @ 2003-09-23 15:38:35 by simonmar] · 76ebf3dc
      simonmar authored
      Add a BF_PINNED block flag, and attach it to blocks containing pinned
      objects (in addition to the usual BF_LARGE).
      
      In heapCensus, we now ignore blocks containing pinned objects, because
      they might contain gaps, and in any case it isn't clear that we want
      to include the whole block in a heap census, because much of it might
      well be dead.  Ignoring it isn't right either, though, so this patch
      just fixes the crash and leaves a ToDo.
      76ebf3dc
  26. 21 Sep, 2003 2 commits
    • wolfgang's avatar
      [project @ 2003-09-21 22:20:51 by wolfgang] · 85aa72b9
      wolfgang authored
      Bound Threads
      =============
      
      Introduce a way to use foreign libraries that rely on thread local state
      from multiple threads (mainly affects the threaded RTS).
      
      See the file threads.tex in CVS at haskell-report/ffi/threads.tex
      (not entirely finished yet) for a definition of this extension. A less formal
      description is also found in the documentation of Control.Concurrent.
      
      The changes mostly affect the THREADED_RTS (./configure --enable-threaded-rts),
      except for saving & restoring errno on a per-TSO basis, which is also necessary
      for the non-threaded RTS (a bugfix).
      
      Detailed list of changes
      ------------------------
      
      - errno is saved in the TSO object and restored when necessary:
      ghc/includes/TSO.h, ghc/rts/Interpreter.c, ghc/rts/Schedule.c
      
      - rts_mainLazyIO is no longer needed, main is no special case anymore
      ghc/includes/RtsAPI.h, ghc/rts/RtsAPI.c, ghc/rts/Main.c, ghc/rts/Weak.c
      
      - passCapability: a new function that releases the capability and "passes"
        it to a specific OS thread:
      ghc/rts/Capability.h ghc/rts/Capability.c
      
      - waitThread(), scheduleWaitThread() and schedule() get an optional
        Capability *initialCapability passed as an argument:
      ghc/includes/SchedAPI.h, ghc/rts/Schedule.c, ghc/rts/RtsAPI.c
      
      - Bound Thread scheduling (that's what this is all about):
      ghc/rts/Schedule.h, ghc/rts/Schedule.c
      
      - new Primop isCurrentThreadBound#:
      ghc/compiler/prelude/primops.txt.pp, ghc/includes/PrimOps.h, ghc/rts/PrimOps.hc,
      ghc/rts/Schedule.h, ghc/rts/Schedule.c
      
      - a simple function, rtsSupportsBoundThreads, that returns true if THREADED_RTS
        is defined:
      ghc/rts/Schedule.h, ghc/rts/Schedule.c
      
      - a new implementation of forkProcess (the old implementation stays in place
        for the non-threaded case). Partially broken; works for the standard
        fork-and-exec case, but not for much else. A proper forkProcess is
        really next to impossible to implement:
      ghc/rts/Schedule.c
      
      - Library support for bound threads:
          Control.Concurrent.
            rtsSupportsBoundThreads, isCurrentThreadBound, forkOS,
            runInBoundThread, runInUnboundThread
      libraries/base/Control/Concurrent.hs, libraries/base/Makefile,
      libraries/base/include/HsBase.h, libraries/base/cbits/forkOS.c (new file)
      85aa72b9
    • igloo's avatar
      [project @ 2003-09-21 13:22:01 by igloo] · 6a9485d7
      igloo authored
      Alpha fixes.
      6a9485d7
  27. 04 Sep, 2003 1 commit
  28. 29 Aug, 2003 1 commit
    • simonmar's avatar
      [project @ 2003-08-29 16:00:25 by simonmar] · 7dc97354
      simonmar authored
      Initial x86-64 (aka amd64) support.
      
      Unregisterised it works perfectly.  Registerised, I think it's almost
      there, except that I seem to be running into the known codegen bug in
      GCC with register variables (bug #7871 in the gcc bugzilla), which
      means registerised support is basically hosed until the GCC folks
      can get their act together.
      
      We get 8 more registers on amd64, but only 2 more callee-saves
      registers.  The calling convention seems to pass args in registers by
      default, using the previously-callee-saves %rsi and %rdi as two of the
      new arg registers.
      
      I think GHCi should work, since we already have 64-bit ELF support
      thanks to Mat Chapman's work on the IA64 port.  I haven't tried GHCi,
      though.
      
      The native code generator should be a breeze, because it's so similar
      to plain x86.
      7dc97354
  29. 22 Aug, 2003 1 commit