Implement -XStaticValues

Authored by facundominguez.

Description

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 Ptrs, 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: Trac #7015

Details

Committed
austinDec 9 2014, 7:59 PM
Reviewer
simonpj
Differential Revision
D550: Implement -XStaticValues
Parents
rGHCe5974f8f53de: Proposal for Backpack file format [skip ci]
Branches
Unknown
Tags
Unknown