[GHC] #7015: Add support for 'static'
GHC
ghc-devs at haskell.org
Wed Sep 17 19:54:02 UTC 2014
#7015: Add support for 'static'
-------------------------------------+-------------------------------------
Reporter: edsko | Owner:
Type: feature | Status: patch
request | Milestone: 7.10.1
Priority: normal | Version: 7.4.2
Component: Compiler | Keywords:
Resolution: | Architecture: Unknown/Multiple
Operating System: | Difficulty: Unknown
Unknown/Multiple | Blocked By:
Type of failure: | Related Tickets:
None/Unknown |
Test Case: |
Blocking: |
Differential Revisions: Phab:D119 |
-------------------------------------+-------------------------------------
Comment (by simonpj):
Luite, much of what you say is cast in terms of an underlying
implementation, whereas my blog post focuses as exclusively as possible on
the ''specification'' of what the programmer sees. Can you recast your
suggestions in those terms? For example:
* What does it mean to say that "GHC should explicitly keep track of all
static metadata"? How would a programmer be able to tell whether or not
GHC did so. That is, what programmer-visible behaviour do you seek?
* Again "It should be possible to build a list (like the Static Pointer
Table) at link time for a library". This is presumably a statement about
the implementation but again you must have in mind some user-visible
behavior? What is it?
* Again "Static names would propagate like typeclass instances". I don't
really know what this means, but specifically how would a programmer know
if this happened? Static names are not visible to the programmer in the
design I suggest; I use them only so I can say something about a possible
implementation. All the programmer sees is ordinary Haskell values and
types (with one new type constructor, `StaticPtr`.
* "`StaticName` should be reasonably robust..." Again, you must have in
mind some user-visible behaviour. Here I think I do know what you might
mean. If you have a client and server talking to one another, and you
recompile one having made only small internal changes, it should still
inter-work with the original client. Something like that perhaps?
Clearly this isn't yet a precise statement and you might want to make it
so.
And so on. Do you see what I mean?
On the question of "I think it would be really useful if there was a way
to send type details with a more complete serialization of the
construction", I don't understand well enough. I tried (perhaps
inadequately) to describe a design in which type security was guaranteed
without sending type representations or fingerprints at all. Of course,
some higher-level guarantees might be gained by sending type reps, but
that would be up to a client library built on top of the facilities GHC
provides. Are you asking for any GHC support here, or simply saying
something about what a client library might or might not chose to do?
Sorry to be dense. Thanks
Simon
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/7015#comment:34>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list