1. 26 Mar, 2002 1 commit
  2. 28 Feb, 2002 1 commit
  3. 08 Feb, 2002 1 commit
    • sewardj's avatar
      [project @ 2002-02-08 14:04:29 by sewardj] · 11eaf772
      sewardj authored
      Back out rev 1.28.  In retrospect saving the pre-messed-with %esp in a
      global location is thread/reentrancy unsafe and a brain-dead thing to
      do, and we can't think of a clean way to fix this.  So am backing it out.
      11eaf772
  4. 06 Feb, 2002 1 commit
    • sewardj's avatar
      [project @ 2002-02-06 15:48:56 by sewardj] · 6e1e8a09
      sewardj authored
      x86 only: make %esp be 8-aligned before entering HC-world code.
      This avoids misalignment penalties for C doubles stored on the C
      stack.  A quick test using nofib/imaginary/rfib shows that getting
      this wrong increases run time by about 10% on our 1 GHz PIII.
      6e1e8a09
  5. 07 Jan, 2002 1 commit
    • ken's avatar
      [project @ 2002-01-07 22:35:55 by ken] · 30f68dc6
      ken authored
      On the alpha, __divq() in libc.a clobbers $s6, so StgRun() needs to save
      $s6.  While we are at it, let us save $f8 and $f9 as well.
      MERGE TO STABLE
      30f68dc6
  6. 14 Aug, 2001 1 commit
    • sewardj's avatar
      [project @ 2001-08-14 13:40:07 by sewardj] · bc5c8021
      sewardj authored
      Change the story about POSIX headers in C compilation.
      
      Until now, all C code in the RTS and library cbits has by default been
      compiled with settings for POSIXness enabled, that is:
         #define _POSIX_SOURCE   1
         #define _POSIX_C_SOURCE 199309L
         #define _ISOC9X_SOURCE
      If you wanted to negate this, you'd have to define NON_POSIX_SOURCE
      before including headers.
      
      This scheme has some bad effects:
      
      * It means that ccall-unfoldings exported via interfaces from a
        module compiled with -DNON_POSIX_SOURCE may not compile when
        imported into a module which does not -DNON_POSIX_SOURCE.
      
      * It overlaps with the feature tests we do with autoconf.
      
      * It seems to have caused borkage in the Solaris builds for some
        considerable period of time.
      
      The New Way is:
      
      * The default changes to not-being-in-Posix mode.
      
      * If you want to force a C file into Posix mode, #include as
        the **first** include the new file ghc/includes/PosixSource.h.
        Most of the RTS C sources have this include now.
      
      * NON_POSIX_SOURCE is almost totally expunged.  Unfortunately
        we have to retain some vestiges of it in ghc/compiler so that
        modules compiled via C on Solaris using older compilers don't
        break.
      bc5c8021
  7. 07 Aug, 2001 1 commit
    • ken's avatar
      [project @ 2001-08-07 20:06:41 by ken] · 9bab7a0e
      ken authored
      Fixed (I hope, and have reason to believe) mysterious segfaulting problem
      on the Alpha.
      
      The problem (I hope, and have reason to believe) was that, during a few
      instructions, the register saving/restoring code in StgRun() places data
      below the current SP value.  (I.e., it should first reserve stack space,
      then put data in said space, rather than first put data in, then reserve
      the space.)
      
         "The SP value might be used by the hardware when raising exceptions and
          asynchronous interrupts. It must be assumed that the contents of the stack
          below the current SP value and within the stack for the current thread are
          continually and unpredictably modified, as specified in the _Alpha
          Architecture Reference Manual_, and as a result of asynchronous software
          actions."
      
         -- Compaq Computer Corporation, Houston. Tru64 UNIX Calling Standard for
            Alpha Systems, 5.1 edition, August 2000, section 3.2.1.  http://www.
            tru64unix.compaq.com/docs/base_doc/DOCUMENTATION/V51_PDF/ARH9MBTE.PDF
      9bab7a0e
  8. 24 Jul, 2001 1 commit
  9. 04 Dec, 2000 1 commit
  10. 13 Nov, 2000 2 commits
  11. 15 Aug, 2000 1 commit
    • simonmar's avatar
      [project @ 2000-08-15 14:18:43 by simonmar] · b86f4b95
      simonmar authored
      Make the TSO structure shorter by 2 words:
      
      	- remove splim.  It was always equal to &(tso->stack) +
      	  RESERVED_STACK_WORDS.
      
      	- make two enum fields 16 bits each instead of 32.
      b86f4b95
  12. 07 Aug, 2000 1 commit
    • qrczak's avatar
      [project @ 2000-08-07 23:37:19 by qrczak] · 4b172698
      qrczak authored
      Now Char, Char#, StgChar have 31 bits (physically 32).
      "foo"# is still an array of bytes.
      
      CharRep represents 32 bits (on a 64-bit arch too). There is also
      Int8Rep, used in those places where bytes were originally meant.
      readCharArray, indexCharOffAddr etc. still use bytes. Storable and
      {I,M}Array use wide Chars.
      
      In future perhaps all sized integers should be primitive types. Then
      some usages of indexing primops scattered through the code could
      be changed to then-available Int8 ones, and then Char variants of
      primops could be made wide (other usages that handle text should use
      conversion that will be provided later).
      
      I/O and _ccall_ arguments assume ISO-8859-1. UTF-8 is internally used
      for string literals (only).
      
      Z-encoding is ready for Unicode identifiers.
      
      Ranges of intlike and charlike closures are more easily configurable.
      
      I've probably broken nativeGen/MachCode.lhs:chrCode for Alpha but I
      don't know the Alpha assembler to fix it (what is zapnot?). Generally
      I'm not sure if I've done the NCG changes right.
      
      This commit breaks the binary compatibility (of course).
      
      TODO:
      * is* and to{Lower,Upper} in Char (in progress).
      * Libraries for text conversion (in design / experiments),
        to be plugged to I/O and a higher level foreign library.
      * PackedString.
      * StringBuffer and accepting source in encodings other than ISO-8859-1.
      4b172698
  13. 17 Apr, 2000 2 commits
  14. 11 Apr, 2000 1 commit
    • sewardj's avatar
      [project @ 2000-04-11 16:36:53 by sewardj] · d5087432
      sewardj authored
      Ensure that when Hugs decides to unload a module (nukeModule()), there are
      no closures anywhere in the system which refers to infotables defined
      in that module.  That means reverting all CAFs and doing a major GC
      prior to deleting the module.  A flag is used to avoid redundant GCs.
      d5087432
  15. 31 Mar, 2000 1 commit
    • hwloidl's avatar
      [project @ 2000-03-31 03:09:35 by hwloidl] · dd4c28a9
      hwloidl authored
      Numerous changes in the RTS to get GUM-4.06 working (currently works with
      parfib-ish programs). Most changes are isolated in the rts/parallel dir.
      
      rts/parallel/:
        The most important changes are a rewrite of the (un-)packing code (Pack.c)
        and changes in LAGA, GALA table operations (Global.c) expecially in
        rebuilding the tables during GC.
      
      rts/:
        Minor changes in Schedule.c, GC.c (interface to par specific root marking
        and evacuation), and lots of additions to Sanity.c (surprise ;-)
        Main.c change for startup: I use a new function rts_evalNothing to
        start non-main-PEs in a PAR || SMP setup (RtsAPI.c)
      
      includes/:
        Updated GranSim macros in PrimOps.h.
      
      lib/std:
        Few changes in PrelHandle.c etc replacing ForeignObj by Addr in a PAR
        setup (we still don't support ForeignObjs or WeakPtrs in GUM).
        Typically use
          #define FILE_OBJECT	    Addr
        when dealing with files.
      
      hslibs/lang/:
        Same as above (in Foreign(Obj).lhs, Weak.lhs, IOExts.lhs etc).
      
      -- HWL
      dd4c28a9
  16. 08 Mar, 2000 1 commit
    • simonmar's avatar
      [project @ 2000-03-08 10:58:38 by simonmar] · 1d816bae
      simonmar authored
      Attempt to fix the Sparc version of StgRun.  Since
      RESERVED_STACK_SPACE increased beyond the size of a 13-bit immediate,
      the Sparc code has been broken.
      
      We try to fix this with some imaginative gcc inline assembly
      constraints.  If this breaks again, I'll try recoding it directly in
      assembler.
      
      While I'm here, pull in some of the comments from the old pre-4.00 RTS
      and add some new comments.
      1d816bae
  17. 07 Mar, 2000 1 commit
    • simonmar's avatar
      [project @ 2000-03-07 11:35:36 by simonmar] · 3f558e55
      simonmar authored
      Move the x86 startup code into StgCRun.c, and remove StgRun.S.
      Although the assembly version was much cleaner, it didn't extend the
      stack properly in the case when the host architecture requires it to
      be extended a page at a time (eg. Win32).  We now rely on the C
      compiler to do this properly.
      3f558e55
  18. 24 Feb, 2000 1 commit
    • sewardj's avatar
      [project @ 2000-02-24 14:05:55 by sewardj] · 3d4dba88
      sewardj authored
      Wibbles for Win32 standalone compilation of Hugs:
      -- Turn off debugging miniinterpreter
      -- Change SIZEOF_INTP (which no longer exists) into SIZEOF_VOID_P
      3d4dba88
  19. 15 Feb, 2000 1 commit
    • sewardj's avatar
      [project @ 2000-02-15 13:16:19 by sewardj] · 7c1668b4
      sewardj authored
      Backend interop fixes:
      -- Make Hugs use the same constructor tag numbering as GHC, viz, starting
         at zero.
      -- Evaluator.c: when unwinding the stack on entering a constructor,
         return to the scheduler if a RET_{VEC_}{SMALL|BIG} is found on the
         stack.
      7c1668b4
  20. 14 Feb, 2000 1 commit
  21. 01 Dec, 1999 1 commit
  22. 03 Nov, 1999 1 commit
  23. 27 Jul, 1999 1 commit
  24. 06 Jul, 1999 1 commit
    • sewardj's avatar
      [project @ 1999-07-06 16:40:22 by sewardj] · 47a40c89
      sewardj authored
      Assembler/Disassembler: handle and print calls to compiled code
      Evaluator: return to scheduler when entering unknown closure
      StgCRun: debugging trace in miniinterpreter (temporary)
      Updates: fix normal and vectored returns to Hugs
      47a40c89
  25. 11 Mar, 1999 1 commit
  26. 01 Mar, 1999 1 commit
  27. 05 Feb, 1999 1 commit
  28. 02 Dec, 1998 1 commit