Skip to content
Snippets Groups Projects
  1. Jul 08, 2023
  2. Jul 07, 2023
    • Matthew Pickering's avatar
      driver: Fix -S with .cmm files · 76983a0d
      Matthew Pickering authored and Marge Bot's avatar Marge Bot committed
      There was an oversight in the driver which assumed that you would always
      produce a `.o` file when compiling a .cmm file.
      
      Fixes #23610
      76983a0d
    • Ben Gamari's avatar
      testsuite: Allow preservation of unexpected output · 9955eead
      Ben Gamari authored and Marge Bot's avatar Marge Bot committed
      Here we introduce a new flag to the testsuite driver,
      --unexpected-output-dir=<dir>, which allows the user to ask
      the driver to preserve unexpected output from tests. The intent is for
      this to be used in CI to allow users to more easily fix unexpected
      platform-dependent output.
      9955eead
  3. Jul 06, 2023
  4. Jul 05, 2023
    • Rodrigo Mesquita's avatar
      configure: Drop Clang command from settings · 53ed21c5
      Rodrigo Mesquita authored and Marge Bot's avatar Marge Bot committed
      Due to 01542cb7 we no longer use the
      `runClang` function, and no longer need to configure into settings the
      Clang command. We used to determine options at runtime to pass clang when
      it was used as an assembler, but now that we configure at configure time
      we no longer need to.
      53ed21c5
    • sheaf's avatar
      Reinstate untouchable variable error messages · 2b55cb5f
      sheaf authored and Marge Bot's avatar Marge Bot committed
      This extra bit of information was accidentally being discarded after
      a refactoring of the way we reported problems when unifying a type
      variable with another type. This patch rectifies that.
      2b55cb5f
    • Torsten Schmits's avatar
      Substitute free variables captured by breakpoints in SpecConstr · 40f4ef7c
      Torsten Schmits authored and Marge Bot's avatar Marge Bot committed
      Fixes #23267
      40f4ef7c
    • Jaro Reinders's avatar
      Refactor Unique to be represented by Word64 · 9edcb1fb
      Jaro Reinders authored and Marge Bot's avatar Marge Bot committed
      In #22010 we established that Int was not always sufficient to store all
      the uniques we generate during compilation on 32-bit platforms. This
      commit addresses that problem by using Word64 instead of Int for
      uniques.
      
      The core of the change is in GHC.Core.Types.Unique and
      GHC.Core.Types.Unique.Supply. However, the representation of uniques is
      used in many other places, so those needed changes too. Additionally, the RTS
      has been extended with an atomic_inc64 operation.
      
      One major change from this commit is the introduction of the Word64Set and
      Word64Map data types. These are adapted versions of IntSet and IntMap
      from the containers package. These are planned to be upstreamed in the
      future.
      
      As a natural consequence of these changes, the compiler will be a bit
      slower and take more space on 32-bit platforms. Our CI tests indicate
      around a 5% residency increase.
      
      Metric Increase:
          CoOpt_Read
          CoOpt_Singletons
          LargeRecord
          ManyAlternatives
          ManyConstructors
          MultiComponentModules
          MultiComponentModulesRecomp
          MultiLayerModulesTH_OneShot
          RecordUpdPerf
          T10421
          T10547
          T12150
          T12227
          T12234
          T12425
          T12707
          T13035
          T13056
          T13253
          T13253-spj
          T13379
          T13386
          T13719
          T14683
          T14697
          T14766
          T15164
          T15703
          T16577
          T16875
          T17516
          T18140
          T18223
          T18282
          T18304
          T18698a
          T18698b
          T18923
          T1969
          T19695
          T20049
          T21839c
          T3064
          T3294
          T4801
          T5030
          T5321FD
          T5321Fun
          T5631
          T5642
          T5837
          T6048
          T783
          T8095
          T9020
          T9198
          T9233
          T9630
          T9675
          T9872a
          T9872b
          T9872b_defer
          T9872c
          T9872d
          T9961
          TcPlugin_RewritePerf
          UniqLoop
          WWRec
          hard_hole_fits
      9edcb1fb
    • meooow's avatar
      Improve the situation with the stimes cycle · 9ce44336
      meooow authored and Marge Bot's avatar Marge Bot committed
      Currently the Semigroup stimes cycle is resolved in GHC.Base by
      importing stimes implementations from a hs-boot file. Resolve the cycle
      using hs-boot files for required classes (Num, Integral) instead. Now
      stimes can be defined directly in GHC.Base, making inlining and
      specialization possible.
      
      This leads to some new boot files for `GHC.Num` and `GHC.Real`, the
      methods for those are only used to implement `stimes` so it doesn't
      appear that these boot files will introduce any new performance traps.
      
      Metric Decrease:
          T13386
          T8095
      Metric Increase:
          T13253
          T13386
          T18698a
          T18698b
          T19695
          T8095
      9ce44336
    • Mario's avatar
      Fixed ticket #23571, TH.Ppr.pprLit hanging on large numeric literals · 4af7eac2
      Mario authored and Marge Bot's avatar Marge Bot committed
      4af7eac2
    • Matthew Pickering's avatar
      Fix deprecation warning when deprecated identifier is from another module · 2be99b7e
      Matthew Pickering authored and Marge Bot's avatar Marge Bot committed
      A stray 'Just' was being printed in the deprecation message.
      
      Fixes #23573
      2be99b7e
    • Vladislav Zavialov's avatar
      testsuite: Do not require CUSKs · 679bbc97
      Vladislav Zavialov authored and Marge Bot's avatar Marge Bot committed
      Numerous tests make use of CUSKs (complete user-supplied kinds),
      a legacy feature scheduled for deprecation. In order to proceed
      with the said deprecation, the tests have been updated to use SAKS
      instead (standalone kind signatures).
      
      This also allows us to remove the Haskell2010 language pragmas that
      were added in 115cd3c8 to work around the lack of CUSKs in GHC2021.
      679bbc97
    • jeffrey young's avatar
      CI: add JS release and debug builds, regen CI jobs · 59c5fe1d
      jeffrey young authored and Marge Bot's avatar Marge Bot committed
      59c5fe1d
  5. Jul 03, 2023
  6. Jun 30, 2023
  7. Jun 29, 2023
  8. Jun 27, 2023
  9. Jun 26, 2023
    • Torsten Schmits's avatar
      Propagate breakpoint information when inlining across modules · c59fbb0b
      Torsten Schmits authored
      Tracking ticket: #23394
      
      MR: !10448
      
      * Add constructor `IfaceBreakpoint` to `IfaceTickish`
      * Store breakpoint data in interface files
      * Store `BreakArray` for the breakpoint's module, not the current module, in BCOs
      * Store module name in BCOs instead of `Unique`, since the `Unique` from an `Iface` doesn't match the modules in GHCi's
        state
      * Allocate module name in `ModBreaks`, like `BreakArray`
      * Lookup breakpoint by module name in GHCi
      * Skip creating breakpoint instructions when no `ModBreaks` are available, rather than injecting `ModBreaks` in the
        linker when breakpoints are enabled, and panicking when `ModBreaks` is missing
      c59fbb0b
    • Arnaud Spiwack's avatar
      Revert "Avoid desugaring non-recursive lets into recursive lets" · 522bd584
      Arnaud Spiwack authored and Marge Bot's avatar Marge Bot committed
      This (temporary) reverts commit 3e80c2b4.
      
      Fixes #23550
      522bd584
    • Sylvain Henry's avatar
      JS: support levity-polymorphic datatypes (#22360,#22291) · 8d6574bc
      Sylvain Henry authored and Marge Bot's avatar Marge Bot committed
      - thread knowledge about levity into PrimRep instead of panicking
      - JS: remove assumption that unlifted heap objects are rts objects (TVar#, etc.)
      
      Doing this also fixes #22291 (test added).
      
      There is a small performance hit (~1% more allocations).
      
      Metric Increase:
          T18698a
          T18698b
      8d6574bc
  10. Jun 24, 2023
    • Luite Stegeman's avatar
      Support large stack frames/offsets in GHCi bytecode interpreter · 564164ef
      Luite Stegeman authored
      Bytecode instructions like PUSH_L (push a local variable) contain
      an operand that refers to the stack slot. Before this patch, the
      operand type was SmallOp (Word16), limiting the maximum stack
      offset to 65535 words. This could cause compiler panics in some
      cases (See #22888).
      
      This patch changes the operand type for stack offsets from
      SmallOp to Op, removing the stack offset limit.
      
      Fixes #22888
      564164ef
  11. Jun 21, 2023
    • Bartłomiej Cieślar's avatar
      Add support for deprecating exported items (proposal #134) · 711b1d24
      Bartłomiej Cieślar authored and Ben Gamari's avatar Ben Gamari committed
      
      This is an implementation of the deprecated exports proposal #134.
      The proposal introduces an ability to introduce warnings to exports.
      This allows for deprecating a name only when it is exported from a specific
      module, rather than always depreacting its usage. In this example:
      
          module A ({-# DEPRECATED "do not use" #-} x) where
          x = undefined
          ---
          module B where
          import A(x)
      
      `x` will emit a warning when it is explicitly imported.
      
      Like the declaration warnings, export warnings are first accumulated within
      the `Warnings` struct, then passed into the ModIface, from which they are
      then looked up and warned about in the importing module in the `lookup_ie`
      helpers of the `filterImports` function (for the explicitly imported names)
      and in the `addUsedGRE(s)` functions where they warn about regular usages
      of the imported name.
      
      In terms of the AST information, the custom warning is stored in the
      extension field of the variants of the `IE` type (see Trees that Grow for
      more information).
      
      The commit includes a bump to the haddock submodule added in MR #28
      
      Signed-off-by: default avatarBartłomiej Cieślar <bcieslar2001@gmail.com>
      711b1d24
    • Sylvain Henry's avatar
    • Sylvain Henry's avatar
      a897dc13
    • Sylvain Henry's avatar
      Fix some recompilation avoidance tests · fab2ad23
      Sylvain Henry authored
      fab2ad23
    • Sylvain Henry's avatar
      Stg: return imported FVs · f84ff161
      Sylvain Henry authored
      This is used to determine what to link when using the interpreter.
      For now it's only used by the JS interpreter but it could easily be used
      by the native interpreter too (instead of extracting names from compiled BCOs).
      f84ff161
Loading