[Git][ghc/ghc][master] 4 commits: testsuite: Mark length001 as fragile on javascript
Marge Bot (@marge-bot)
gitlab at gitlab.haskell.org
Thu Feb 8 05:36:33 UTC 2024
Marge Bot pushed to branch master at Glasgow Haskell Compiler / GHC
Commits:
3c9ddf97 by Matthew Pickering at 2024-02-08T00:35:59-05:00
testsuite: Mark length001 as fragile on javascript
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.
- - - - -
20b702b5 by Matthew Pickering at 2024-02-08T00:35:59-05:00
Javascript: Don't filter out rtsDeps list
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.
- - - - -
2df96366 by Ben Gamari at 2024-02-08T00:35:59-05:00
base: Cleanup whitespace in cbits
- - - - -
44f6557a by Ben Gamari at 2024-02-08T00:35:59-05:00
Move `base` to `ghc-internal`
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
- - - - -
30 changed files:
- .gitignore
- compiler/GHC/Builtin/Names.hs
- compiler/GHC/Runtime/Interpreter/JS.hs
- compiler/GHC/StgToJS/Linker/Linker.hs
- compiler/GHC/StgToJS/Linker/Utils.hs
- compiler/GHC/StgToJS/Prim.hs
- compiler/GHC/StgToJS/Rts/Rts.hs
- compiler/GHC/StgToJS/Types.hs
- compiler/GHC/Unit/Types.hs
- configure.ac
- hadrian/src/Rules/SourceDist.hs
- hadrian/src/Settings/Warnings.hs
- libraries/base/base.cabal
- libraries/base/src/Control/Applicative.hs
- libraries/base/src/Control/Concurrent.hs
- libraries/base/src/Data/Complex.hs
- libraries/base/src/Data/Semigroup.hs
- libraries/base/src/System/CPUTime/Posix/Times.hsc
- libraries/base/tests/all.T
- libraries/base/.authorspellings → libraries/ghc-internal/.authorspellings
- libraries/base/.gitignore → libraries/ghc-internal/.gitignore
- libraries/base/.hlint.yaml → libraries/ghc-internal/.hlint.yaml
- libraries/ghc-internal/LICENSE
- libraries/base/Setup.hs → libraries/ghc-internal/Setup.hs
- libraries/base/aclocal.m4 → libraries/ghc-internal/aclocal.m4
- libraries/base/cbits/CastFloatWord.cmm → libraries/ghc-internal/cbits/CastFloatWord.cmm
- libraries/base/cbits/DarwinUtils.c → libraries/ghc-internal/cbits/DarwinUtils.c
- libraries/base/cbits/IOutils.c → libraries/ghc-internal/cbits/IOutils.c
- libraries/base/cbits/PrelIOUtils.c → libraries/ghc-internal/cbits/PrelIOUtils.c
- libraries/base/cbits/SetEnv.c → libraries/ghc-internal/cbits/SetEnv.c
The diff was not included because it is too large.
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/77db84aba1ba00f6d146e9107b24c6203798e796...44f6557a42103e7a27e41e2f96938adf996c76f5
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/77db84aba1ba00f6d146e9107b24c6203798e796...44f6557a42103e7a27e41e2f96938adf996c76f5
You're receiving this email because of your account on gitlab.haskell.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20240208/aa527794/attachment.html>
More information about the ghc-commits
mailing list