-
- Downloads
Implement -XStaticValues
Summary: As proposed in [1], this extension introduces a new syntactic form `static e`, where `e :: a` can be any closed expression. The static form produces a value of type `StaticPtr a`, which works as a reference that programs can "dereference" to get the value of `e` back. References are like `Ptr`s, except that they are stable across invocations of a program. The relevant wiki pages are [2, 3], which describe the motivation/ideas and implementation plan respectively. [1] Jeff Epstein, Andrew P. Black, and Simon Peyton-Jones. Towards Haskell in the cloud. SIGPLAN Not., 46(12):118–129, September 2011. ISSN 0362-1340. [2] https://ghc.haskell.org/trac/ghc/wiki/StaticPointers [3] https://ghc.haskell.org/trac/ghc/wiki/StaticPointers/ImplementationPlan Authored-by:Facundo Domínguez <facundo.dominguez@tweag.io> Authored-by:
Mathieu Boespflug <m@tweag.io> Authored-by:
Alexander Vershilov <alexander.vershilov@tweag.io> Test Plan: `./validate` Reviewers: hvr, simonmar, simonpj, austin Reviewed By: simonpj, austin Subscribers: qnikst, bgamari, mboes, carter, thomie, goldfire Differential Revision: https://phabricator.haskell.org/D550 GHC Trac Issues: #7015
Showing
- compiler/deSugar/Coverage.hs 3 additions, 0 deletionscompiler/deSugar/Coverage.hs
- compiler/deSugar/Desugar.hs 10 additions, 2 deletionscompiler/deSugar/Desugar.hs
- compiler/deSugar/DsExpr.hs 109 additions, 0 deletionscompiler/deSugar/DsExpr.hs
- compiler/deSugar/DsMeta.hs 6 additions, 3 deletionscompiler/deSugar/DsMeta.hs
- compiler/deSugar/DsMonad.hs 20 additions, 5 deletionscompiler/deSugar/DsMonad.hs
- compiler/deSugar/StaticPtrTable.hs 75 additions, 0 deletionscompiler/deSugar/StaticPtrTable.hs
- compiler/ghc.cabal.in 1 addition, 0 deletionscompiler/ghc.cabal.in
- compiler/hsSyn/Convert.hs 1 addition, 0 deletionscompiler/hsSyn/Convert.hs
- compiler/hsSyn/HsExpr.hs 7 additions, 0 deletionscompiler/hsSyn/HsExpr.hs
- compiler/main/DynFlags.hs 2 additions, 0 deletionscompiler/main/DynFlags.hs
- compiler/parser/Lexer.x 7 additions, 0 deletionscompiler/parser/Lexer.x
- compiler/parser/Parser.y 2 additions, 0 deletionscompiler/parser/Parser.y
- compiler/prelude/PrelNames.hs 50 additions, 0 deletionscompiler/prelude/PrelNames.hs
- compiler/rename/RnExpr.hs 37 additions, 0 deletionscompiler/rename/RnExpr.hs
- compiler/typecheck/TcBinds.hs 1 addition, 1 deletioncompiler/typecheck/TcBinds.hs
- compiler/typecheck/TcExpr.hs 22 additions, 0 deletionscompiler/typecheck/TcExpr.hs
- compiler/typecheck/TcHsSyn.hs 4 additions, 0 deletionscompiler/typecheck/TcHsSyn.hs
- compiler/typecheck/TcRnDriver.hs 17 additions, 4 deletionscompiler/typecheck/TcRnDriver.hs
- compiler/typecheck/TcRnMonad.hs 3 additions, 1 deletioncompiler/typecheck/TcRnMonad.hs
- compiler/typecheck/TcRnTypes.hs 7 additions, 1 deletioncompiler/typecheck/TcRnTypes.hs
Loading
Please register or sign in to comment