[GHC] #8711: StaticValues language extension
GHC
ghc-devs at haskell.org
Tue Jan 28 18:00:10 UTC 2014
#8711: StaticValues language extension
-------------------------------------+-------------------------------------
Reporter: | Owner: facundo.dominguez
facundo.dominguez | Status: new
Type: feature request | Milestone:
Priority: normal | Version:
Component: Compiler | Keywords:
Resolution: | Architecture: Unknown/Multiple
Operating System: Unknown/Multiple | Difficulty: Project (more
Type of failure: None/Unknown | than a week)
Test Case: | Blocked By:
Blocking: | Related Tickets: #8107
-------------------------------------+-------------------------------------
Changes (by carter):
* related: => #8107
Comment:
This is somewhat related to my own static data work in-progress.
I think that with GHC 7.8, it'd be possible (and valuable) to prototype
this proposal as a userland library. Theres a LOT of corner cases that
would need to be very very precisely / throughly handled for this to be
worth supporting in ghc proper, and I very strongly suspect that with the
right (seemingly unrelated) extensions, it'd actually be quite feasible to
make this feature request a user land library.
namely: making sure that GHC API tooling for supporting dynamic loading
and unloading of code works for this use case!
see the ObjLink api
http://www.haskell.org/ghc/docs/latest/html/libraries/ghc-7.6.3/ObjLink.html
and
http://www.haskell.org/ghc/docs/latest/html/libraries/ghc-7.6.3/DynamicLoading.html
works or not. Mind you, I'd recommend testing out the GHC HEAD / 7.8
variant of the api, because there were a few known issues in 7.6.
Theres also some ideas for doing idris style EDSL support (which would
kinda look like doing statically typed quasiquoters for haskell
expressions) that would support this and a few other use cases quite
nicely I think.
I understand and appreciate the end goal. I think that the current GHC
APIs are enough to support this or something very close to it as a user
land library. I'd also say that it'd be instructive to have some very
very concrete examples illustrating what (if anything) can't be done
currently from a userland perspective. I know for a fact that a number of
organizations are using the Obj Loading facilities, or abstractions on top
thereof, such as the hint lib http://hackage.haskell.org/package/hint to
provide such "computation serialization". These organizations include,
but are not limited to Facebook and Soostone.
If you have some examples that aren't viable with such an approach, and/or
would be much much nicer in your proposed scheme, please share!
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8711#comment:3>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list