Skip to content
Snippets Groups Projects
  1. Feb 13, 2024
  2. Feb 12, 2024
    • Teo Camarasu's avatar
      doc: Add requires prof annotation to options that require it · d0d5acb5
      Teo Camarasu authored and Marge Bot's avatar Marge Bot committed
      Resolves #24421
      d0d5acb5
    • Teo Camarasu's avatar
      nonmoving: Add support for heap profiling · bedb4f0d
      Teo Camarasu authored and Marge Bot's avatar Marge Bot committed
      Add support for heap profiling while using the nonmoving collector.
      
      We greatly simply the implementation by disabling concurrent collection for
      GCs when heap profiling is enabled. This entails that the marked objects on
      the nonmoving heap are exactly the live objects.
      
      Note that we match the behaviour for live bytes accounting by taking the size
      of objects on the nonmoving heap to be that of the segment's block
      rather than the object itself.
      
      Resolves #22221
      bedb4f0d
    • Simon Peyton Jones's avatar
      Remove a dead comment · ff2c0cc9
      Simon Peyton Jones authored and Marge Bot's avatar Marge Bot committed
      Just remove an out of date block of commented-out code, and tidy up
      the relevant Notes.  See #8317.
      ff2c0cc9
    • Sylvain Henry's avatar
      JS: avoid EMCC logging spurious failure · b71b392f
      Sylvain Henry authored and Marge Bot's avatar Marge Bot committed
      emcc would sometime output messages like:
      
        cache:INFO: generating system asset: symbol_lists/424b44514e43d789148e69e4e7d1c7fdc0350b79.json... (this will be cached in "/emsdk/upstream/emscripten/cache/symbol_lists/424b44514e43d789148e69e4e7d1c7fdc0350b79.json" for subsequent builds)
        cache:INFO:  - ok
      
      Cf https://github.com/emscripten-core/emscripten/issues/18607
      
      This breaks our tests matching the stderr output. We avoid this by setting EMCC_LOGGING=0
      b71b392f
    • Sylvain Henry's avatar
      JS: add support for linking C sources · aef587f6
      Sylvain Henry authored and Marge Bot's avatar Marge Bot committed
      Support linking C sources with JS output of the JavaScript backend.
      See the added documentation in the users guide.
      
      The implementation simply extends the JS linker to use the objects (.o)
      that were already produced by the emcc compiler and which were filtered
      out previously. I've also added some options to control the link with C
      functions (see the documentation about pragmas).
      
      With this change I've successfully compiled the direct-sqlite package
      which embeds the sqlite.c database code. Some wrappers are still
      required (see the documentation about wrappers) but everything generic
      enough to be reused for other libraries have been integrated into
      rts/js/mem.js.
      aef587f6
    • Sylvain Henry's avatar
      JS: disable MergeObjsMode test · 55346ede
      Sylvain Henry authored and Marge Bot's avatar Marge Bot committed
      This isn't implemented for JS backend objects.
      55346ede
    • Sylvain Henry's avatar
      JS: handle stored null StablePtr · df9fd9f7
      Sylvain Henry authored and Marge Bot's avatar Marge Bot committed
      Some Haskell codes unsafely cast StablePtr into ptr to compare against
      NULL. E.g. in direct-sqlite:
      
        if castStablePtrToPtr aggStPtr /= nullPtr then
      
      where `aggStPtr` is read (`peek`) from zeroed memory initially.
      
      We fix this by giving these StablePtr the same representation as other
      null pointers. It's safe because StablePtr at offset 0 is unused (for
      this exact reason).
      df9fd9f7
  3. Feb 10, 2024
  4. Feb 08, 2024
    • Jade's avatar
      Improve Monad, Functor & Applicative docs · 762b2120
      Jade authored and Matthew Pickering's avatar Matthew Pickering committed
      This patch aims to improve the documentation of Functor, Applicative,
      Monad and related symbols. The main goal is to make it more consistent
      and make accessible. See also: !10979 (closed) and !10985 (closed)
      
      Ticket #17929
      
      Updates haddock submodule
      762b2120
    • Apoorv Ingle's avatar
      Enable mdo statements to use HsExpansions · 9f987235
      Apoorv Ingle authored and Marge Bot's avatar Marge Bot committed
      Fixes: #24411
      Added test T24411 for regression
      9f987235
    • John Ericson's avatar
      Generate LLVM min/max bound policy via Hadrian · c37931b3
      John Ericson authored and Marge Bot's avatar Marge Bot committed
      Per #23966, I want the top-level configure to only generate
      configuration data for Hadrian, not do any "real" tasks on its own.
      This is part of that effort --- one less file generated by it.
      
      (It is still done with a `.in` file, so in a future world non-Hadrian
      also can easily create this file.)
      
      Split modules:
      
      - GHC.CmmToLlvm.Config
      - GHC.CmmToLlvm.Version
      - GHC.CmmToLlvm.Version.Bounds
      - GHC.CmmToLlvm.Version.Type
      
      This also means we can get rid of the silly `unused.h` introduced in
      !6803 / 7dfcab2f as temporary kludge.
      
      Part of #23966
      c37931b3
    • Matthew Pickering's avatar
      Add alpine 3_18 release job · 707a32f5
      Matthew Pickering authored and Marge Bot's avatar Marge Bot committed
      This is mainly experimental and future proofing to enable a smooth
      transition to newer alpine releases once 3_12 is too old.
      707a32f5
    • Matthew Pickering's avatar
      Update bootstrap plans for 9.4.8 and 9.6.4 · 5fcd58be
      Matthew Pickering authored and Marge Bot's avatar Marge Bot committed
      5fcd58be
    • Matthew Pickering's avatar
      c32b6426
    • Matthew Pickering's avatar
      Use specific clang assembler when compiling with -fllvm · ab533e71
      Matthew Pickering authored and Marge Bot's avatar Marge Bot committed
      There are situations where LLVM will produce assembly which older gcc
      toolchains can't handle. For example on Deb10, it seems that LLVM >= 13
      produces assembly which the default gcc doesn't support.
      
      A more robust solution in the long term is to require a specific LLVM
      compatible assembler when using -fllvm.
      
      Fixes #16354
      ab533e71
    • Ben Gamari's avatar
      Bump filepath to 1.5.0.0 · f2dffd2e
      Ben Gamari authored and Marge Bot's avatar Marge Bot committed
      Required bumps of the following submodules:
      
       * `directory`
       * `filepath`
       * `haskeline`
       * `process`
       * `unix`
       * `hsc2hs`
       * `Win32`
       * `semaphore-compat`
      
      and the addition of `os-string` as a boot package.
      f2dffd2e
    • Ben Gamari's avatar
      hadrian: Set -this-package-name · d7ee12ea
      Ben Gamari authored and Marge Bot's avatar Marge Bot committed
      When constructing the GHC flags for a package Hadrian must take care to
      set `-this-package-name` in addition to `-this-unit-id`. This hasn't
      broken until now as we have not had any uses of qualified package
      imports. However, this will change with `filepath-1.5` and the
      corresponding `unix` bump, breaking `hadrian/multi-ghci`.
      d7ee12ea
    • Ben Gamari's avatar
      gitignore: Ignore .hadrian_ghci_multi/ · 9d65235a
      Ben Gamari authored and Marge Bot's avatar Marge Bot committed
      9d65235a
    • Ben Gamari's avatar
      Add os-string as a boot package · 9060d55b
      Ben Gamari authored and Marge Bot's avatar Marge Bot committed
      Introduces `os-string` submodule. This will be necessary for
      `filepath-1.5`.
      9060d55b
    • Vladislav Zavialov's avatar
      Haddock comments on infix constructors (#24221) · e8fb2451
      Vladislav Zavialov authored and Marge Bot's avatar Marge Bot committed
      Rewrite the `HasHaddock` instance for `ConDecl GhcPs` to account for
      infix constructors.
      
      This change fixes a Haddock regression (introduced in 19e80b9a)
      that affected leading comments on infix data constructor declarations:
      
      	-- | Docs for infix constructor
      	| Int :* Bool
      
      The comment should be associated with the data constructor (:*), not
      with its left-hand side Int.
      e8fb2451
    • Ben Gamari's avatar
      Move `base` to `ghc-internal` · 44f6557a
      Ben Gamari authored and Marge Bot's avatar Marge Bot committed
      Here we move a good deal of the implementation of `base` into a new
      package, `ghc-internal` such that it can be evolved independently
      from the user-visible interfaces of `base`.
      
      While we want to isolate implementation from interfaces, naturally, we
      would like to avoid turning `base` into a mere set of module re-exports.
      However, this is a non-trivial undertaking for a variety of reasons:
      
       * `base` contains numerous known-key and wired-in things, requiring
         corresponding changes in the compiler
      
       * `base` contains a significant amount of C code and corresponding
         autoconf logic, which is very fragile and difficult to break apart
      
       * `base` has numerous import cycles, which are currently dealt with via
         carefully balanced `hs-boot` files
      
       * We must not break existing users
      
      To accomplish this migration, I tried the following approaches:
      
      * [Split-GHC.Base]: Break apart the GHC.Base knot to allow incremental
        migration of modules into ghc-internal: this knot is simply too
        intertwined to be easily pulled apart, especially given the rather
        tricky import cycles that it contains)
      
      * [Move-Core]: Moving the "core" connected component of base (roughly
        150 modules) into ghc-internal. While the Haskell side of this seems
        tractable, the C dependencies are very subtle to break apart.
      
      * [Move-Incrementally]:
      
        1. Move all of base into ghc-internal
        2. Examine the module structure and begin moving obvious modules (e.g.
           leaves of the import graph) back into base
        3. Examine the modules remaining in ghc-internal, refactor as necessary
           to facilitate further moves
        4. Go to (2) iterate until the cost/benefit of further moves is
           insufficient to justify continuing
        5. Rename the modules moved into ghc-internal to ensure that they don't
           overlap with those in base
        6. For each module moved into ghc-internal, add a shim module to base
           with the declarations which should be exposed and any requisite
           Haddocks (thus guaranteeing that base will be insulated from changes
           in the export lists of modules in ghc-internal
      
      Here I am using the [Move-Incrementally] approach, which is empirically
      the least painful of the unpleasant options above
      
      Bumps haddock submodule.
      
      Metric Decrease:
          haddock.Cabal
          haddock.base
      Metric Increase:
          MultiComponentModulesRecomp
          T16875
          size_hello_artifact
      44f6557a
    • Ben Gamari's avatar
      base: Cleanup whitespace in cbits · 2df96366
      Ben Gamari authored and Marge Bot's avatar Marge Bot committed
      2df96366
    • Matthew Pickering's avatar
      Javascript: Don't filter out rtsDeps list · 20b702b5
      Matthew Pickering authored and Marge Bot's avatar Marge Bot committed
      This logic appears to be incorrect as it would drop any dependency which
      was not in a direct dependency of the package being linked.
      
      In the ghc-internals split this started to cause errors because
      `ghc-internal` is not a direct dependency of most packages, and hence
      important symbols to keep which are hard coded into the js runtime were
      getting dropped.
      20b702b5
    • Matthew Pickering's avatar
      testsuite: Mark length001 as fragile on javascript · 3c9ddf97
      Matthew Pickering authored and Marge Bot's avatar Marge Bot committed
      Modifying the timeout multiplier is not a robust way to get this test to
      reliably fail. Therefore we mark it as fragile until/if javascript ever
      supports the stack limit.
      3c9ddf97
    • Ben Gamari's avatar
      llvmGen: Adapt to allow use of new pass manager. · 77db84ab
      Ben Gamari authored and Marge Bot's avatar Marge Bot committed
      We now must use `-passes` in place of `-O<n>` due to #21936.
      
      Closes #21936.
      77db84ab
  5. Feb 07, 2024
Loading