Difference between revisions of "MaxBolingbroke/Talk:TypesAreCallingConventions"

From HaskellWiki
Jump to navigation Jump to search
m (add my comments)
m (yay! like it.)
Line 29: Line 29:
 
Also, one typo: final bit of section 1, final sentence has a spurious '(' before the full stop.
 
Also, one typo: final bit of section 1, final sentence has a spurious '(' before the full stop.
   
  +
Two thirds of the way through now... :-) The basic idea is very appealing. To make it possible (sanely) to express these calling convention optimisations we extend the language to express the before and after picture. It's like the addition of unboxed types/kinds to the intermediate language which enabled the optimiser to express the current worker wrapper transform.
[[User:DuncanCoutts|DuncanCoutts]] 09:35, 11 May 2009 (UTC)
 
  +
 
[[User:DuncanCoutts|DuncanCoutts]] 10:05, 11 May 2009 (UTC)

Revision as of 10:05, 11 May 2009

Talk page for "Types Are Calling Conventions"

This is a discussion page for the paper Types Are Calling Conventions.

If you are kind enough to read this paper, you may like to jot down any thoughts it triggers off, and see what others have written. This talk-page lets you do just that.

You can identify your entries by preceding them with four tildes. Doing so adds your name, and the date. Thus:

Batterseapower 08:42, 19 April 2007 (UTC) Note from Max

If you say who you are in this way, we'll be able to acknowledge your help in a revised version of the paper.


OK, I can add the first errata myself: I've just noticed that my section about an alternative translation for type lambdas is total nonsense because it doesn't preserve type variable binding. That's what I get for adding a new section at the last moment... Batterseapower 22:17, 10 May 2009 (UTC)


I'm only half way through but it immediately makes me ask the question of if this helps us to express data types containing functions where we want to specify a particular data representation (ie calling convention of the function). My main example is types for monads eg:

newtype Put a = Put {
        runPut :: (a -> {-# UNPACK #-} !Buffer -> [B.ByteString])
                     -> {-# UNPACK #-} !Buffer -> [B.ByteString]
    }

See this old thread http://www.haskell.org/pipermail/glasgow-haskell-users/2007-March/012188.html

Also, one typo: final bit of section 1, final sentence has a spurious '(' before the full stop.

Two thirds of the way through now... :-) The basic idea is very appealing. To make it possible (sanely) to express these calling convention optimisations we extend the language to express the before and after picture. It's like the addition of unboxed types/kinds to the intermediate language which enabled the optimiser to express the current worker wrapper transform.

DuncanCoutts 10:05, 11 May 2009 (UTC)