1. 04 Dec, 2015 1 commit
  2. 12 Nov, 2014 1 commit
    • Sergei Trofimovich's avatar
      includes/Stg.h: define _DEFAULT_SOURCE for glibc-2.20 · c65221bd
      Sergei Trofimovich authored
      
      
      _BSD_SOURCE we are using for 'gamma()' and friends
      was deprecated in glibc-2.20 in favour of '_DEFAULT_SOURCE'.
      
      gcc says:
      
          In file included from /usr/include/math.h:26:0:
              0,
                               from includes/Stg.h:69,
                               from /tmp/ghc19488_0/ghc19488_2.hc:3:
      
          /usr/include/features.h:148:3:
               warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
               # warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
                 ^
      
      Patch fixes testsuite failures on UNREG
      (stderr are not cluttered by warnings anymore).
      Signed-off-by: default avatarSergei Trofimovich <slyfox@gentoo.org>
      c65221bd
  3. 01 Sep, 2014 1 commit
  4. 28 Aug, 2014 1 commit
  5. 20 Aug, 2014 1 commit
  6. 24 Apr, 2014 1 commit
  7. 22 Apr, 2014 1 commit
    • Colin Watson's avatar
      Be less untruthful about the prototypes of external functions · 5a31f231
      Colin Watson authored
      GHC's generated C code uses dummy prototypes for foreign imports.  At the
      moment these all claim to be (void), i.e. functions of zero arguments.  On
      most platforms this doesn't matter very much: calls to these functions put
      the parameters in the usual places anyway, and (with the exception of
      varargs) things just work.
      
      However, the ELFv2 ABI on ppc64 optimises stack allocation
      (http://gcc.gnu.org/ml/gcc-patches/2013-11/msg01149.html
      
      ): a call to a
      function that has a prototype, is not varargs, and receives all parameters
      in registers rather than on the stack does not require the caller to
      allocate an argument save area.  The incorrect prototypes cause GCC to
      believe that all functions declared this way can be called without an
      argument save area, but if the callee has sufficiently many arguments then
      it will expect that area to be present, and will thus corrupt the caller's
      stack.  This happens in particular with calls to runInteractiveProcess in
      libraries/process/cbits/runProcess.c.
      
      The simplest fix appears to be to declare these external functions with an
      unspecified argument list rather than a void argument list.  This is no
      worse for platforms that don't care either way, and allows a successful
      bootstrap of GHC 7.8 on little-endian Linux ppc64 (which uses the ELFv2
      ABI).
      
      Fixes #8965
      Signed-off-by: default avatarColin Watson <cjwatson@debian.org>
      Signed-off-by: default avatarAustin Seipp <austin@well-typed.com>
      5a31f231
  8. 17 Feb, 2014 1 commit
  9. 01 Oct, 2013 1 commit
  10. 13 Dec, 2012 1 commit
  11. 06 Aug, 2012 1 commit
  12. 23 Mar, 2012 1 commit
    • Ian Lynagh's avatar
      Fix ASSIGN_DBL on Win64 · 1212145b
      Ian Lynagh authored
      We were comparing ALIGNMENT_DOUBLE to ALIGNMENT_LONG, but really
      we cared about W_ values, and sizeof(long) /= sizeof(void *) on Win64
      1212145b
  13. 11 Mar, 2012 1 commit
  14. 22 Nov, 2011 1 commit
  15. 19 Oct, 2011 1 commit
  16. 07 Oct, 2011 1 commit
    • dmp's avatar
      Enable pthread_getspecific() tls for LLVM compiler · dba72545
      dmp authored
      LLVM does not support the __thread attribute for thread
      local storage and may generate incorrect code for global
      register variables. We want to allow building the runtime with
      LLVM-based compilers such as llvm-gcc and clang,
      particularly for MacOS.
      
      This patch changes the gct variable used by the garbage
      collector to use pthread_getspecific() for thread local
      storage when an llvm based compiler is used to build the
      runtime.
      dba72545
  17. 10 Aug, 2011 1 commit
  18. 27 Jan, 2010 1 commit
  19. 10 Sep, 2009 1 commit
  20. 25 Aug, 2009 1 commit
  21. 02 Aug, 2009 1 commit
    • Simon Marlow's avatar
      RTS tidyup sweep, first phase · a2a67cd5
      Simon Marlow authored
      The first phase of this tidyup is focussed on the header files, and in
      particular making sure we are exposinng publicly exactly what we need
      to, and no more.
      
       - Rts.h now includes everything that the RTS exposes publicly,
         rather than a random subset of it.
      
       - Most of the public header files have moved into subdirectories, and
         many of them have been renamed.  But clients should not need to
         include any of the other headers directly, just #include the main
         public headers: Rts.h, HsFFI.h, RtsAPI.h.
      
       - All the headers needed for via-C compilation have moved into the
         stg subdirectory, which is self-contained.  Most of the headers for
         the rest of the RTS APIs have moved into the rts subdirectory.
      
       - I left MachDeps.h where it is, because it is so widely used in
         Haskell code.
       
       - I left a deprecated stub for RtsFlags.h in place.  The flag
         structures are now exposed by Rts.h.
      
       - Various internal APIs are no longer exposed by public header files.
      
       - Various bits of dead code and declarations have been removed
      
       - More gcc warnings are turned on, and the RTS code is more
         warning-clean.
      
       - More source files #include "PosixSource.h", and hence only use
         standard POSIX (1003.1c-1995) interfaces.
      
      There is a lot more tidying up still to do, this is just the first
      pass.  I also intend to standardise the names for external RTS APIs
      (e.g use the rts_ prefix consistently), and declare the internal APIs
      as hidden for shared libraries.
      a2a67cd5
  22. 09 Jun, 2009 1 commit
  23. 02 Jun, 2009 1 commit
  24. 26 Apr, 2009 1 commit
  25. 02 Dec, 2008 1 commit
  26. 06 Oct, 2008 1 commit
  27. 18 Sep, 2008 1 commit
  28. 16 Sep, 2008 1 commit
  29. 04 Sep, 2008 1 commit
  30. 19 Jun, 2008 1 commit
    • Simon Marlow's avatar
      Fix up inlines for gcc 4.3 · 24ad9cf0
      Simon Marlow authored
      gcc 4.3 emits warnings for static inline functions that its heuristics
      decided not to inline.  The workaround is to either mark appropriate
      functions as "hot" (a new attribute in gcc 4.3), or sometimes to use
      "extern inline" instead.
      
      With this fix I can validate with gcc 4.3 on Fedora 9.
      24ad9cf0
  31. 12 May, 2008 1 commit
  32. 25 Apr, 2008 1 commit
  33. 02 Apr, 2008 1 commit
    • Simon Marlow's avatar
      Do not #include external header files when compiling via C · c245355e
      Simon Marlow authored
      This has several advantages:
      
       - -fvia-C is consistent with -fasm with respect to FFI declarations:
         both bind to the ABI, not the API.
      
       - foreign calls can now be inlined freely across module boundaries, since
         a header file is not required when compiling the call.
      
       - bootstrapping via C will be more reliable, because this difference
         in behavour between the two backends has been removed.
      
      There is one disadvantage:
      
       - we get no checking by the C compiler that the FFI declaration
         is correct.
      
      So now, the c-includes field in a .cabal file is always ignored by
      GHC, as are header files specified in an FFI declaration.  This was
      previously the case only for -fasm compilations, now it is also the
      case for -fvia-C too.
      c245355e
  34. 24 Oct, 2006 1 commit
    • Simon Marlow's avatar
      Split GC.c, and move storage manager into sm/ directory · ab0e778c
      Simon Marlow authored
      In preparation for parallel GC, split up the monolithic GC.c file into
      smaller parts.  Also in this patch (and difficult to separate,
      unfortunatley):
        
        - Don't include Stable.h in Rts.h, instead just include it where
          necessary.
        
        - consistently use STATIC_INLINE in source files, and INLINE_HEADER
          in header files.  STATIC_INLINE is now turned off when DEBUG is on,
          to make debugging easier.
        
        - The GC no longer takes the get_roots function as an argument.
          We weren't making use of this generalisation.
      ab0e778c
  35. 28 Sep, 2006 1 commit
  36. 09 Sep, 2006 1 commit
  37. 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.
      0065d5ab
  38. 18 Nov, 2005 1 commit
    • simonmar's avatar
      [project @ 2005-11-18 15:13:46 by simonmar] · cbd29e0a
      simonmar authored
      Add wcStore(), a write-combining store if supported
      
      (I tried using it in the update code and only succeeded in making
      things slower, but it might come in handy in the future)
      cbd29e0a
  39. 14 Jul, 2005 1 commit
  40. 27 Mar, 2005 1 commit
    • panne's avatar
      [project @ 2005-03-27 13:41:13 by panne] · 03dc2dd3
      panne authored
      * Some preprocessors don't like the C99/C++ '//' comments after a
        directive, so use '/* */' instead. For consistency, a lot of '//' in
        the include files were converted, too.
      
      * UnDOSified libraries/base/cbits/runProcess.c.
      
      * My favourite sport: Killed $Id$s.
      03dc2dd3