Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
  • GHC GHC
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 4,865
    • Issues 4,865
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
  • Merge requests 455
    • Merge requests 455
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Releases
  • Analytics
    • Analytics
    • Value stream
    • 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 Compiler
  • GHCGHC
  • Issues
  • #21067
Closed
Open
Created Feb 09, 2022 by Matthew Pickering@mpickeringDeveloper

Fat Interface Files

This is a new ticket which is related to #10871, the motivation is different here.

A "fat" interface file is a file which stores the core program at the end of simplification. The file can be read and deserialised so that compilation can resume from this point and the core can be translated into STG and hence Bytecode.

We are motivated for two reasons

  1. Faster GHCi startup time when using bytecode interpreter. You no longer have to typecheck and simplify every module every time you start GHCi.
  2. If you can interpret everything (even package modules) makes TH evaluation much more resilient to ABI changes.

(Secret reason 3), if we distribute these files for all dependencies then you can generate code which passes types at runtime (as needed for a good implementation of typed template haskell)

A draft MR is in !7502

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