Skip to content
Snippets Groups Projects
  1. Apr 02, 2024
    • Cheng Shao's avatar
      ci: improve TSAN CI jobs · 07cb627c
      Cheng Shao authored and Marge Bot's avatar Marge Bot committed
      - Run TSAN jobs with +thread_sanitizer_cmm which enables Cmm
        instrumentation as well.
      - Run TSAN jobs in deb12 which ships gcc-12, a reasonably recent gcc
        that @bgamari confirms he's using in #GHC:matrix.org. Ideally we
        should be using latest clang release for latest improvements in
        sanitizers, though that's left as future work.
      - Mark TSAN jobs as manual+allow_failure in validate pipelines. The
        purpose is to demonstrate that we have indeed at least fixed
        building of TSAN mode in CI without blocking the patch to land, and
        once merged other people can begin playing with TSAN using their own
        dev setups and feature branches.
      07cb627c
    • Cheng Shao's avatar
      compiler: fix github link to __tsan_memory_order in a comment · 865bd717
      Cheng Shao authored and Marge Bot's avatar Marge Bot committed
      865bd717
    • Cheng Shao's avatar
      rts: fix clang-specific errors when compiling with TSAN · a9ab9455
      Cheng Shao authored and Marge Bot's avatar Marge Bot committed
      This commit fixes clang-specific rts compilation errors when compiling
      with TSAN:
      
      - clang doesn't have -Wtsan flag
      - Fix prototype of ghc_tsan_* helper functions
      - __tsan_atomic_* functions aren't clang built-ins and
        sanitizer/tsan_interface_atomic.h needs to be included
      - On macOS, TSAN runtime library is
        libclang_rt.tsan_osx_dynamic.dylib, not libtsan. -fsanitize-thread
        as a link-time flag will take care of linking the TSAN runtime
        library anyway so remove tsan as an rts extra library
      a9ab9455
    • Cheng Shao's avatar
      rts: fix errors when compiling with TSAN · e91dad93
      Cheng Shao authored and Marge Bot's avatar Marge Bot committed
      This commit fixes rts compilation errors when compiling with TSAN:
      
      - xxx_FENCE macros are redefined and trigger CPP warnings.
      - Use SIZEOF_W. WORD_SIZE_IN_BITS is provided by MachDeps.h which
        Cmm.h doesn't include by default.
      e91dad93
    • Ben Gamari's avatar
      rts: Fix TSAN_ENABLED CPP guard · c8a4c050
      Ben Gamari authored and Marge Bot's avatar Marge Bot committed
      This should be `#if defined(TSAN_ENABLED)`, not `#if TSAN_ENABLED`,
      lest we suffer warnings.
      c8a4c050
  2. Apr 01, 2024
  3. Mar 29, 2024
  4. Mar 27, 2024
    • Alan Zimmerman's avatar
      EPA: Fix FamDecl range · cd0fb82f
      Alan Zimmerman authored
      The span was incorrect if opt_datafam_kind_sig was empty
      cd0fb82f
    • Alan Zimmerman's avatar
      EPA: Do not extend declaration range for trailine zero len semi · 0acfe391
      Alan Zimmerman authored and Marge Bot's avatar Marge Bot committed
      The lexer inserts virtual semicolons having zero width.
      Do not use them to extend the list span of items in a list.
      0acfe391
    • Serge S. Gulin's avatar
      JS: `h$rts_isProfiled` is removed from `profiling` and left its version at · 13223f6d
      Serge S. Gulin authored and Marge Bot's avatar Marge Bot committed
      `rts/js/config.js`
      13223f6d
    • Rodrigo Mesquita's avatar
      Revert "NCG: Fix a bug in jump shortcutting." · cfeb70d3
      Rodrigo Mesquita authored and Marge Bot's avatar Marge Bot committed
      This reverts commit 5bd8ed53.
      
      Fixes #24586
      cfeb70d3
    • Rodrigo Mesquita's avatar
      bindist: Clean xattrs of bin and lib at configure time · bf65a7c3
      Rodrigo Mesquita authored and Marge Bot's avatar Marge Bot committed
      For issue #21506, we started cleaning the extended attributes of
      binaries and libraries from the bindist *after* they were installed to
      workaround notarisation (#17418), as part of `make install`.
      
      However, the `ghc-toolchain` binary that is now shipped with the bindist
      must be run at `./configure` time. Since we only cleaned the xattributes
      of the binaries and libs after they were installed, in some situations
      users would be unable to run `ghc-toolchain` from the bindist, failing
      at configure time (#24554).
      
      In this commit we move the xattr cleaning logic to the configure script.
      
      Fixes #24554
      bf65a7c3
    • Rodrigo Mesquita's avatar
      configure: Use LDFLAGS when trying linkers · 32a8103f
      Rodrigo Mesquita authored and Marge Bot's avatar Marge Bot committed
      A user may configure `LDFLAGS` but not `LD`. When choosing a linker, we
      will prefer `ldd`, then `ld.gold`, then `ld.bfd` -- however, we have to
      check for a working linker. If either of these fail, we try the next in
      line.
      
      However, we were not considering the `$LDFLAGS` when checking if these
      linkers worked. So we would pick a linker that does not support the
      current $LDFLAGS and fail further down the line when we used that linker
      with those flags.
      
      Fixes #24565, where `LDFLAGS=-Wl,-z,pack-relative-relocs` is not
      supported by `ld.gold` but that was being picked still.
      32a8103f
  5. Mar 26, 2024
  6. Mar 25, 2024
  7. Mar 23, 2024
  8. Mar 22, 2024
  9. Mar 21, 2024
    • Andrei Borzenkov's avatar
      Fix TH handling in `pat_to_type_pat` function (#24571) · 6fafc51e
      Andrei Borzenkov authored and Marge Bot's avatar Marge Bot committed
      There was missing case for `SplicePat` in `pat_to_type_at` function,
      hence patterns with splicing that checked against `forall->` doesn't work
      properly because they fall into the "illegal pattern" case.
      
      Code example that is now accepted:
      
        g :: forall a -> ()
        g $([p| a |]) = ()
      6fafc51e
    • Preetham Gujjula's avatar
      docs: Remove mention of non-existent Ord instance for Complex · 247fc0fa
      Preetham Gujjula authored and Marge Bot's avatar Marge Bot committed
      The documentation for Data.Complex says that the Ord instance for Complex Float
      is deficient, but there is no Ord instance for Complex a. The Eq instance for
      Complex Float is similarly deficient, so we use that as an example instead.
      247fc0fa
    • Vladislav Zavialov's avatar
      Type operators in promoteOccName (#24570) · da2a10ce
      Vladislav Zavialov authored and Marge Bot's avatar Marge Bot committed
      Type operators differ from term operators in that they are lexically
      classified as (type) constructors, not as (type) variables.
      
      Prior to this change, promoteOccName did not account for this
      difference, causing a scoping issue that affected RequiredTypeArguments.
      
        type (!@#) = Bool
        f = idee (!@#)      -- Not in scope: ‘!@#’  (BUG)
      
      Now we have a special case in promoteOccName to account for this.
      da2a10ce
    • Alan Zimmerman's avatar
      EPA: Clean up Exactprint helper functions a bit · 5f275176
      Alan Zimmerman authored and Marge Bot's avatar Marge Bot committed
      - Introduce a helper lens to compose on `EpAnn a` vs `a` versions
      - Rename some prime versions of functions back to non-prime
        They were renamed during the rework
      5f275176
  10. Mar 20, 2024
Loading