Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Register
  • Sign in
  • GHC GHC
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
    • Locked files
  • Issues 5.6k
    • Issues 5.6k
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
  • Merge requests 667
    • Merge requests 667
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Artifacts
    • Schedules
    • Test cases
  • Deployments
    • Deployments
    • Releases
  • Packages and registries
    • Packages and registries
    • Model experiments
  • Analytics
    • Analytics
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Glasgow Haskell CompilerGlasgow Haskell Compiler
  • GHCGHC
  • Issues
  • #23649

JS: emsdk version compatibility

emsdk 3.1.42 changed some struct offsets relative to 3.1.41, causing test failures (in particular the stat struct has removed some padding)

We can fix CI by holding back the emsdk version on the test runner, but this won't help people who have 3.1.42 installed on their own system.

Ideally we have:

  • checks for the compatible emsdk version range in the configure script
  • bindists that accept the same emsdk version range as source dists
  • compatibility across emsdk versions even in the presence of minor struct changes (?)

I wonder how frequent struct changes are. If they're highly exceptional, we can just bump the minimum required emsdk to 3.1.42, update the struct offsets in the jsbits/base.js file (and perhaps a few other places), and be done with it.

Alternatively, we might want some tool similar to hsc2hs, or some processing option in the //OPTIONS: line in .js files to allow the JS code to query the C compiler for offsets and constants.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking