1. 29 Nov, 2016 1 commit
    • Ben Gamari's avatar
      hschooks.c: Ensure correct header file is included · 795f8bd4
      Ben Gamari authored
      Consider the case of building a stage1 compiler. `hschooks.c` will be
      built by stage0 `ghc` and linked against the `stage0` RTS. Despite this
      it was #including the stage1 `Rts.h`. There is, of course, no guarantee
      that this is ABI-compatible with the stage0 RTS and when they diverge
      Bad Things happen (e.g. bells ringing at inappropriate times in D2699).
      Test Plan: Validate
      Reviewers: simonmar, austin
      Subscribers: thomie
      Differential Revision: https://phabricator.haskell.org/D2763
  2. 22 Nov, 2016 1 commit
  3. 21 Jul, 2015 1 commit
  4. 07 Apr, 2015 1 commit
  5. 07 Oct, 2014 1 commit
  6. 20 Feb, 2014 1 commit
  7. 07 Sep, 2012 1 commit
    • Simon Marlow's avatar
      Deprecate lnat, and use StgWord instead · 41737f12
      Simon Marlow authored
      lnat was originally "long unsigned int" but we were using it when we
      wanted a 64-bit type on a 64-bit machine.  This broke on Windows x64,
      where long == int == 32 bits.  Using types of unspecified size is bad,
      but what we really wanted was a type with N bits on an N-bit machine.
      StgWord is exactly that.
      lnat was mentioned in some APIs that clients might be using
      (e.g. StackOverflowHook()), so we leave it defined but with a comment
      to say that it's deprecated.
  8. 21 Aug, 2012 1 commit
  9. 30 Apr, 2012 1 commit
    • Ian Lynagh's avatar
      Fix the stage1 ghc hschooks.c · 8a25d8af
      Ian Lynagh authored
      The stage0 compiler might have a different idea as to what type lnat
      corresponds to, so cast the value to the type we want.
  10. 26 Apr, 2012 2 commits
  11. 25 Nov, 2011 1 commit
    • Simon Marlow's avatar
      Time handling overhaul · 6b109851
      Simon Marlow authored
      Terminology cleanup: the type "Ticks" has been renamed "Time", which
      is an StgWord64 in units of TIME_RESOLUTION (currently nanoseconds).
      The terminology "tick" is now used consistently to mean the interval
      between timer signals.
      The ticker now always ticks in realtime (actually CLOCK_MONOTONIC if
      we have it).  Before it used CPU time in the non-threaded RTS and
      realtime in the threaded RTS, but I've discovered that the CPU timer
      has terrible resolution (at least on Linux) and isn't much use for
      profiling.  So now we always use realtime.  This should also fix
      The default tick interval is now 10ms, except when profiling where we
      drop it to 1ms.  This gives more accurate profiles without affecting
      runtime too much (<1%).
      Lots of cleanups - the resolution of Time is now in one place
      only (Rts.h) rather than having calculations that depend on the
      resolution scattered all over the RTS.  I hope I found them all.
  12. 12 Apr, 2011 1 commit
    • Simon Marlow's avatar
      Cleanup sweep and fix a bug in RTS flag processing. · 5463b55b
      Simon Marlow authored
      This code has accumulated a great deal of cruft over the years, this
      pass cleans up a lot of the surrounding cruft but leaves the actual
      argument processing alone - so there's still more that could be done.
      Bug fixed:
        - ghc_rts_opts should not be subject to the --rtsopts setting.  If
          the programmer explicitly declares options with ghc_rts_opts, they
          shouldn't also have to accept command-line RTS options to make them
  13. 15 Dec, 2010 1 commit
  14. 16 Jul, 2010 1 commit
  15. 11 Sep, 2009 2 commits
  16. 19 Dec, 2008 1 commit
  17. 19 May, 2008 1 commit
  18. 06 Apr, 2007 1 commit
  19. 24 May, 2006 1 commit
  20. 07 Apr, 2006 1 commit
    • Simon Marlow's avatar
      Reorganisation of the source tree · 0065d5ab
      Simon Marlow authored
      Most of the other users of the fptools build system have migrated to
      Cabal, and with the move to darcs we can now flatten the source tree
      without losing history, so here goes.
      The main change is that the ghc/ subdir is gone, and most of what it
      contained is now at the top level.  The build system now makes no
      pretense at being multi-project, it is just the GHC build system.
      No doubt this will break many things, and there will be a period of
      instability while we fix the dependencies.  A straightforward build
      should work, but I haven't yet fixed binary/source distributions.
      Changes to the Building Guide will follow, too.
  21. 23 Jan, 2006 1 commit
  22. 27 Apr, 2005 1 commit
  23. 23 Feb, 2005 1 commit
  24. 16 Feb, 2005 1 commit
    • simonmar's avatar
      [project @ 2005-02-16 10:50:23 by simonmar] · 4553e941
      simonmar authored
      Recommend using -M rather than -H to increase the heap size.
      On Windows, there's an arbitrary limit of 256Mb due to the way memory
      is allocated, which is the primary cause of running out of heap.  On
      Unix, the heap size is unlimited by default.
  25. 15 Feb, 2004 1 commit
  26. 01 Oct, 2003 1 commit
    • sof's avatar
      [project @ 2003-10-01 17:01:28 by sof] · 61b596d6
      sof authored
        bring back -Rghc-timing output when compiled with >= 4.11
        (was >= 5.05, which looks unnecessarily restrictive.)
  27. 25 Mar, 2003 1 commit
  28. 12 Dec, 2002 1 commit
  29. 11 Dec, 2002 1 commit
    • simonmar's avatar
      [project @ 2002-12-11 15:36:20 by simonmar] · 0bffc410
      simonmar authored
      Merge the eval-apply-branch on to the HEAD
      This is a change to GHC's evaluation model in order to ultimately make
      GHC more portable and to reduce complexity in some areas.
      At some point we'll update the commentary to describe the new state of
      the RTS.  Pending that, the highlights of this change are:
        - No more Su.  The Su register is gone, update frames are one
          word smaller.
        - Slow-entry points and arg checks are gone.  Unknown function calls
          are handled by automatically-generated RTS entry points (AutoApply.hc,
          generated by the program in utils/genapply).
        - The stack layout is stricter: there are no "pending arguments" on
          the stack any more, the stack is always strictly a sequence of
          stack frames.
          This means that there's no need for LOOKS_LIKE_GHC_INFO() or
          LOOKS_LIKE_STATIC_CLOSURE() any more, and GHC doesn't need to know
          how to find the boundary between the text and data segments (BIG WIN!).
        - A couple of nasty hacks in the mangler caused by the neet to
          identify closure ptrs vs. info tables have gone away.
        - Info tables are a bit more complicated.  See InfoTables.h for the
        - As a side effect, GHCi can now deal with polymorphic seq.  Some bugs
          in GHCi which affected primitives and unboxed tuples are now
        - Binary sizes are reduced by about 7% on x86.  Performance is roughly
          similar, some programs get faster while some get slower.  I've seen
          GHCi perform worse on some examples, but haven't investigated
          further yet (GHCi performance *should* be about the same or better
          in theory).
        - Internally the code generator is rather better organised.  I've moved
          info-table generation from the NCG into the main codeGen where it is
          shared with the C back-end; info tables are now emitted as arrays
          of words in both back-ends.  The NCG is one step closer to being able
          to support profiling.
      This has all been fairly thoroughly tested, but no doubt I've messed
      up the commit in some way.
  30. 05 Dec, 2002 1 commit
    • simonmar's avatar
      [project @ 2002-12-05 13:51:56 by simonmar] · 1ca2417e
      simonmar authored
      - remove old code for GHC < 3.03 (we don't support building GHC with
        less than 4.08).
      - remove ErrorHdrHook and PatError, we now catch all exceptions at
        the top level and report panics (this will fix some test
        discrepancies with GHCi).
  31. 23 Aug, 2002 1 commit
  32. 22 Apr, 2002 1 commit
  33. 10 Aug, 2001 1 commit
  34. 07 Aug, 2001 1 commit
    • simonmar's avatar
      [project @ 2001-08-07 10:11:05 by simonmar] · b36887cd
      simonmar authored
      Move RtsFlags.h into ghc/includes, so it's available in a binary
      installation.  RtsFlags.h was repository-copied behind the scenes to
      keep the revision history.
  35. 19 Feb, 2001 1 commit
  36. 19 Dec, 2000 1 commit
    • simonmar's avatar
      [project @ 2000-12-19 12:55:18 by simonmar] · b1bbd55b
      simonmar authored
      - Add setHeapSize (for -H support, works with ghc-4.08+)
      - Add enableGhcTiming (for -Rghc-timing, works with ghc-4.11+)
      Both of these are no-ops for older compilers.
  37. 27 Apr, 1999 1 commit
  38. 02 Dec, 1998 1 commit