Hello Simon,

We considered tct_closed once. However, it only seems to indicate
whether the type of a binding is closed, instead of its right hand
side.

For instance,

\x -> let g = x :: Int in g

In this example, g would have a closed type Int, thus tct_closed ==
TopLevel. However, the right hand side of g has a free variable x
which is not bound at the top level, and therefore it couldn't be
floated out.

Corrections are welcome if I'm fooling myself in some aspect here.

Thanks,
Facundo


On Fri, Mar 4, 2016 at 7:47 AM, Simon Peyton Jones
<[email protected]> wrote:
> Facundo
>
> Yes, that makes perfect sense.  Moreover, it is pretty much exactly what the 
> tct_closed flag on `ATcId` does.
>
> The trick will be to guarantee that all those Ids do in fact end up being 
> floated out.
>
> We could have a Skype chat about this, preferably after the March 16 ICFP 
> deadline
>
> Simon
>
> |  -----Original Message-----
> |  From: ghc-devs [mailto:[email protected]] On Behalf Of
> |  Facundo Domínguez
> |  Sent: 03 March 2016 19:41
> |  To: [email protected]
> |  Subject: Local bindings in the static form
> |
> |  Hello,
> |    At Tweag I/O we are considering relaxing a bit the constraints on the
> |  static form.
> |
> |  static <exp>
> |
> |    demands <exp> to be closed. That is, the free variables of <exp> must
> |  be bound at the top level.
> |
> |  However, it would be fine to allow local bindings too. For instance:
> |
> |  test :: StaticPtr ([[Int]] -> [[Int]])
> |  test x = static (filter hasZero)
> |    where
> |      hasZero = any isZero
> |      isZero  = (0 ==)
> |
> |  Where hasZero is local but its body can be considered kind of closed
> |  (all free variables refer to top-level bindings or other *closed* local
> |  bindings.).
> |
> |  We would need for this implementation a way to test closedness in this
> |  sense. Could there be any similar test implemented already in GHC?
> |
> |  Thanks,
> |  Facundo
> |
> |  [1] https://ghc.haskell.org/trac/ghc/ticket/11656
> |  _______________________________________________
> |  ghc-devs mailing list
> |  [email protected]
> |  https://na01.safelinks.protection.outlook.com/?url=http%3a%2f%2fmail.ha
> |  skell.org%2fcgi-bin%2fmailman%2flistinfo%2fghc-
> |  devs&data=01%7c01%7csimonpj%40064d.mgd.microsoft.com%7cead97b273efa41c1
> |  a49608d3439bd142%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=Z1TbBcSgd
> |  YLZ%2bXrMJVMvqJIfwc4R2kLeRaPPwuQ5%2fLQ%3d
_______________________________________________
ghc-devs mailing list
[email protected]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

Reply via email to